Микроконтроллеры AVR

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

?ца 9.5. Конфигурационные ячейки микроконтроллеров семейства

БитATmega8515xATmega8535xATmega8xATmegal6x/

32xATtaega64x/ 128xATmega48xНазвание*Название*Название*Название*Название*Название*Младший конфигурационный байт7BODLEVEL1BODLEVEL1BODLEVEL1BODLEVEL1BODLEVEL1CKDIV806BODEN1BODEN1BODEN1BODEN1BODEN1CKOUT15SUT11SUT11SUT11SUT11SUT11SUT114SUT00SUTO0SUTO0SUTO0SUTO0SUTO03CKSEL30CKSEL30CKSEL30CKSEL30CKSEL30CKSEL302CKSEL20CKSEL20CKSEL20CKSEL20CKSEL20CKSEL201CKSEL10CKSEL10CKSEL10CKSEL10CKSEL10CKSEL110CKSEL01CKSELO1CKSELO1CKSELO1CKSELO1CKSELO0Старший конфигурационный байт7S8515C1S8535C1RSTDISBL1OCDEN1OCDEN1RSTDISBL16WDTON1WDTON1WDTON1JTAGEN0JTAGEN0DWEN15SPIEN0SPIEN0SPIEN0SPIEN0SPIEN0SPIEN04СКОРТ1CKOPT1CKOPT1CKOPT1CKOPT1WDTON13EESAVE1EESAVE1EESAVE1EESAVE1EESAVE1EESAVE12BOOTSZ10BOOTSZ10BOOTSZ10BOOTSZ10BOOTSZ10BODLEVEL211BOOTSZ00BOOTSZO0BOOTSZO0BOOTSZO0BOOTSZO0BODLEVEL110BOOTRST1BOOTRST1BOOTRST1BOOTRST1BOOTRST1BODLEVELO1Дополнительный конфигурационный байт7161 514131211M103C00WDTON1SELFPRGEN* Значение бита.

Таблица 9.6. Назначение конфигурационных ячеек

НазваниеНазначениеRSTDISBLОпределяет функционирование 1 вывода микроконтроллера, совмещенного с выводом аппаратного сброса (0 контакт порта ввода/вывода, 1 вывод сброса)CKSELОпределяет режим работы тактового генератора, а также длительность задержки сброса tToutBODLEVELОпределяет порог срабатывания схемы BORBODENРазрешает/запрещает функционирование схемы BOR (0 разрешено, 1 запрещено)SPIEN11)Разрешает/запрещает программирование по интерфейсу SPI (0 разрешено, 1 запрещено)SUTОпределяет длительность задержки сброса tToutWDTONОпределяет режим работы сторожевого таймера (0 всегда включен, 1 может быть выключен программно)СКОРТОпределяет функционирование тактового генератора, действие зависит от установок ячеек CKSELEESAVE2)Определяет влияние команды “Стирание кристалла” на EEPROM-память 0 не стирает, 1 стирает)BOOTSZОпределяет размер секции загрузчикаBOOTRSTОпределяет положение вектора сбросаDWENРазрешает/запрещает работу отладочного интерфейса debugWire (0 разрешена, 1 запрещена)OCDENРазрешает/запрещает внутрисхемную отладку (0 разрешена, 1 запрещена)JTAGENРазрешает/запрещает использование интерфейса JTAG (0 разрешен, 1 запрещен)CKDIV8Определяет начальное состояние делителя системного тактового сигналаCKOUTОпределяет состояние выходного буфера системного тактового сигнала (0 подключен к выводу микроконтроллера, 1 отключен)SELFPRGEN3))Разрешение самопрограммирования (0 разрешено)S8515CВключает/выключает режим совместимости с микроконтроллерами AT90S4414/8515 семейства Classic (0 включен, 1 выключен)S8535CВключает/выключает режим совместимости с микроконтроллерами AT90S8535 семейства Classic (0 включен, 1 выключен)М161СВключает/выключает режим совместимости с микроконтроллерами ATmega 161х семейства Mega (0 включен, 1 выключен)М103СВключает/выключает режим совместимости с микроконтроллерами ATmega 103x семейства Mega (0 - включен, 1 - выключен)

1) Недоступна при программировании по последовательному каналу

2) Изменение состояния этой ячейки вступает в силу сразу же после ее программирования.

3)Только в ATmega48x.

 

Идентификатор

 

Все микроконтроллеры фирмы Atmel имеют три 8-битные ячейки, содержимое которых позволяет идентифицировать устройство. В первой ячейке содержится код производителя $00, во второй код объема FLASH-памяти $01, а в третьей код устройства $02. Как и конфигурационные ячейки, ячейки идентификатора расположены в отдельном адресном пространстве, доступ к которому возможен только в режиме программирования. Однако в отличие от конфигурационных ячеек ячейки идентификатора, по понятным причинам, доступны только для чтения.

Значение кода устройства у разных моделей может совпадать. Поэтому устройство следует идентифицировать только по совокупности значений ячеек $01 и $02, так как именно эта пара чисел является уникальной для каждого микроконтроллера.

 

Калибровочные ячейки

 

В калибровочные ячейки при изготовлении микроконтроллера заносятся калибровочные константы, предназначенные для подстройки на номинальную частоту внутреннего RС-генератора. Количество этих ячеек зависит от того, на скольких частотах может работать внутренний RC-генератор. В моделях ATmega8515x/8535x и ATmega8x/16x/32x/64x/128x имеется четыре 8-битных ячейки, а в остальных моделях одна ячейка. Располагаются они в старших байтах адресного пространства ячеек идентификатора.

Загрузка калибровочной константы в регистр OSCCAL осуществляется аппаратно при нахождении микроконтроллера в состоянии сброса. Однако в моделях ATmega8515x/8535x и ATmega8x/16x/32x/64x/128x генератор автоматически калибруется только на частоту 1 МГц. Поэтому при использовании другой частоты RС-генератора его калибровку необходимо осуществлять вручную. Для этого программатор во время программирования должен прочитать содержимое калибровочной ячейки и занести его по какому-либо адресу FLASH-памяти программ. А программа должна после старта считать это значение из памяти программ и занести его в регистр OSCCAL.

 

Организация памяти программ и данных

 

В микроконтроллерах семейства Mega используется страничная организация памяти программ. При программировании весь объем FLASH-памяти разбивается на 16-битные страницы, размер которых, а также их количество зависят от объема памяти программ микроконтроллера.

Соответственно, при программировании памяти программ микроконтроллеров семейства Mega данные сначала загружаются в буфер страницы и только затем заносятся непосредственно в память программ. Прошивка всех ячеек страницы при этом осуществляется одновременно.

Аналогичным образом организована и EEPROM-память. Размер 8-битных страниц EEPROM-памяти.

Однако следует отметить, что во многих моделях страничная организация EEPROM-памяти используется только при программировании в параллельном режиме, а программирование по п?/p>