Яндекс.Метрика

AVR042.Рекомендации по схемотехническому проектированию на микроконтроллерах AVR.


 

 

AVR042

Рекомендации по схемотехническому проектированию на микроконтроллерах AVR.

 

Ключевые моменты:

·       Обеспечение надежного напряжения питания, цифрового и аналогового.

·       Подключение линии RESET.

·       Интерфейс SPI для внутрисхемного программирования.

·       Использование генераторов на внешних керамических и кварцевых резонаторах.

 

1 Введение

 

Эта заметка была написана с целью ответить на некоторые вопросы и проблемы, с которыми сталкиваются, приступая к работам по проектированию устройств с использованием микроконтроллеров AVR. В ней рассматриваются  предметы, о которых известно, что они способны создать проблемы. Задача заметки, скорее - дать вводную информацию о потенциальных проблемах проектирования, нежели стать всеобъемлющим руководством по тому, как проектировать прикладные задачи, используя микроконтроллеры AVR. Соответственно, этот документ является подборкой информации из существующих документов ATMEL AVR, объединенной с информацией, которая не была ранее документирована.

Перед тем как приступить к новой разработке, особенно если ее целью является коммерческое применение, которое должно соответствовать требованиям директивы EMC (или подобных директив для стран за пределами Европы), настоятельно рекомендуется прочитать заметку по применениюAVR040 - «EMC Design Considerations". Ее можно найти на официальном сайте Atmel http://www.atmel.com в разделе AVR.

2 Источник питания

 

При проектировании источника питания для дискретных/цифровых элементов AVR должны быть приняты во внимание два аспекта: излучение шума и защита от ESD. Оба эти предмета детально рассмотрены в заметке по применению AVR040, а в данный документ включены только краткие выводы.

2.1 Цифровое питание

 

Глядя на справочный листок микроконтроллера AVR, можно впасть в заблуждение, что качество источника питания не критично. Устройство имеет очень широкий диапазон напряжения питания, и потребляет всего несколько миллиампер тока. Но, как и для всех цифровых схем, ток питания представляет собой усредненное значение. Ток потребляется очень короткими всплесками на фронтах тактирующего сигнала, и если при этом происходит переключение линий ввода/вывода,  эти всплески становятся еще сильнее. Если все восемь линий порта ввода/вывода изменяют свое состояние одновременно, импульсы тока в линиях источника питания могут составлять несколько сотен миллиампер. При ненагруженных линиях ввода/вывода длительность импульса будет всего несколько наносекунд.

Длинные линии источника питания не могут обеспечить передачу токовых импульсов такого рода. Основным источником в этом случае является (или должен быть) развязывающий конденсатор.

 

Рисунок 2-1. Некорректная развязка

 

На рис. 2-1 показан пример неудачной развязки. Конденсатор расположен слишком далеко от микроконтроллера, создавая тем самым большую петлю с сильным током. Слои  питания и  «земли» являются частью этой петли.  В результате шумы распространяются на другие компоненты, находящиеся на плате, еще легче, а излучение, создаваемое платой, еще больше растет. В этом случае антенной (излучающей - прим. перев.) для шумов будет служить не только контур с сильным током, но и весь слой «земли». Это будет происходить в случае, когда питающий и общий выводы подключены непосредственно к слоям питания (типично для компонентов навесного монтажа) и развязывающий конденсатор подключен тем же способом. Аналогичная картина часто наблюдается и на платах с компонентами поверхностного монтажа, когда интегральные схемы расположены на одной стороне платы, а развязывающие конденсаторы на другой.

Рисунок 2-2 демонстрирует более подходящее размещение конденсатора. Проводники, являющиеся частью сильноточного контура, не принадлежат слоям питания и «земли». Это важно, так как в противном случае питающий слой и слой «земли» будут сильно «шуметь». Более того, рисунок демонстрирует еще одно усовершенствование развязки. В схему введена последовательная индуктивность, снижающая коммутационные помехи в питающем слое. Естественно, что последовательное сопротивление дросселя должно быть достаточно малым, чтобы не создавать значительного падения напряжения постоянного тока.

 

Рисунок 2-2. Развязка с последовательной индуктивностью

 

Как правило, устройства AVR, у которых линии питания и «земли» расположены близко друг к другу (подобно ATmega8535),  будут получать лучшую развязку, чем устройства со схемой расположения выводов в соответствии с промышленным стандартом (подобно ATmega8515), где выводы питания и «земли» расположены в противоположных углах DIP корпуса. Этот недостаток может быть преодолен путем применения, например, корпуса TQFP, который позволяет разместить развязывающие конденсаторы очень близко к кристаллу. Для устройств с множеством пар выводов питания и «земли» необходимо, чтобы каждая пара имела свой собственный развязывающий конденсатор.

Основной источник питания также должен иметь танталовый конденсатор емкостью несколько микрофарад, служащий для повышения стабильности его работы.

 

