x51-совместимые микроконтроллеры фирмы ATMEL

Журнал "Радио", номер 2, 1999г.
Автор: А.Фрунзе, г. Москва

Окончание. Начало см. в "Радио", 1998, #11. в "Радио", 1998, #12. в "Радио",1999,#1

    Программирование AT89S53

    Микроконтроллеры AT89S53 допускают программирование с использованием как 12-, так и 5-вольтного интерфейса. Однако если у AT89C51, AT89C52, AT89C55 для достижения подобной гибкости пришлось изготавливать различные версии изделий, допускающих работу только с одним из интерфейсов, то каждый из AT89S53 содержит в себе обе эти возможности. Режим параллельного программирования, идентичный тому, который предусмотрен для AT89C51, AT89C52, AT89C55, использует 12-вольтный сигнал Upp. Пятивольтная загрузка, делающая возможным перепрограммирование микроконтроллера в аппаратуре пользователя, использует для этого интерфейс SPI.

    Схемы включения микроконтроллеров AT89S53 при программировании и верификации приведены соответственно на рис. 15 и 16, сигналы программирования и верификации параллельного режима программирования описаны в табл. 6.

    Значения напряжения UPP и длительности импульсов и задержек при программировании flash-памяти и верификации (параллельный режим) должны быть следующими (при напряжении питания UСС = 5 В +10% и T=0...+27°С):

Напряжение программирования UPP, В 11,5...12,5 Ток программирования IPP, мА 1 Частота генерации 1/tCLCL, МГц 3...12 Время предустановки адреса tAVGL не менее 48tCLCL Время задержки адреса tGHAX не менее 48tCLCL Время предустановки данных tDVGL не менее 48tCLCL Время задержки данных tGHDX не менее 48tCLCL Время задержки установки UPP относительно вывода P2.7 tEHSH не менее 48tCLCL Время задержки PROG tSHGL, мкс 10 Длительность PROG tGLGH, мкс 1...110 Задержка считываемых данных относительно адреса tAVQV не более 48tCLCL Задержка данных относительно ENABLE tELQV не более 48tCLCL Удержание данных tEHQZ 0...48tCLCL Задержка установления BUSY tGHBL, мкс не более 1 Длительность внутреннего цикла записи tWC, мс не более 2

    Режим последовательного программирования реализуется следующим образом. На вход сброса подают сигнал высокого уровня. После этого по каналу SPI должна быть передана команда разрешения программирования (см. табл. 7). Отметим, что в этом режиме действует автоматическое предварительное стирание информации. Перед программированием какого-либо байта не надо стирать все содержимое ПЗУ - программируемый байт очищается сам перед записью. Напомним, что на параллельное программирование это, увы, не распространяется.

    Режим стирания очищает все содержимое ПЗУ.

    Частота SCK при программировании не должна превышать 1/40 значения частоты кварцевого резонатора. Перед выдачей команды разрешения программирования необходима задержка не менее 10 мс.

    Алгоритм программирования и верификации в рассматриваемом случае должен выглядеть так:

    1. Подать напряжение питания. Установить вывод RST в 1. Если тактирование осуществляется внешним источником, подать тактовый сигнал (4...24 МГц) на XTAL1 и выдержать паузу 10 мс.

    2. Разрешить последовательное программирование посылкой команды разрешения программирования. Частота тактирования на SCK должна быть не менее чем в 40 раз ниже тактовой частоты на XTAL1.

    3. Программирование внутренней памяти программ производится побайтно. Для этого вначале в контроллер передается байт, в старших битах которого находятся биты старшего байта адреса, затем младший байт, после чего - байт данных. Информация о том, что должна произойти запись, содержится в двух младших битах первого переданного байта. Модифицируемый байт перед программированием автоматически стирается.

    4. Верификация любого байта осуществляется командой чтения, содержащей адрес считываемой ячейки. Контроллер передает верифицируемый байт через выход MISO (P1.6).

    5. После окончания программирования установить RST в 0.

    6. Выключить питание.

    AT89S8252, AT89LS8252

    Эти микроконтроллеры отличаются от AT89S53 объемом размещенной на кристалле памяти программ (8 Кбайт) и наличием в нем внешней двукилобайтной Flash-памяти данных, доступной по командам MOVX. Число циклов программирования первой, как и у остальных контроллеров Atmel, равно 1000, ресурс второй увеличен на два порядка (100 000 циклов стирания/записи), поскольку данные обновляются гораздо чаще самой программы. Размещенная на кристалле энергонезависимая внешняя память данных позволяет хранить константы, таблицы и другие данные, которые должны допускать возможность оперативного изменения в процессе работы без потери их при выключении питания. Назначение выводов AT89S8252, AT89LS8252 - такое же, как у AT89C51.

    В состав подсемейства входят 22 микроконтроллера: AT89S8252-16AA, AT89S8252-16JA, AT89S8252-16PA, AT89S8252-16QA; AT89S8252-24AC, AT89S8252-24JC, AT89S8252-24PC, AT89S8252-24QC, AT89S8252-24AI, AT89S8252-24JI, AT89S8252-24PI, AT89S8252-24QI; AT89S8252-33AC, AT89S8252-33JC, AT89S8252-33PC, AT89S8252-33QC; AT89LS8252-12AC, AT89LS8252-12JC, AT89LS8252-12PC, AT89LS8252-12AI, AT89LS8252-12JI, AT89LS8252-12PI.

    Как видно, выпускаются 12-, 16-, 24и 33-мегагерцевые модификации этих изделий. Объем ПЗУ - 8 Кбайт, ОЗУ - 256+2048 байт. Контроллеры содержат три обычных (16 бит) и один сторожевой (WDT) таймер, девять векторов прерываний, один последовательный и три параллельных порта ввода/вывода, SPI. Напряжение питания AT89S8252-33AC, AT89S8252-33JC, AT89S8252-33PC, AT89S8252-33QC - 4,5...5,5 В, всех остальных - 4...6 В. Контроллеры выполнены в 44-выводных корпусах TQFP (буква-код - A), PLCC (J), PQFP (Q) и 40-выводном PDIP (P). Модификации с индексом C предназначены для работы при температуре от 0 до +70, I - от -40 до +85, А - от -40 до +105°C.

    Нагрузочная способность выводов рассматриваемых контроллеров - такая же, как у AT89C51, AT89LV51. Напряжения на входах относительно общего провода должны находиться в пределах -1...+7, максимальное рабочее напряжение - 6,6 В (в режиме Power Down допустимо его снижение до 2 В). Потребляемый ток AT89S8252 на частоте 16 МГц при напряжении питания 6 В не превышает 25, в режиме Idle - 6,5 мА, в режиме Power Down - 100 мкА при напряжении 6 и 40 при 3 В. Зависимость потребляемого тока от напряжения питания и частоты для AT89LS8252 аналогична показанной на рис. 2.

    В AT89S8252 и AT89LS8252 сигнал ALE, как и в AT89C51, возможно программно запретить, установив в 1 бит 0 SFR-регистра, находящегося по адресу 8E. Выводы порта P3 выполняют те же альтернативные функции, что и у AT89S53. Контроллеры AT89S8252 и AT89LS8252 также снабжены SPI-интерфейсом, выполняющим все описанные выше функции, и имеют аппаратный сторожевой таймер, работающий аналогично таймеру AT89S53.

    Также как у AT89S53, регистровое пространство AT89S8252 и AT89LS8252 расширено в сравнении с предшественниками. В нем есть регистры, обслуживающие SPI и сторожевой таймер: SPCR (0D5H), SPSR (0AAH), SPDR (086H) и WMCON (096H). Добавлен еще один указатель DPTR (DP1L и DP1H, находящиеся по адресам 084H и 085H соответственно). Переключение с основной регистровой пары на дополнительную и обратно осуществляется битом DPS в регистре WMCON. Поскольку в этом регистре находятся также биты управления Flash-памятью данных, его название изменено в сравнении с AT89S53 (WMCON вместо WCON).

