Микроконтроллер ATmega169 и кит AVR-Baterfly

В ноябре 2002 года к столь полюбившемуся многим разработчикам семейству AVR низкопотребляющих 8- битных Flash микроконтроллеров корпорации Atmel добавился новый микроконтроллер ATmega169, предназначенный для работы в портативном оборудовании с автономным питанием.

В 1997 году корпорация Atmel, один из мировых лидеров в производстве полупроводниковых приборов, таких как различные логические, смешанно-сигнальные и радиочастотные микросхемы, а так же различные приборы с энергонезависимой памятью, начала выпуск 8- битных микропроцессоров с Flash памятью своего нового семейства AVR. Корпорация Atmel является признанным лидером в технологии производства приборов с Flash памятью, что позволяет ей выпускать Flash микроконтроллеры, которые по цене сравнимы, а порой имеют и более низкую цену, чем аналогичные микроконтроллеры других производителей с ОТР памятью.

Микропроцессоры семейства AVR содержат высокоскоростное вычислительное ядро RISC архитектуры, развитую периферию и функцию внутрисистемного программирования. Кроме того, микропроцессоры этого семейства имеют производительность 1 MIPS при тактовой частоте 1 МГц, т.е. выполняют большинство команд за 1 цикл.

Микропроцессор ATmega169 является первым низкопотребляющим членом семейства AVR, который содержит встроенный контроллер ЖКИ. AVR ядро объединяет богатый набор команд и 32 рабочих регистра, которые могут быть напрямую подключены к АЛУ, что позволяет выполнять действия с двумя регистрами одновременно одной командой. Вычислительное ядро построено по Гарвардской архитектуре с разделенными памятью и шинами программы и данных. Процессор имеет одноуровневый конвейер, позволяющий при выполнении команды выбирать следующую. Такая архитектура вычислительного ядра позволяет выполнять команды в каждом цикле. Архитектура вычислительного ядра микропроцессора приведена на рисунке 1.

Архитектура вычислительного ядра микропроцессора ATmega169. Рисунок 1.

Микропроцессор содержит 16 кбайт программной Flash памяти, 512 байт EEPROM памяти, 1 кбайт SRAM, 53 линии портов ввода-вывода общего назначения, 32 рабочих регистра общего назначения, JTAG интерфейс, встроенные автоматы отладки и программирования, законченный контроллер ЖКИ с преобразователем напряжения, три гибких независимых таймера/счетчика, внешние и внутренние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового состояния, 8- канальный 10- битный АЦП, программируемый сторожевой таймер со встроенным генератором и последовательный SPI порт.

Предназначенный для использования в аппаратуре с автономным питанием, микропроцессор имеет превосходные мощностные характеристики. Во-первых, он выпускается в трех модификациях с различными диапазонами напряжения питания: 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 режиме содержимое регистров сохраняется, но останавливается задающий генератор и отключаются все внутренние функции микропроцессора до тех пор, пока не произойдет прерывание или не произойдет аппаратный сброс. При этом типовой ток потребления микропроцессора при отключенном сторожевом таймере и 3 В питании равняется 1 мкА. В режиме Power-save асинхронные таймеры и контроллер ЖКИ продолжают функционировать, позволяя ЖКИ работать в то время, когда микропроцессор находится в режиме сна. В режиме ADC Noise Reduction останавливается вычислительное ядро и все модули ввода-вывода, за исключением асинхронного таймера, контроллера ЖКИ и самого АЦП, что позволяет минимизировать шумы в течение выполнения аналого-цифрового преобразования. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует.

Кроме сказанного выше, для снижения потребления в рабочем режиме можно отключить незадействованные периферийные модули. Также следует иметь в виду, что многие модули остаются активными даже при инициализации режимов пониженного потребления. Например, если АЦП был включен в активном режиме, то он остается активным во всех режимах. Аналоговый компаратор остается активным только в режимах Idle и ADC Noise Reduction, в остальных режимах сна он автоматически отключается.

При правильном использовании микропроцессор ATmega169 способен управлять работой ЖКИ в течение 10 лет, питаясь только от двух батареек типа АА!

Для обеспечения этого к описанным выше режимам и способам снижения потребления микропроцессор содержит встроенный драйвер ЖКИ. Встроенный контроллер/драйвер ЖКИ способен обслуживать индикаторы 25х4. Структурная схема модуля ЖКИ приведена на рисунке 2.


