Інтерфейс внутрішньосистемні програмування SPI
У мікроконтролерах AT89Sxxxx реалізована можливість зміни вмісту пам'яті програм при знаходженні МК в цільовій системі - ISP - in- system programming . Ця можливість забезпечується наявністю послідовного інтерфейсу SPI. Цей інтерфейс, крім цілей програмування, в деяких моделях може також забезпечувати обмін даними між кількома мікроконтролера. Швидкість обміну - до 1,5 Мбіт /с. rn Відповідно до стандарту інтерфейсу SPI, в ньому присутні такі сигнали (у дужках вказана відповідна фізична лінія порту МК): rn MOSI (P1.5) - master output slave input - інформаційний вихід контролера, ініціюючого обмін (ведучого) - вхід підпорядкований контролера; rn MISO (P1.6) - master input slave output - інформаційний вхід контролера, ініціюючого обмін (ведучого) - вихід підпорядкований контролера; rn SCK (P1.7) - serial clock - лінія синхронізації; тактові імпульси формує провідний контролер; rn SS (P1.4) - slave select - лінія вибору підпорядкований пристрої; ведені пристрій має формувати на цьому виході "0". rn Налаштування інтерфейсу SPI для обміну даними з іншими мікроконтролера здійснюється шляхом встановлення бітів спеціальних РСФ: rn SPCR - SPI control register , SPSR - SPI status register та SPDR - SPI data register . Бітів структура цих регістрів в даній статті не розглядається. rn Для цілей фізичного програмування Flash-пам'яті інтерфейс SPI використовується спільно з сигналом Reset, а лінія SS не задіяні. При подачі високого рівня на вхід Reset контролер переходить в режим скидання, одночасно є режимом запису пам'яті програм. rn Фізичне програмування Flash-пам'яті може бути виконане безпосередньо з ПЕОМ. Для видачі сигналів програмування можна використовувати LPT-порт, а необхідний протокол (послідовність команд, адрес та даних для запису) реалізується спеціальним програмним забезпеченням. Таким чином, через лінії паралельного LPT-порту реалізується побітовая передача даних. rn Програмування виконується через кабель, побудований за схемою: rn rn rn rn rn Лінія інтерфейсу SPI rn | rn rn Лінія МК (номер висновку) rn | rn rn Лінія LPT-порту (контакт роз'єму DB-25) rn | rn rn rn rn MOSI rn | rn rn P1.5 (6) rn | rn rn 7 rn | rn rn rn rn MISO rn | rn rn P1.6 (7) rn | rn rn 10 rn | rn rn rn rn SCK rn | rn rn P1.7 (8) rn | rn rn 8 rn | rn rn rn rn RST rn | rn rn Reset (9) rn | rn rn 6 rn | rn rn rn rn GND rn | rn rn Vss - GND (20) rn | rn rn 18-25 (все з'єднати) rn | rn rn rn rn Кабель рекомендується виконувати таким чином, щоб кожен сигнальний провід утворювали виту пару з провідником GND (можна використовувати плоский многожільний кабель з індивідуальною екраніровкой проводів). Довжина кабелю не повинна перевищувати 1 м. rn В якості спеціалізованого програмного забезпечення можна використовувати, наприклад, програму-завантажувач AEC_ISP.exe, вільно розповсюджується фірмою AEC Corp. Вхідний інформацією для завантажувача AEC_ISP є скомпільований файл прикладної програми, представлений в форматі Intel HEX (такий формат файлу формується практично всіма компілятора, в тому числі і середовищем MCStudio ). Завантажувач дозволяє виконати фізична програмування контролерів типів AT89S51, AT89S52, AT89S8252, AT89S53. Одночасно з пам'яттю програм може бути виконана запис даних у EEPROM. Також завантажувач автоматично здійснює верифікацію (перевірку вмісту) Flash - і EEPROM-пам'яті. Програма-завантажувач AEC_ISP реалізована як DOS-додаток.
|