Примечание. Значение регистра при сбросе - 00000010B

    Регистр управления сторожевым таймером и Flash-памятью данных контроллеров AT89S8252 и AT89LS8252 описан в табл. 8.

    В адресном пространстве внешней памяти Flash-память данных занимает область от 0000H до 07FFH. Для обращения к ней (с целью записи или считывания) необходимо установить в 1 бит EEMEN в регистре WMCON, а чтобы обратиться к обычной внешней памяти данных, расположенной в этих же адресах, его следует предварительно обнулить.

    Перед записью байта во Flash-память данных необходимо установить в 1 бит EEMWE регистра WMCON. Если после какого-либо момента программа не должна записывать данные во Flash-память, рекомендуется сбросить этот бит, а не держать его постоянно во взведенном состоянии. Запись байта занимает примерно 2,5 мс. Пока она не закончена, флаг RDY/BSY в регистре WMCON сброшен. Его установка (единичное значение бита RDY/BSY) свидетельствует о завершении текущего цикла записи и готовности к следующему.

    Кроме того, если запись во Flash-память данных не закончена, попытка считать байт дает значение, комплементарное записываемому, но как только она окончена, считывание дает правильный результат.

    Особенности программирования AT89S8252 И AT89LS8252

    Подобно AT89S53 контроллеры AT89S8252 и AT89LS8252 допускают как параллельное (12-вольтное), так и последовательное (пятивольтное) программирование, ориентированное на перепрограммирование ПЗУ в аппаратуре пользователя. Но есть и отличие. AT89S8252 и AT89LS8252 имеют два массива Flash-памяти: внутреннюю память программ и внешнюю (с точки зрения системы команд), но находящуюся внутри кристалла памяти данных. Оба режима программирования допускают занесение информации как в тот, так и в другой массив. Но если при последовательном программировании они находятся в разных адресных пространствах и для каждого из них предусмотрен свой набор команд чтения/записи, то при параллельном их адресное пространство едино (память команд занимает адреса с 0000H по 1FFFH, а Flash-память данных - с 2000H по 27FFH). Таким образом, в последнем случае пользователь имеет контроллер как бы с 10-килобайтной внутренней памятью, подлежащей программированию. При этом первые 8 Кбайт содержат коды программ и таблицы констант, а последние два - оперативные данные, которые могут изменяться самим контроллером в процессе его работы.

    Соответственно, если необходимо предварительное занесение информации во Flash-память данных (вместе с программированием ПЗУ контроллера), эти данные должны быть внесены в загружаемый в программатор файл в соответствующие адреса, и интервал программируемых адресов устанавливается от 0000H до 27FFH (10 Кбайт).

    Возможно отдельное программирование Flash-памяти данных в программаторе. Загружаемый в него файл должен содержать только байты памяти данных, интервал устанавливаемых адресов - от 2000H до 27FFH. Напомним, что при последовательном программировании не надо стирать перед записью имеющуюся в контроллере информацию (программируемый байт очищается перед записью сам), в то время как при параллельном необходима предварительная очистка содержимого Flash-памяти.

    Сигналы программирования и верификации параллельного режима программирования AT89S8252 описаны в табл. 9 (содержание пропущенных строк "Установка бита защиты 1" - "Запретить последовательное программирование" - такое же, как и в табл. 6).

    Режим последовательного программирования реализуется так же, как и для AT89S53. На вход сброса подают сигнал высокого уровня. После этого по каналу SPI должна быть передана команда разрешения программирования (см. табл. 10).







Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.