Структурная схема модуля ЖКИ. Рисунок 2.

Контроллер модуля ЖКИ может тактироваться как от внутреннего, так и от внешнего источника тактовых импульсов. Для модуля ЖКИ оба эти источника идентичны. Опорные синхроимпульсы поступают на 12- битный циклический счетчик, имеющий отводы от старших восьми разрядов, что позволяет поделить частоту опорных тактовых импульсов на 16, 64, 128, 256, 512, 1024, 2048 или 4096. Полученные после деления синхро импульсы используются в качестве опорных для тактирования ЖКИ.

Информация, которую необходимо отобразить на индикаторе, заносится в регистры LCDDR0-LCDDR19 (при этом регистры LCDDR4, LCDDR9, LCDDR14 и LCDDR19 не используются). Если сегмент ЖКИ должен быть запитан (т.е. он должен быть виден), то соответствующий бит регистра памяти ЖКИ должен быть установлен в 1, а если записать в него 0, то он виден на индикаторе не будет. Соответствие содержимого регистров памяти ЖКИ и соответствующих сегментов индикатора приведено в таблице 1.

Таблица 1. Таблица соответствия содержимого регистров памяти ЖКИ и соответствующих сегментов

Бит
7
6
5
4
3
2
1
0
Регистр

Группа








LCDDR19

COM3







SEG324
LCDDR18

COM3
SEG323
SEG322
SEG321
SEG320
SEG319
SEG318
SEG317
SEG316
LCDDR17

COM3
SEG315
SEG314
SEG313
SEG312
SEG311
SEG310
SEG309
SEG308
LCDDR16

COM3
SEG307
SEG306
SEG305
SEG304
SEG303
SEG302
SEG301
SEG300
LCDDR15










LCDDR14

COM2







SEG224
LCDDR13

COM2
SEG223
SEG222
SEG221
SEG220
SEG219
SEG218
SEG217
SEG216
LCDDR12

COM2
SEG215
SEG214
SEG213
SEG212
SEG211
SEG210
SEG209
SEG208
LCDDR11

COM2
SEG207
SEG206
SEG205
SEG204
SEG203
SEG202
SEG201
SEG200
LCDDR10










LCDDR9

COM1







SEG124
LCDDR8

COM1
SEG123
SEG122
SEG121
SEG120
SEG119
SEG118
SEG117
SEG116
LCDDR7

COM1
SEG115
SEG114
SEG113
SEG112
SEG111
SEG110
SEG109
SEG108
LCDDR6

COM1
SEG107
SEG106
SEG105
SEG104
SEG103
SEG102
SEG101
SEG100
LCDDR5










LCDDR4

COM0







SEG024
LCDDR3

COM0
SEG023
SEG022
SEG021
SEG020
SEG019
SEG018
SEG017
SEG016
LCDDR2

COM0
SEG015
SEG014
SEG013
SEG012
SEG011
SEG010
SEG009
SEG008
LCDDR1

COM0
SEG007
SEG006
SEG005
SEG004
SEG003
SEG002
SEG001
SEG000
LCDDR0

Для того, чтобы сегмент стал виден на него надо подать разность потенциалов, превышающую пороговое значение. Это обеспечивается подачей на соответствующие выводы 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). Но при этом, для обеспечения нулевой постоянной составляющей тока через сегменты ЖКИ, длительность обновления его возрастет в два раза. Эпюры сигналов нормального и Low Power Waveform режимов работы при обслуживании трех групп сегментов и формировании уровней напряжений, кратных 1/3VLCD, приведены на рисунке 3.


Эпюры сигналов нормального и Low Power Waveform режимов работы при обслуживании трех групп сегментов и формировании уровней напряжений, кратных 1/3VLCD. Рисунок 3.

Важно заметить, что контроллер ЖКИ продолжает работать и в режимах сна. При синхронном тактировании драйвер ЖКИ будет работать в Idle и Power-save режимах при любом источнике опорного сигнала. При асинхронном тактировании от TOSC1, работающего от встроенного RC генератора, драйвер ЖКИ будет работать в Idle, ADC Noise Reduction и Power-save режимах сна. В асинхронном режиме работы в качестве опорных синхроимпульсов можно использовать сигнал, поданный на вход TOSC1 от внешнего источника.

Если для управления работой ЖКИ используются не все выводы модуля, то эти незадействованные выводы могут использоваться в качестве линий портов ввода-вывода общего назначения.