2.2 Аналоговое питание

 

Устройства AVR, содержащие встроенный АЦП, имеют отдельный вывод аналогового напряжения питания AVcc. Назначение этого отдельного источника напряжения - сделать аналоговые схемы менее подверженными воздействию цифрового шума, вызванного переключением в цифровых схемах.

Для получения хорошей точности АЦП напряжение питания  аналоговых схем должно развязываться отдельно, так же как это делается и для напряжения питания цифровых схем. При наличии отдельного вывода аналоговой земли (AGND) эта земля должна быть отделена от цифровой земли, объединяясь с нею только в одной точке - исходной точке GND, находящейся в источнике питания.

 

Подключение вывода RESET на AVR

 

Активный уровень вывода RESET микроконтроллера AVR  LOW (низкий), и перевод этого вывода путем внешних манипуляций в состояние LOW будет, таким образом, приводить к сбросу AVRRESET имеет двойное назначение:

1.              Освободить все линии путем перевода всех выводов (исключая выводы XTAL) в третье (высокоимпедансное) состояние, инициализировать все регистры ввода/вывода и установить программный счетчик на нуль.

2.              Для входа в режим программирования (у некоторых микроконтроллеров для входа в режим программирования используется также вывод PEN). Более того, существует возможность входа в режим высоковольтного/параллельного программирования путем перевода вывода RESET в «очень» высокий уровень. Здесь «очень» высокий» означает 11,5 - 12,5 вольт (более подробную информацию можно получить в справочном листке устройства).

 

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

Для исключения случайного сброса могут быть использованы различные подходы к способу подключения вывода RESET. Управление выводом RESET может осуществляться с использованием внешних аварийных (Brown-out) или контрольных схем. В случае использования аварийной схемы, подобной той, что описана в заметке по применению AVR180, нет необходимости рассматривать дополнительное подключение вывода RESET. Однако если устройство AVR, используемое в проекте, имеет встроенную аварийную схему, на внешней аварийной схеме можно сэкономить. При этом для управления состоянием вывода RESET может быть выбрано более простое решение.

При подключении к линии RESET внешнего подтягивающего резистора становится возможным и вход в режим высоковольтного программирования и обычное использование RESET в качестве входа низкоуровневого сброса. Подтягивающий резистор гарантирует, что линия сброса не перейдет неожиданно в низкий уровень. Теоретически величина подтягивающего резистора может быть любой, но если предполагалось, что программирование должно осуществляться с помощью, например,STK500/AVRISP, она не должна быть такой, чтобы программатор не смог активировать СБРОС путем перевода линии RESET в низкий уровень. При программировании с использованием STK500 рекомендуемая величина подтягивающего резистора составляет 4.7 кОм.

Для еще большей защиты линии RESET от шумов полезно между выводом RESET и землей включать конденсатор. Это не является абсолютным требованием, так как в составе AVR имеется низкочастотный фильтр для устранения импульсных помех и шумов, способных вызвать сброс микроконтроллера. Использование отдельного конденсатора, таким образом, является дополнительной мерой защиты. В том случае, если режим высоковольтного программирования не используется, между линиями RESET и Vcc рекомендуется устанавливать внешний диод защиты отESD. Для сохранения возможности режима высоковольтного программирования такой диод исключен из схемы AVR. Внешние компоненты следует располагать физически близко к выводу RESET AVR. На рисунке 3-1 показана рекомендуемая схема подключения линии RESET.

 

 

Рисунок 3-1. Рекомендуемая схема подключения вывода RESET

Подключение линий ISP

 

Во всех AVR (исключая ATtiny11 и ATtiny28) линии внутрисхемного программирования (ISP) используются для программирования Flash, EEPROM, битов блокировки Lock-bits и большинства конфигурационных битов Fuse-bits. Эта особенность делает возможным программирование AVR на последней стадии производства изделия, перепрограммирование при обнаружении ошибок в программном обеспечении, и даже обновление AVR по месту, если это требуется. Поэтому настоятельно рекомендуется проектировать плату изделия так, чтобы разъемы ISP были каким-либо образом доступны, - на всякий случай. 

Программаторами Atmel ISP предоставляется два стандартных разъема: шести и десяти выводные. Они показаны на рисунке 4-1. В дополнение к линиям данных (MOSI и MISO) и синхронизации через эти разъемы обеспечивается присутствие линий GND, сброса (RST) и напряжения питания программируемой платы VTG.

 

Рисунок 4-1. Стандартные разъемы ISP, используемые в STK500, AVRISP и STK200/STK300

 

Некоторые программаторы ISP питаются от источника программируемой платы. В этом случае они легко адаптируются для коррекции уровня напряжения питания целевой платы. Другие программаторы ISP, как, например, STK500, могут сами питать программируемое устройство через линию VTG. При этом важно, чтобы источник питания на программируемом устройстве был выключен. Для определения возможностей

Бесплатный хостинг uCoz