Компоненты и технологии, № 7'2003 Компоненты
Микроконтроллер ATmegal69
и демонстрационный набор AVR-Baterfly
В ноябре 2002 года к столь полюбившемуся многим разработчикам семейству малопотребляющих 8-разрядных Flash-микроконтроллеров AVR корпорации Atmel добавился новый микроконтроллер ATmega169, предназначенный для работы в портативном оборудовании с автономным питанием.
Дмитрий Гаврилюк
В1997 году корпорация Atmel, один из мировых лидеров в производстве полупроводниковых приборов, таких, как различные логические, смешанно-сигнальные и радиочастотные микросхемы, а также приборы с энергонезависимой памятью, начала выпуск 8-разрядных микропроцессоров с Flаsh-памятью своего нового семейства AVR. Корпорация Atmel является признанным лидером в технологии производства приборов с Flash-памятью, что позволяет ей выпускать Flash-микроконтроллеры, которые по цене сравнимы, а порой имеют и более низкую цену, чем аналогичные микроконтроллеры других производителей с ОТР-памятью.
Микропроцессоры семейства AVR содержат высокоскоростное вычислительное ядро RISC-архи-
тектуры, развитую периферию и функцию внутрисистемного программирования. Кроме того, микропроцессоры этого семейства имеют производительность 1 MIPS при тактовой частоте 1 МГц, то есть выполняют большинство команд за один цикл.
Микропроцессор ATmega169 является первым малопотребляющим членом семейства AVR, содержащим встроенный контроллер ЖКИ. Ядро AVR объединяет богатый набор команд и 32 рабочих регистра, которые могут быть напрямую подключены к АЛУ, что позволяет выполнять действия с двумя регистрами одновременно одной командой. Вычислительное ядро построено по гарвардской архитектуре — с раздельными памятью и шинами программы и данных. Процессор имеет одноуровневый конвейер, позволяющий при выполнении команды одновременно выбирать следующую. Такая архитектура вычислительного ядра позволяет выполнять команды в каждом цикле. Архитектура вычислительного ядра микропроцессора приведена на рис. 1.
Микропроцессор содержит:
• 16 кбайт программной Flash-памяти;
• 512 байт EEPROM-памяти;
• 1 кбайт SRAM;
• 53 линии портов ввода-вывода общего назначения;
• 32 рабочих регистра общего назначения;
• интерфейс JTAG;
• встроенные автоматы отладки и программирования;
• законченный контроллер ЖКИ с преобразователем напряжения;
• три гибких независимых таймера-счетчика;
• внешние и внутренние источники прерывания;
• последовательный программируемый USART;
• универсальный последовательный интерфейс с детектором стартового состояния;
• 8-канальный 10-разрядный АЦП;
• программируемый сторожевой таймер со встроенным генератором;
• последовательный SPI-порт.
Предназначенный для использования в аппаратуре с автономным питанием микропроцессор
Компоненты и технологии, № 7'2003
Clki/o
TOSC
0^ LCD
Í 12-bit Prescaler
Clock
Multiplexer
Divide by 1 to 8
LCDDR18-15 I
LCDDR 13-10 I---
LCDDR 8-5 I-----
LATCH
array
ClkLCD_PS
LCD
Timing
\ 25 X 4:1 MUX
LCD Ouput Decoder
LCD_voltage_ok
Contrast Controller/ Power Supply
Рис. 2. Структурная схема модуля ЖКИ
LCD Buffer/ Driver
Analog
Switch
Array
SEGO
SEG1
SEG2
I SEG9 I SEG10 I SEG11 I SEG12 I SEG13
-----H SEG17 I
-----H SEG18 I
I SEG19 I SEG20
I SEG21
LCD
CAP
имеет превосходные мощностные характеристики. Во-первых, он выпускается в трех модификациях с различными диапазонами напряжения питания: ATmega169 — от 4,5 до 5,5 В, ATmega169L — от 2,7 до 5,5 В, иATmega169V — от 1,8 до 5,5 В. При этом модификации имеют различные диапазоны рабочих частот тактового генератора: ATmega169 — от 0 до 16 МГц, ATmega169L — от 0 до 8 МГц, а ATmega169V — от 0 до 1 МГц. При работе на частоте 1 МГц, то есть с производительностью 1 MIPS, микропроцессор потребляет всего 400 мкА при напряжении питания 1,8 В! Во-вторых, имеется возможность программного изменения частоты работы вычислительного ядра. Для выполнения сложных вычислительных функций или других действий, требующих высокого быстродействия вычислительного ядра, разработчик может установить высокую тактовую частоту, а при выполнении простых управляющих функций тактовая частота вычислительного ядра может быть существенно снижена. При работе с частотой 32 кГц микропроцессор потребляет всего 20 мкА (40 мкА при активизированном драйвере ЖКИ). В-третьих, микропроцессор имеет пять программно инициализируемых режимов пониженного потребления: Idle, Power-down, Power-save, ADC Noise Reduction и Standby.
В режиме Idle останавливается ядро, а SRAM, таймеры-счетчики, SPI-порт и система прерываний продолжают функционировать. При этом микропроцессор потребляет не более 0,25 мА при 2 В питании и частоте тактовых импульсов 1 МГц. В режиме Power-down содержимое регистров сохраняется, но останавливается задающий генератор, и отключаются все внутренние функции микропроцессора до тех пор, пока не про--------------------www.finestreet.ru-
изойдет прерывание или аппаратный сброс. Типовой ток потребления микропроцессора при отключенном сторожевом таймере и питании 3 В равняется 1 мкА. В режиме Powersave асинхронные таймеры и контроллер ЖКИ продолжают функционировать, позволяя ЖКИ работать в то время, когда микропроцессор находится в режиме сна. В режиме ADC Noise Reduction останавливается вычислительное ядро и все модули ввода-вывода, за исключением асинхронного таймера, контроллера ЖКИ и самого АЦП, что позволяет минимизировать шумы в течение выполнения аналого-цифрового преобразования. В режиме Standby задающий генератор работает, в то время как остальная часть прибора бездействует.
Кроме сказанного выше, для снижения потребления в рабочем режиме можно отключить незадействованные периферийные модули. Также следует иметь в виду, что многие модули остаются активными даже при установке режимов пониженного потребления. Например, если АЦП был включен в активном режиме, то он остается активным во всех режимах. Аналоговый компаратор остается активным только в режимах Idle и ADC Noise Reduction, в остальных режимах сна он автоматически отключается.
При правильном использовании микропроцессор ATmega169 способен управлять работой ЖКИ в течение 10 лет, питаясь только от двух батареек типа АА!
Для обеспечения этого к описанным выше режимам и способам снижения потребления микропроцессор содержит встроенный драйвер ЖКИ. Встроенный контроллер-драйвер ЖКИ способен обслуживать индикаторы 25x4. Структурная схема модуля ЖКИ приведена на рис. 2.
Контроллер модуля ЖКИ может тактироваться как от внутреннего, так и от внешнего источника тактовых импульсов. Для модуля ЖКИ оба эти источника идентичны. Опорные синхроимпульсы поступают на 12-разрядный циклический счетчик, имеющий отводы от старших восьми разрядов, что позволяет поделить частоту опорных тактовых импульсов на 16, 64, 128, 256, 512, 1024, 2048 или 4096. Полученные после деления синхроимпульсы используются в качестве опорных для тактирования ЖКИ.
Информация, которую необходимо отобразить на индикаторе, заносится в регистры LCDDR0-LCDDR19 (при этом регистры LCDDR4, LCDDR9, LCDDR14 и LCDDR19 не используются). Если сегмент ЖКИ должен быть запитан (то есть он должен быть виден), то соответствующий бит регистра памяти ЖКИ должен быть установлен в 1, а если записать в него 0, то сегмент индикатора виден не будет. Соответствие содержимого регистров памяти ЖКИ и соответствующих сегментов индикатора приведено в таблице.
Таблица. Соответствие содержимого регистров памяти ЖКИ и соответствующих сегментов
Бит 7 6 5 4 3 2 1 0 Регистр
Группа - - - - - - - - LCDDR19
COM3 - - - - - - - SEG324 LCDDR1B
COM3 SEG323 SEG322 SEG321 SEG320 SEG319 SEG31B SEG317 SEG316 LCDDR17
COM3 SEG315 SEG314 SEG313 SEG312 SEG311 SEG310 SEG309 SEG30B LCDDR16
COM3 SEG307 SEG306 SEG305 SEG304 SEG303 SEG302 SEG301 SEG300 LCDDR15
- - - - - - - - LCDDR14
COM2 - - - - - - - SEG224 LCDDR13
COM2 SEG223 SEG222 SEG221 SEG220 SEG219 SEG21B SEG217 SEG216 LCDDR12
COM2 SEG215 SEG214 SEG213 SEG212 SEG211 SEG210 SEG209 SEG20B LCDDR11
COM2 SEG207 SEG206 SEG205 SEG204 SEG203 SEG202 SEG201 SEG200 LCDDR10
- - - - - - - - LCDDR9
COM1 - - - - - - - SEG124 LCDDRB
COM1 SEG123 SEG122 SEG121 SEG120 SEG119 SEG11B SEG117 SEG116 LCDDR7
COM1 SEG115 SEG114 SEG113 SEG112 SEG111 SEG110 SEG109 SEG10B LCDDR6
COM1 SEG107 SEG106 SEG105 SEG104 SEG103 SEG102 SEG101 SEG100 LCDDR5
- - - - - - - - LCDDR4
COMO - - - - - - - SEG024 LCDDR3
COMO SEG023 SEG022 SEG021 SEG020 SEG019 SEG01B SEG017 SEG016 LCDDR2
COMO SEG015 SEG014 SEG013 SEG012 SEG011 SEG010 SEG009 SEG00B LCDDR1
COMO SEG007 SEG006 SEG005 SEG004 SEG003 SEG002 SEG001 SEG000 LCDDR0
е
Компоненты и технологии, № 7'2003
Для того чтобы сегмент стал виден, на него надо подать разность потенциалов, превышающую пороговое значение. Это обеспечивается подачей на соответствующие выводы SEG и COM противофазных напряжений. Для отображения информации на ЖКИ, имеющем несколько групп сегментов с одним общим выводом, требуется обеспечить на управляющих выходах не только уровни 0 В и VLCD (напряжение питания ЖКИ), но и дополнительный уровень, равный 1/2 VLCD, или два уровня, равных 1/3 VLCD и 2/3 VLCD. В противном случае сегменты, которые должны быть видны в одной группе, могут быть видны и в другой группе символов индикатора. Контроллер способен обслуживать ЖКИ, содержащие от 1 до 4 групп, которые в свою очередь могут содержать до 24 сегментов.
Как было сказано выше, для того чтобы сегмент стал виден, на него надо подать разность потенциалов. Величина этой разности потенциалов (VLCD) будет определять контрастность отображения информации. Микроконтроллер ATmega169 имеет функцию программной регулировки напряжения питания ЖКИ в пределах от 2,6 до 3,35 В. Это обеспечивается за счет встроенного источника питания, напряжение на выходе которого не зависит от напряжения питания самого микроконтроллера. Этому источнику для работы требуется всего один внешний конденсатор, имеющий величину не менее 0,47 мкФ.
Количество необходимых уровней напряжения, количество обслуживаемых групп сегментов, разрешение прерывания от контроллера ЖКИ, источник опорного тактового сигнала, коэффициент его деления и функция гашения индикатора после окончания формирования кадра задаются соответствующими битами регистров, управляющих работой контроллера ЖКИ. Таким образом, задача обслуживания ЖКИ сводится к простейшим операциям: в управляющие регистры записывается информация, определяющая источник тактовых импульсов, частоту обновления индикатора, необходимое количество уровней в формируемых сигналах, количество групп и напряжение питания ЖКИ (контрастность). После этого драйвер активируется установкой бита LCDEN регистра LCDCRA. Управляю-
щей программе не нужно будет отвлекаться на обслуживание динамической индикации ЖКИ, а только при смене индицируемой информации заносить новые данные в регистры памяти ЖКИ.
Для снижения потребления тока от источника питания можно выбрать режим Low Power Waveform путем установки бита LCDAB регистра LCDCRA. В этом режиме не изменяются уровни самих сигналов, а меняется только активность их изменений. Как известно, потребление КМОП-структур, к тому же работающих на емкостную нагрузку (сегменты ЖКИ), зависит от частоты переключений. Эпюры сигналов нормального и Low Power Waveform режимов работы при обслуживании трех групп сегментов и формировании уровней напряжений, кратных 1/3VLCD, приведены на рис. 3.
В режиме Low Power Waveform происходит меньшее количество переключений, что приводит к снижению потребления, однако для обеспечения нулевой постоянной составляющей тока через сегменты контроллеру ЖКИ требуется два кадра. Это приводит к снижению частоты обновления ЖКИ в два раза.
Важно заметить, что контроллер ЖКИ может работать и в режимах пониженного потребления. При синхронном тактировании драйвер ЖКИ будет работать в режимах Idle и Power-save при любом источнике опорного сигнала. При асинхронном тактировании от таймера TOSC1, работающего от встроенного RC-генератора, драйвер ЖКИ будет работать в режимах пониженного потребления Idle, ADC Noise Reduction и Power-save. В асинхронном режиме работы в качестве опорных синхроимпульсов можно использовать сигнал, поданный на вход TOSC1 от внешнего источника.
В качестве выводов драйвера ЖКИ используются выводы портов РА0-7, РС0-7, PD0-7 и PG0-4. Если для управления работой ЖКИ используются не все выводы модуля, то эти незадействованные выводы могут использоваться в качестве линий портов ввода-вывода общего назначения. Так, например, линии портов, соответствующие общим выводам СОМ0-3, которые не используются драйвером ЖКИ, автоматически устанавливаются
в режим работы линии порта ввода-вывода. Количество используемых общих выводов задается битами LCDMUX1-0 регистра LCD-CRB. Кроме того биты LCDPM2-0 позволяют выбрать количество используемых выводов сегментов (от 13 до 25 с шагом 2). Таким образом, разработчик может выбрать от 14 (1 общий и 13 сегментов) до 29 (4 общих и 25 сегментов) линий, используемых для обслуживания ЖКИ.
Встроенный автомат внутрисистемного программирования позволяет перепрограммировать программную память через последовательный ISP-интерфейс при помощи программатора энергонезависимой памяти или встроенной программы-загрузчика, выполняющейся в AVR ядре. Программа-загрузчик может использовать любой интерфейс для записи программы в прикладную Flash-память. Программа из загрузочной секции Flash-памяти продолжает выполняться даже при загрузке прикладной секции Flash-памяти, реально обеспечивая Read-While-Write (чтение при записи) режим работы. Микропроцессор ATmega169 является мощным прибором, объединяя 8-разрядное RISC-ядро и самопрограммируемую внутри-системно Flash-память в одном корпусе, что даст вашим устройствам более высокую гибкость и стоимостную эффективность.
Микропроцессор ATmega169 AVR поддерживается различными программными и системными средствами разработки, такими, как С-компиляторы, макроассемблеры, отладчик-симулятор AVR Studio версий 3.5 и 4.0, внутрисхемные эмуляторы (ATICE50 и AVR JTAG ICE) и внутрисистемный программатор AVR ISP. Для ускорения разработки новых устройств на базе микропроцессора ATmega169 и снижения затрат на разработку выпущены отладочная плата STK502 и демонстрационный набор AVR Batterfly.
Корпорация Atmel уже довольно давно выпускает отладочный набор STK500. В состав этого набора входят кабели, компакт-диск с программным обеспечением, примерами применения и техническими описаниями и отладочная плата, которая является одновременно параллельным и последовательным (в том числе внутрисхемным) программатором. На отладочной плате этого набора имеются панельки для установки микроконтроллеров в различных DIP-корпусах, стабилизированный источник питания с программно управляемым выходным напряжением, преобразователи уровней сигналов,
Компоненты и технологии, № 7'2003
твда169 32kHz
Рис. 5. Внешний вид демонстрационного набора АУ1? ВаИегАу
программно управляемый ИОН, микросхема DataFlash 45D021, 8 кнопок, 8 светодиодов, разъемы и 2 источника тактовых сигналов. Однако отладочный комплект STK500 поддерживает не все виды выпускаемых в настоящее время корпорацией АШе1 микроконтроллеров. Для обеспечения возможности подключения к нему микроконтроллера Atmega169 выпущена отладочная плата STK502 (рис. 4), которая представляет собой плату расширения для отладочной платы набора STK500. В комплекте с отладочной платой STK502 поставляются микроконтроллер ATmega169, датчик температуры, схемы и тексты программ, позволяющие использовать плату в качестве системы слежения за температурой и драйвера ЖКИ, все соединители и разъемы, необходимые для ее подключения к STK500. Плата STK502 содержит ZIF-колодку, предназначенную для установки в нее микропроцессора ATmega169, а также ЖКИ, 32 кГц кварцевый резонатор, разъем для внутрисхемного программирования через SPI-интерфейс и разъем JTAG-интерфейса. С помощью отладочного комплекта STK500 и платы STK502 вы можете не только исследовать возможности микропроцессоров, но и производить отладку своих прикладных программ.
Демонстрационный набор AVR Вайегйу предназначен для показа возможностей встроенного драйвера ЖКИ микроконтроллера ATmega169. Он позволяет не только управлять работой и контрастностью ЖКИ, но и подключать при помощи дополнительных соединителей светодиоды, коммутаторы и различные периферийные устройства для исследования архитектуры AVR микропроцессора. В комплект демонстрационного набора AVR Вайегйу входят демонстрационная плата и руководство пользователя. Демонстрационная плата набора AVR Вайегйу содержит:
• микропроцессор Atmega169 в MFL-корпусе;
• 100-сегментный ЖКИ;
• пьезоизлучатель;
• кварцевый резонатор 32 кГц, для обеспечения работы часов реального времени;
• память DataFlash 4 Мбит производства корпорации АШе1 для хранения данных;
• преобразователь уровней RS-232 для обеспечения обмена данными с внешними устройствами;
• ЭТС-термистор для измерения температуры;
• оптический датчик для измерения интенсивности светового излучения.
Для питания платы используется батарейка 3 В, устанавливаемая в специальный держатель. От батарейки емкостью 600 мА-ч плата способна работать в течение семи лет!
Набор представляет собой перепрограммируемое устройство, в которое пользователь может зашить свою прикладную или входящую в комплект фирменную программу. Записанная в микроконтроллер фирменная программа позволяет хранить идентификационную информацию, измерять температуру, интенсивность светового освещения и напряжение (в диапазоне от 0 до 5 В), проигрывать мелодии, регулировать контрастность ЖКИ и устанавливать режим пониженного потребления микропроцессора. Кроме того, программа выполняет функции часов-календаря, работающих в реальном времени. Выбор режимов работы осуществляется при помощи кнопки-джойстика, расположенной на лицевой стороне платы.
Для программирования микропроцессора, установленного на демонстрационной плате, не требуется никакого внешнего оборудова-
PortB II JTAG || PortD II ISP Рис. 6. Вид демонстрационного набора AVR Batterfly со стороны установки
ния. Встроенный загрузчик позволяет подключить плату непосредственно к последовательному порту ПК и программировать микроконтроллер прямо из отладочной среды AVRStudio4. Также можно перепрограммировать микроконтроллер и при помощи ISP, высоковольтного параллельного или JTAG-интерфейса, которые, как и порты B и D, выведены на лицевую сторону платы.
Перечисленные отладочные и ознакомительные аппаратно-программные средства позволят легко освоить новый мощный малопотребляющий микропроцессор ATmega169 корпорации Atmel и исполь-
зовать его в своих новых разработках.
Литература
1. ATmega169V/L — 8 bit AVR microcontroller with 16K Bytes ISP Flash. Advance information. Atmel Corporation. 2003.
2. STK 502. User Guide. Atmel Corporation. 2002.
3. AVR Batterfly. Quick Start User Guide. Atmel Corporation. 2003.
4. AVR Batterfly Evaluation Kit. User Guide. Atmel Corporation. 2002.
элементов
e