Встроенный автомат внутрисистемного программирования позволяет перепрограммировать программную память через последовательный ISP интерфейс при помощи энергонезависимого программатора памяти или встроенной программой-загрузчиком, выполняющейся в AVR ядре. Программа-загрузчик может использовать любой интерфейс для записи программы в прикладную Flash память. Программа из загрузочной секции Flash памяти продолжает выполняться даже при загрузке прикладной секции Flash памяти, реально обеспечивая Read-While-Write (чтение при записи) режим работы. Объединяя в себе 8-битное RISC ядро и внутри системно само программируемую Flash память в одном корпусе, микропроцессор ATmega169 является мощным прибором, который даст Вашим устройствам более высокие гибкость и стоимостную эффективность.

Микропроцессор ATmega169 AVR поддерживается различными программными и системными средствами разработки, такими как С- компиляторы, макроассемблеры, отладчиком/симулятором (AVR Studio версий 3.5 и 4.0), внутрисхемными эмуляторами (ATICE50 и AVR JTAG ICE) и внутрисистемным программатором AVR ISP. Для ускорения разработки новых устройств на базе микропроцессора ATmega169 и снижения затрат на разработку выпущены отладочная плата STK502 и демонстрационный набор AVR Batterfly.

Отладочная плата STK502 (рис. 4) представляет переходную плату, позволяющую подключить микропроцессор ATmega169 к отладочному комплекту STK500. В его состав входят все соединители и разъемы, необходимые для ее подключения, а кроме того два примера применения: в качестве системы слежения за температурой с выходом на ЖКИ и в качестве драйвера ЖКИ. Плата содержит ZIF колодку, предназначенную для установки в нее микропроцессора ATmega169.


Отладочная плата STK502. Рисунок 4.

Демонстрационный набор AVR Batterfly предназначен для демонстрации возможностей встроенного драйвера ЖКИ микроконтроллера ATmega169. Однако он позволяет не только управлять работой и контрастностью ЖКИ, но подключать при помощи дополнительных соединителей светодиоды, коммутаторы и различные периферийные устройства для исследования AVR архитектуры микропроцессора. Демонстрационная плата набора AVR Batterfly содержит микропроцессор Atmeg169 в MFL корпусе, 120 сегментный ЖКИ, четырехпозиционный джойстик для ввода информации, пьезо излучатель, 32 кГц кварцевый резонатор для обеспечения работы часов реального времени, 4 мегабитную память DataFlash производства корпорации Atmel для хранения данных, RS-232 преобразователь уровней для обеспечения обмена данными с внешними устройствами, NTC термистор для измерения температуры и оптический датчик для измерения интенсивности светового излучения. Для питания платы используется 3 В батарейка, устанавливаемая в специальный держатель. От батарейки, имеющей емкость 600 mAh, плата способна работать в течение семи лет!


Демонстрационный набор AVR Batterfly. Вид с верху. Рисунок 5.


Демонстрационный набор AVR Batterfly. Вид со стороны монтажа. Рисунок 6.

Набор представляет собой перепрограммируемое устройство, в которое пользователь может зашить свою прикладную или входящую в комплект фирменную программу, которая позволяет хранить идентификационную информацию, измерять температуру, интенсивность светового освещения и напряжение (в диапазоне от 0 до 5В), проигрывать мелодии, регулировать контрастность ЖКИ и инициализировать режим пониженного потребления микропроцессора. Кроме того, программа выполняет функции часов — календаря, работающих в реальном времени. Выбор режимов работы осуществляется при помощи джойстика, расположенного на лицевой стороне платы.

Для программирования демонстрационной платы не требуется никакого внешнего оборудования. Встроенный загрузчик позволяет подключить плату непосредственно к последовательному порту ПК и программировать микроконтроллер прямо из отладочной среды AVRStudio4. Также можно перепрограммировать установленный на плате микропроцессор при помощи ISP, высоковольтного параллельного или JTAG интерфейсов, которые, как и порты B и D, выведены на лицевую сторону платы.

Перечисленные выше отладочные и ознакомительные аппаратно-программные средства позволят Вам легко освоить новый мощный низкопотребляющий микропроцессор ATmega169 корпорации Atmel и использовать его в своих новых разработках. Микропроцессор доступен со склада компании Ineltek по цене $7.5, а демонстрационный набор AVR Batterfly — по цене $25.

Источник

Оставить комментарий

Вы можете использовать следующие теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>