Схема отладочной платы для avr. Приступаем к подготовке

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

Для начала нужен программатор, но информации об этом в интернете тонны, потому остановлюсь лишь поверхностно. Самый простой из них - это так называемые «5 проводов», сделать его легко - берем LPT кабель и через резисторы соединяем с МК, как показанно на рисунке:

Делать все нужно предельно аккуратно, спалить LPT таким - на раз.
Гораздо лучше сделать что то приличнее - например USBasp он безопаснее, и работает через USB.
Как вариант - купить программатор в том же Voltmaster или Чип-и-Дип.
Параметры для начала не так важны, кроме цены и поддерживаемых микросхем.

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

Конечно есть макетные платы, но по мне так паутина из проводов и перемычек выглядит ужасно, да и ненадежно и, что самое главное не наглядно (а при разработке и обучении это важно).

Существуют отладочные платы для различных микроконтроллеров. И все в них хорошо, кроме цены (самая простенькая от 2-3 тыс.р - оно конечно того стоит, но на то оно и радиолюбительство, чтобы по возможности обойтись своими руками). Потому я принял решение создать свою простую отладочную плату, которая будет отвечать моим требованиям.

Какие требования были к данной плате:

  • Простота исполнения
  • Наглядность
  • Универсальность
  • Дешевизна
  • Простота создания тестового устройства
  • Наличие LCD дисплея
  • Встроенная клавиатура
  • 2 свободных порта (с возможностью их использовать по своему усмотрению)
  • COM порт у платы для интеграции с компьютером

Что было использованно при изготовлении:

  1. Стеклотекстолит односторонний ~70р
  2. Колодки для подключения периферии и коммутации (штырьки как на материнках, на которые вешаются джамперы) ~50р
  3. Кнопки тактовые - ~ 50р
  4. Панелька для микросхемы 30р
  5. Разьем для COM порта 20р
  6. Микросхема MAX232a 50р
  7. LCD индикатор - от 250р
  8. Сама микросхема ATmega32 от 200р
итого 720р по московским безумным ценам на радиодетали (А точнее по прайсу Вольтмастера).
вот что в итоге у меня получилось:
2. Разводка
Теперь по порядку. Начнем с разводки платы в Sprint-Layout. По сути, это самый ответственный момент в создании устройства, нужно учесть все ньюансы, а также на этом моменте нужно понять - что конкретно требуется от платы, как это должно выглядеть, как удобнее. Потому не советую повторять в слепую, стоит сесть и просмотреть аналоги, вычленить для себя интересные решения или узлы. У меня получилось вот так:

Подробнее о периферии, для этого стоит взглянуть на распиновку кристалла:

  • На PORTA будет висеть клавиатура - 7 кнопок, расположенных так, чтобы с помощью них можно было при надобности осуществить навигацию, например, по меню (крестовина), и пара кнопок для доп ф-й.
  • на PORTB я разместил LCD дисплей, таким образом, как это предусмотренно в codevision avr стандартными средствами (используются три командных регистра дисплея и 4 регистра данных)
  • PORTC и PORTD вывел колодками для подключения периферии. еще я предусмотрел рядом с колодками еще цанговые панельки, но в моем хозяйстве их неоказалось и их установка отложена до лучших времен
  • Также я разместил max232 c обвязкой из конденсаторов и разъем COM порта.
  • Для универсальности каждый пин контроллера выведен на колодки, параллельные панельке для микросхемы.
  • пины программирования SCK, MISO, MOSI и RESET продублированны еще одним рядом колодок
3. Изготовление печатки
Как только плата была разведена, методом лазерного утюга была изготовленна печатка. на методе останавливаться нет смысла, так как он сотни раз описан в интернете, и как минимум . Результат:
4. Завершающий этап
далее сверлим, лудим, паяем нашу плату.
5. Заключение
И вот, наша отладочная плата для упрощения разработки на МК готова. Теперь для того, чтобы научиться работать с функционалом МК AVR нам не придется ваять клубок проводов. просто подключаем к свободным портам нужную периферию (будь то светодиоды, датчики, драйверы приводов и сервомашинок, а так же многое другое), и спокойно пишем программу.

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

Плата отладочная является достаточно полезным инструментом при разработке различных электронных устройств. Но можно ли создать её своими руками? Или же следует рассчитывать только на промышленные аналоги? Какие особенности есть у этого устройства? Об этом мы сегодня и поговорим.

Общая информация

Когда говорят об этой теме, то чаще всего понимается отладочная плата для Atmega8 или иного подобного микроконтроллера, в основе которого лежит 8-ми или 16-битный принцип работы. Но мир идёт вперёд. Наступает пора 32-битных микроконтроллеров. В связи с этим мы рассмотрим то, что может быть доступно нам уже сейчас. Особое внимание следует уделить отладочной плате STM32, хотя в рамках статьи рассматриваются всё же AVR. Но сначала представим общую картину.

Появление 32-битных микроконтроллеров позволило значительно расширить объем задач, которые они могли выполнить. Но необходимо оптимизировать принимаемые решения и создаваемую технику. Хотя и старым образцам будет уделено внимание, ведь не отметить их универсальность и добротность просто нельзя.

Что же собой представляет STM32?

Конечно, наибольший интерес в рамках статьи представляет плата отладочная. Но чтобы разобраться в дополнительном моменте, давайте рассмотрим основной. Допустим, у нас есть STM32F103C8T6. Отладочная плата представляет собой конструкцию с микроконтроллером, что строится на ядре ARM Cortex-M3. Оно обладает значительным количеством преимуществ, главное из которых - универсальность. Кстати, сейчас Cortex-M3 является полноценным индустриальным стандартом. Плата отладочная представляет собой поверхность, на которой могут взаимодействовать все ножки STM32, обеспечивая выполнение имеющихся задач.

Приступаем к подготовке

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

Прежде чем приступать к изготовлению или покупке платы, необходимо первоначально составить её схему. Для этого можно разложить элементы на бумаге и провести линии соединения между ними. Если всё получилось без проблем - отлично, значит, можно приступать к практическим действиям. Тогда нужно просто разместить и припаять все требуемые элементы, и всё - плата готова. Так это выглядит вкратце. А сейчас давайте рассмотрим все более детально.

Планирование

Необходимость применения отладочных плат рано или поздно настигает каждого радиолюбителя. Это своеобразная отладка на уровне железа. При желании можно купить готовую плату на любой вкус. Но ведь нас интересует подробный разбор данной темы? Поэтому мы рассмотрим, как создаётся отладочная плата своими руками.

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

Если создавать под конкретный случай и разрабатывать схему, то можно протравить дорожки. Этот вариант является наиболее интересным. Кстати, довольно популярной является ситуация, когда используется универсальная схема, а дорожки то наносятся, то удаляются. Чтобы лучше разобраться, давайте рассмотрим несколько примеров.

Плата питания

Допустим, мы строим что-то значительное по размеру, и наше устройство складывается из нескольких модулей. В данном случае схема отладочной платы должна предусматривать возможность получения на входе постоянного или переменного напряжения. Чтобы добиться нескольких способов подключения, нужно подумать о разъемах и клеммниках. Для обеспечения работы нужно предусмотреть не только батареи, но и стабилизатор. А на случай легких перегрузок и сопутствующих перегревов можно использовать и небольшой радиатор.

Плата микроконтроллера

А вот и самое интересное. Вполне возможно, что отладочные платы для микроконтроллеров и вспомогательных элементов - это сложнейшие составляющие. Ведь они являются «мозгами» технических устройств. Для успешного старта в сфере отладочных плат начинать со сложных 32-битных контроллеров нежелательно. Можно начать с чего-то попроще. Например, с ветерана мехатронных разработок ATmega8. Чтобы не усложнять ситуацию дополнительно, можно обойтись построением односторонней печати.

А что делать, если требования выходят за эти рамки? Использовать двухстороннюю печать? Как вариант - да. Но если превышение возможностей незначительно, то часто можно обойтись без монтажных перемычек. Лучше вынести разъемы портов и цепи подтяжки на отдельных миниатюрных платочках. Такой подход позволит облегчить разводку платы микроконтроллера. Но это только общая теория. Давайте же поговорим о реализации на практике.

Ручное изготовление печатной платы

Первоначально нам необходима бумага, на которой будет нарисована разводка для печатной платы. Желательно, чтобы она была тонкой. Это важно для достижения точного сверления отверстий. Чтобы не возникло никаких неожиданностей, бумагу можно приклеить к картону с помощью клея. Далее следует вырезать приклеенный рисунок. Что ж, шаблон для сверления уже готов. Подбираем заготовку фольгированного стеклотекстолита необходимого размера. Прикладываем бумажно-картонный шаблон и обрисовываем его по периметру карандашом или маркером. Затем стеклотекстолит режем по нанесённым нами линиям, используя ножницы по металлу, или же пилим ножовкой. Склеиваем части с помощью клея.

Кстати, небольшой совет: не нужно мазать всю поверхность, достаточно оставить по капле клея в каждом из четырех углов. Если нет желания ждать - используйте «Момент». Он позволит продолжить работу через несколько секунд.

Сверлим отверстия

Для этой цели наилучшим образом подойдёт специальный мини-станок. Но можно воспользоваться и ручным инструментарием. Для подавляющего большинства целей с лихвой хватает сверла с диаметром 0,8 мм. Следует отметить, что качественная плата может не получиться с первого раза из-за сложности работы и необходимости иметь твердую руку. Если подобные действия будут осуществляться впервые (а так, вероятнее всего, и будет), то можно только посоветовать морально подготовиться к тому, что будут поломаны сверла. После выполнения всего спектра работ, чтобы убедится в их качестве, посмотрите на просвет. Если будут заметны определённые дефекты, их необходимо оперативно устранить.

Наносим топографический рисунок

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

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

Переносим рисунок с бумаги на стеклотекстолит

Это самый ответственный этап. Необходимо бумагу (той стороной, где рисунок) приложить к стеклотекстолиту и прижать с большим усилием. Затем разогреваем полученный «бутерброд» в духовой печи до температуры в 200 градусов. Ждём, пока плата охладится до комнатного значения. После этого остаётся отодрать бумагу - и рисунок останется на печатной плате. Это может показаться довольно сложным, особенно с температурой. Специально для таких сомневающихся людей некоторые умельцы предлагают использовать электроутюг. Но здесь следует сделать одно важное предупреждение: результат получается нестабильный. Конечно, можно попробовать попрактиковаться день-второй, и, возможно, будет не хуже, чем в случае с печью. Но всё же существует проблема сложности обеспечения одновременного нагрева поверхности по всей печатной плате до одной температуры. Поэтому рисунок таким способом переносится не полностью.

Наиболее значительные проблемы доставляют пробелы, которые возникают при таком создании. Для безопасности во время «приготовления» печатной платы в духовке её можно дополнительно с разных сторон укрыть листами из металла толщиной в пять-шесть миллиметров. Это делается во избежание негативной деформации во время термической обработки платы.

Заключение

Вот, в общем-то, плата для AVR и готова. Конечно, здесь описан универсальный способ, и доделывать под конкретные условия каждому придётся самостоятельно, ориентируясь по своим потребностям. Можно и поэкспериментировать с созданием универсальных плат. Каждый умелец их постоянно в чем-то дорабатывает, чтобы они были лучше и качественнее. К тому же их освоение позволяет обеспечить надёжность создаваемых схем.

Универсальная отладочная плата FastAVR для начинающих в программировании МК ATMEL разработана на основе анализа около десятка подобных конструкций. Плата представляет собой разумный компромисс между избыточной функциональностью большинства из них или слишком примитивных возможностей других. Имея некоторый опыт в работе с разными микропроцессорными системами, ниже я буду комментировать свои мысли,- как был задуман тот или иной узел платы. Соглашаться с ними или нет - ваше дело, но может быть частично они будут полезны осваивающим AVR в дальнейшем...

В основу конструкции легли разработки и аппноуты Микроэлектроники (http://www.mikroe.com/ru/). Но платы EasyAVR (да и не только) содержат слишком много компонентов, которые привлекают пестротой и качеством изготовления новичков в микропроцессорной технике, на самом деле половина из них становится ненужной после удачной компиляции 5-6 примеров программ и получения опыта. Посудите сами- зачем вам на плате куча светодиодов и кнопок подключенных на каждый порт? Все это актуально пока вы не научитесь управлять пинами порта и помигать индикаторами, а это произойдет весьма быстро;-) На этот случай на плате имеются 4 светодиода и переключатель, для начала вполне достаточно...

Итак, возможности отладочной платы:

  • основной набор периферии для поддержки ATmega: RS-232 конвертер, бипер, SPI EEPROM, LCD и LED-индикаторы, встроенный тактовый генератор + кварц, клавиатура PS-2, ADC тестер, логические тестеры;
  • возможность повторения в домашних условиях, односторонняя печатная плата оптимизированная под лазерно-утюжную технологию, небольшие размеры;
  • применение всех компонентов только в DIP корпусах- позволяет легко заменять их в процессе экспериментов либо запрограммировать сам процессор для других схем (например для JTAG);
  • полная функциональная достаточность для создания несложных прототипов устройств и их отладка;
  • разъем стандартного SPI программатора STK-200 с селективной подачей питания на программатор, возможность внешнего подключения JTAG;
  • возможность включения платы в режиме JTAG ICE простой перекоммутацией;
  • возможность независимой коммутации набортной периферии в любых сочетаниях благодаря линейной технологии расположения всех портов МК;
  • возможность легкого подключения любой внешней периферии и использования на 100% ресурсов ATmega в DIP-40, все порты поразрядно доступны, более того - вся внутренняя периферия платы позволяет использовать ее для внешних устройств (например тактовый генератор или LED индикаторы;

Все это не требует доработок платы или пайки. Т.о. на начальном этапе освоения МК возможностей FastAVR вполне достаточно. Тот, кто задумает двигаться дальше, уже после создания собственного ПО сможет самостоятельно решить, что ему нужно конкретно и делать прототип конструкции с собственным набором периферии. Еще раз повторяюсь- плата создана для начала изучения МК AVR, более никаких целей не преследовалось. Появление самой документации связано с интересом, который проявляют многие начинающие осваивать данный тип контроллеров или еще думают с чего начать. А начинать нужно естественно с тест-платы;-)

МК AVR- самодостаточные контроллеры, однако процессор это еще не вся система. "Кубики" обслуживающие его или управляемые им, сами по себе можно рассматривать как отдельные блоки будущих конструкций. Объединив их на основной плате все вместе можно комбинируя получить нужные результаты. Сначала плата задумывалась на основе ATmega8, т.к. он дешев и имеет практически все возможности AVR. Однако, вняв советам, я решил не экономить и поставить максимально доступный в DIP-корпусе микроконтроллер- ATmega16 либо 32. Цоколевка обоих МК идентична. Себестоимость такого решения сторицей окупается количеством портов ввода-вывода, к которым можно подключиться хотя бы на время отладки. Совместимость снизу-вверх для всех поколений AVR позволяет производить написание и отладку программ используя более мощный чип, а затем произвести компиляцию для целевого кристалла. Достаточный ресурс флеша позволяет не "зацикливаться" на ограниченности в возможностях перепрограммирования Меги, тем более что можно достаточно поупражнявшись, отправить доживать МК в рабочую конструкцию, прошив его в последний раз (JTAG ICE тому первый претендент)

Для изготовления платы потребуется немного недефицитного компьютерного "хлама", которого хватает в кладовках любого электронщика. Большинство компонентов применено от старых либо отказавших материнских плат IBM PC либо околокомпьютерной техники, в последнее время железо такого рода все больше приходит в негодность и выбрасывается либо валяется без применения. Т.к. с SMD мелочевкой практически ничего сделать не получается (отсортировать проблема, да и время...), я распаиваю такие девайсы целиком либо строительным феном, либо на электроплитке.

Основное описание FastAVR ниже по блочно:

Питание. Встроенный стабилизатор на 78(М)05 позволяет запитывать плату от широко распространенных адаптеров 9-12В взятых от другой аппаратуры, которые обычно простаивают. В обычном включении этого достаточно (Мега-16/32 + LCD + RS232 + TXO), при использовании набортного 7-ми сегментного LED, либо сильно прожорливой внешней периферии (сложного программатора) стабилизатор уже очень горячий. Подключение внешнего стабилизированного напряжения +5В возможно через pin-3 X1 (применен разъем от кулеров матплат). Предварительно необходимо отключить джамперы JP1-JP2 группы VCC_SEL. Х1 такого типа выбран по нескольким причинам, основная- почти всегда приходится делать переходник для питания платы от разных адаптеров что есть в наличии либо лабораторного БП. Проходные ферритовые дроссели (балун) FB1,FB2 фильтруют импульсные помехи и ВЧ наводки. На диодах VD1,VD2 выполнена защита от "переплюсовки". В нескольких местах платы установлены джамперы VCC_EXT и GND_EXT. Через них достаточно просто при подключении периферии снимать питающее напряжение и общую "землю".

Внешняя память реализована на стандартной I2C EEPROM 24cXXX. Хотя сам AVR содержит собственную энергонезависимую память, однако во многих конструкциях внешний чип может быть предпочтительней из-за объема либо ресурса. Схема включения стандартная, адрес кристалла 0x01.

Линейные LED индикаторы состояния портов HL2-HL5 выполнены на 4-х дискретных светодиодах. Для начала экспериментов с AVR этого достаточно, большее их количество считаю не оправданным и скорее украшательством. Светодиоды включаются при записи в порт лог."1", т.о. состояние порта отображается без инверсии сигнала, что удобно и наглядно.

Подключение к плате индикатора LCD сделано через 2 разъема, возможно использовать как 8-ми битный так и 4-х битный режим. Первый из них - 34-х пиновый Х2 (от 3,5" дисковода) позволяет использовать стандартные перепрессованные шлейфы от дисководов нужной длинны, соответственно на самом индикаторе лучше распаять штыревую джамперную линейку (пин-блок), это позволяет быстро менять разные индикаторы без боязни перепутать выводы. Подключение к портам авра осуществляется через пин-блок Х10, т.о. помимо самого режима подключения LCD можно гибко выбрать выводы МК. Такая конструкция позволяет легко адаптироваться к свободным портам контроллера, даже "набрать" их по-одному из разных групп портов, что бывает необходимо при соответствии конкретному отлаживаемому прототипу или вновь конструируемая печатная плата получается от этого удобнее в разводке.


Во многих случаях применение ЖК-индикатора может быть не оправдано по цене, габаритам либо надежности. Например, в простейшем зарядном устройстве или таймере вполне может потрудиться и 2-х разрядный LED индикатор. Имеющиеся у меня в наличии сдвоенные 7-сегментные индикаторы распространенного типа с высотой знака 14мм оказались как с общим анодом, так и с общим катодом (списанные кассовые аппараты и системные блоки 486 компьютеров). Пришлось применить 2-х тактные ключи на VT1-VT4 для подключения индикаторов любого типа и соответственно панельку под сам индикатор, чтобы в дальнейшем не ломать голову со схемотехникой.

Все подключение периферии к портам ATmega, как отмечалось ранее, выполнены через линейные пин-блоки X3-X6. В основном на отлаживаемых платах я наблюдал применение разъемов типа IDC-10 (2х5). Единственное их преимущество в этом случае- наличие "ключа", дабы не попутать местами шлейф при подключении. На этом достоинства такого способа кончаются и начинаются недостатки- даже визуально неудобно работать с 8-ми разрядными портами, т.к. выводы не расположены в ряд, невозможно кроме шлейфа ничем подключить встроенную периферию. Применение пин-блоков дает прямо противоположный результат, кроме того- через стандартную перемычку-джампер легко контролировать любые сигналы сверху, например логическим пробником или осциллографом, не нужно тыкаться и считать по ножкам порта боясь случайно "коротнуть" выводы. Прибавьте сюда максимальную дешевизну и многоразовость данного соединения, ведь гораздо проще заменить шлейф или джампер, чем разъем впаянный с плату. Тем более, что сейчас в продаже даже в нашей глубинке можно найти вот такие ответные части разъемов (либо использовать от старых системных блоков), что позволяет легко и быстро комбинировать соединители (рис):


Для звука применен распространенный бипер сопротивлением около 80 Ом от матплат. Сигнал не очень громкий, но достаточный для контроля (R23 и так выбран на пределе). Отдельный ключ я не стал ставить, желающие могут распаять его на местах для макетирования, обозначенных как TEMP. Небольшой совет - работая со звуком, не забывайте в конце процедуры генерации сигнала ставить команду, сбрасывающую в лог."0" вывод PD7, иначе после прекращения генерации там может остаться "1" и ток через динамик будет продолжать идти, что не есть good хотя бы по соображениям общего потребления AVR-а.

На 4-х разрядном DIP-переключателе SW4 собран задатчик логических сигналов для портов. Здесь ситуация с количеством аналогична LED светодиодам. Т.к. входы авров имеют внутренние подключаемые pool-up сопротивления, то соответственно "подтяжки" к питанию ставить нет нужды. На резисторах R18-R21 собрана защита от ошибок случайного включения портов МК на вывод. В ревизии платы 1.03 и выше дип-переключатель при отсутствии может быть заменен джамперами. Недавно мне понадобилось быстро сделать из платы JTAG ICE. В связи с чем в rev 1.4 введена резисторная матрица RN1, которая позволяет аппаратно формировать лигическую "1" на нескольких входах контроллера. Если вам это не нужно - можно не устанавливать RN1.

Тактирование МК выбирается пин-группой CL_SEL и может осуществляться от внешнего кварцевого резонатора Z1 (устанавливаются только JP37, JP38), интегрального кварцевого генератора G1 (16МГц), либо с делителя на:2 и:4. Т.о. помимо кварца можно тактировать процессор частотами 16, 8, 4 МГц. Можно легко прикинуть быстродействие отлаживаемой программы, либо получить стандартную тактовую частоту при запаянном спец. кварце. В-принципе при отсутствии TXO на данную частоту можно применить любой другой генератор до 16МГц. Генератор также может пригодиться вам при "поднятии" МК из-за неправильно прошитых фьюзов микроконтроллера, в этом случае частота тактирования не играет роли.

Преобразователь уровней последовательного интерфейса RS-232 для UART - неизменный атрибут большинства систем на AVR. Здесь не нужно "изобретать велосипед", достаточно стандартной MAX232. Задействованы только сигналы RX-TX, что вполне достаточно для большинства применений. Практически можно подключить CTS-RTS для аппаратного управления потоком без переделки платы, гибкими проводами на JP31-JP32 со стороны дорожек. В схеме проверены м/сх Maxim MAX232, TI MAX232 и SIPEX SP3232- ставьте любые совместимые по цоколевке аналоги.

Внешняя матричная клавиатура может быть выполнена на отдельной плате и подключаться шлейфами к МК (я решил применить из манипуляторов "мышь", как правило 2 микрика там всегда исправны). На самой отладочной плате установлен двойной блок разъемов PS-2. Стандартная клавиатура IBM PC подключается без аппаратных доработок, естественно при соответствующей программной поддержке со стороны AVR. Второй разъем свободен, используйте на свое усмотрение. Как правило клавиатура - весьма специфичная вещь, зависящая от отлаживаемого прототипа, поэтому после некоторых раздумий я решил не ставить даже простейшие кнопки на плате. Свои варианты плат выложу после разводки и их испытаний.

Индикатор HL7 установлен для экспериментов со встроенным аппаратным ШИМ-контроллером.

Разъем для внутрисхемного последовательного программирования X7 сделан в соответствии STK-200. Питание на программатор можно селективно выбирать через JP43. В моем случае используется простейший программатор от PonyProg на буфере 74ALS(LS,F)244 с подключением через LPT. Все проверялось на Core2Duo + i965чипсете под управлением XP SP2, никаких проблем не возникло. Программатор запитывается через разъем с отладочной платы и удобен в работе, т.к. буферы в нормальном режиме "уходят" в Z-состояние и абсолютно не мешают в работе FastAVR. Подключение адаптера JTAG для внутрисхемного программирования и отладки в реал-тайм также возможно без доработки платы через соответствующий линейный пин-блок порта C.

Осталось упомянуть еще несколько нужных элементов:

Цепь внешнего Reset, которая у AVR достаточно простая. Ее можно отключать через JP42, хотя эксплуатация совместно с программатором нисколько не мешает. Вход сброса может быть перепрограммирован через фьюз как стандартный порт ввода-вывода и использован для периферии, однако нужно помнить что в этом случае уже невозможно повторно запрограммировать кристалл через X7 .

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

Немного о самой печатной плате и конструкции. Как уже отмечалось, плата односторонняя. Мной пока проверены 2 экземпляра, изготовленные по лазерно-утюжной технологии (одна при печати на фотобумаге от струйников, другая на основе от самоклейки), т.о. при желании все должно получаться;-) Если задумаете фотоспособом- прекрасно! Джамперные линейки разведены с учетом "запретных зон" и применения стандартных 16-ти пиновых шлейфов (планки от GAME-PORT) даже при подключении одним крайним рядом. При отсутствии ферритовых дросселей (я применяю от старых 286 матплат или горелых мониторов) можно смело ставить перемычки. Рекомендую сразу под все чипы поставить панели дабы потом не курочить плату. Не забудьте 2 перемычки с ключей на индикатор HL6.

А вот так выглядит интерфейс для проверялки ТТЛ/КМОП логики, по мере возможностей я постараюсь рассказать, что из этого получилось.

Отладочная плата представляет собой универсальный модуль с микроконтроллером ATmega 32 фирмы ATMEL . Идея модуля заключается в том, чтобы на плате с микроконтроллером было минимум компонентов, необходимых для прошивки/отладки устройства. А вся необходимая периферия подключается отдельно. Таким образом, плата становится небольших размеров, отпадает необходимость закладывать в плату избыточный функционал, так как после знакомства с тем или иным компонентом он будет висеть мертвым грузом, тогда как лучше его пустить в дело, да и саму отладочную плату можно будет использовать в готовом устройстве.

ОСНОВНОЙ МОДУЛЬ

На основной плате помимо микроконтроллера предусмотрен стандартный 6-и пиновый разъем для внутрисхемного программирования, преобразователь на микросхеме FT 232 RL для подключения устройства к персональному компьютеру посредством стандартного UART , внешний высокочастотный кварцевый резонатор в усеченном корпусе и кнопка аппаратного сброса микроконтроллера. Так же в своей версии платы установил аналоговый акселерометр ADW 22035 от Analog Device (поставлен для ознакомительных целей) . Акселерометр использует 7-ой канал АЦП микроконтроллера и подключен к нему через керамический конденсатор С3 емкостью 0,1 мкф. При такой емкости частота опроса акселерометра должна составлять 50Гц (подробнее в даташите). На выходе акселерометра в зависимости от измеренного значения ускорения, будет находиться значение напряжения от 0 до напряжения питания. Аналоговый акселерометр можно заменить на подстроечный резистор номиналом 10-20 кОм, средний вывод нужно будет подключить к входу АЦП, а крайние к шине питания (Vcc и Gnd)

Плата выполнена на двухсторонней печатной плате, все компоненты, за исключением резистора подтяжки ножки Reset , находятся сверху. Все свободные ножки микроконтроллера выведены на разъемы J 1 и J 2.

В качестве индикации применены SMD светодиоды: PLED – индикатор наличия питания в схеме, D1 и D2 индикация передачи данных по UART.

Для облегчения разводки платы в районе преобразователя FT 232 RL , сигнальные светодиоды было решено перенести на вспомогательные выводы микросхемы CBUS 3 и CBUS 4. Поэтому для индикации приема/передачи данных, необходимо перепрограммировать EEPROM микросхемы FT 232 RL .

Остальные номиналы компонентов:

R 2, R 3, R 6 – 510Ом

R 4, R 5 – 1кОм

C 1, C 2 – 20пф

С4, С5, С6 – 0,1 мкрФ

все компоненты в типоразмере корпуса 0805.

Фото получившихся плат


И с обратной стороны


МОДУЛЬ РАСШИРЕНИЯ С ДИСПЛЕЕМ NOKIA 3310



Для освоения работы с дисплеем на контроллере PCD8544 от Nokia 3310, собрана плата расширения, подключаемая к основной плате через штырьковые разъемы J 1 и J 2 (при подключении индекс разъемов на обеих платах должен совпадать). Дисплей занимает для подключения следующие ножки МК:

Reset PortC .0

SCE PortC .1

D/C – PortC.2

SDin – PortC.3

SCLK PortC .4

К выводу Vout подключен электролитический конденсатор емкостью 4,7мкФ.

Также на данной плате предусмотрены 4 тактовые кнопки и 3 светодиода. Светодиоды подключены через токоограничительные резисторы (номиналом 510Ом) к выводам PortD .4, PortD .5 и PortD .7 что позволяет помимо стандартного включения/выключения индикации использовать аппаратный ШИМ (OC 1 A , OC 1 B и OC 2). Для подключения кнопок задействованы ножки микроконтроллера умеющие обрабатывать внешние прерывания (S 1 – int 0, S 2 – int 1, S 4 – int 2). Для подключения кнопки S 3 отведен PortB .3 без внешнего прерывания. Резисторы R 1- R 4 номиналом 10кОм, они подтягивают линии подключения кнопок к шине питания. Поэтому при конфигурировании условия нажатия необходимо задавать по заднему фронту или по низкому уровню. Для быстрого подключения дополнительной периферии несколько линий микроконтроллера выведены на разъем J 3. Для возможности генерировать звук, с обратной стороны платы расположен динамик. В данном исполнении динамик подключается проводами, поэтому специального места для него не выведено. Динамик подключен к выводу PortD.6.

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

Проверка на работоспособность дисплея

Так как в качестве разъема программирования выбран угловой штырьковый разъем PLS необходимо было предусмотреть некую защиту от того, чтобы контролировать правильность подключения шлейфа от программатора . Был придуман такой вариант:


Разъем отдален от края платы и немного поднят над ней, позволяя воткнуть разъем IDC-06 только определенным образом - как показано на фото (если попытаться воткнуть наоборот, то этому помешает выступ на разъеме). Вот такая маленькая хитрость. Еще есть один момент при подключении программатора: так как разъем припаян с верхней стороны платы получилось так, что распиновка перевернулась зеркально и поэтому для подключения необходимо использовать кабель с перекрестным соединением шлейфа:


Скачать

Обычно еще до сборки окончательного варианта устройства, происходит его отладка. Отлавливаются баги в программе, подбираются номиналы деталей итд. Для удобства применяют отладочные платы. На отладочной плате как правило размещаются различные кнопки, индикаторы, преобразователи интерфейсов да и еще куча всего. Тут многое зависит от потребностей разработчика. Кому-то потребуется Ethernet с USB, а кому-то и обычного RS-232 с несколькими светодиодами да парой кнопок за глаза. Это уже вторая версия моей отладочной платы. Первая была неплохой, но все же в ней было небольшое количество мелочей которые я не учел. В этой отладочной плате я старался учесть все то в чем чаще всего возникает потребность у разработчика устройств на микроконтроллерах AVR.

Что есть на этой плате

  • 8 светодиодов с токоограничивающими резисторами. Делать больше восьми штук смысла нет, и меньше тоже т.к. их сразу при помощи одного восьмижильного шлейфа соединить с портом контроллера. Очень удобно на мой взгляд
  • Линейный стабилизатор обеспечивающий плату 5-ю вольтами. Стоит на радиаторе на всякий пожарный. Греется ощутимо.
  • DC-DC преобразователь на 3.3 вольта. Некоторые микросхемы питаются от 3.3 вольт, именно для них этот стабилизатор и предназначен. Кстати от этого напряжения может быть запитана сразу вся плата, нужно только перекинуть перемычку в нужное положение.
  • Преобразователь RS-232 <-> TTL . В комментариях не нуждается. Почему не USB? Просто тупо закончились порты:-)
  • Генератор на 74HC00 . На всякий пожарный если вдруг криво прошились фьюзы. Редкое явление у меня, но на всякий случай решил добавить. Генерит меандр частотой около 2 мГц.
  • R-2R ЦАП. Вещь одноразовая т.е. поиграл и забросил. Развел на плате чисто по приколу т.к. оставалось пустое место.
  • Пара N-канальных мосфетов . Мало-ли, вдруг придётся управлять чем то мощным. Например каким-нибудь движком. Поэтому пусть будут.
  • 4 резисторных делителя. Необходимы для сопряжения 3.3 вольтовой логики с 5-ти вольтовой.
  • ZIF панелька. Благодаря ей можно без труда устанавливать любой контроллер в дип корпусе. От восьминогой тини до 40-ка ногой меги.
  • Светодиодный семисегментный четырёхразрядный индикатор. К каждому сегменту прикручен токоограничевающий резистор, все сегменты соединены между собой.
  • 28-и контактная панелька. Воткнуть второй контроллер или еще чего. Может пригодится.
  • 8 кнопок с управляемой подтяжкой. Без кнопок ни куда. Основное средство ввода данных в микроконтроллер. Подтяжка может отключаться индивидуально для каждой кнопки при помощи группы переключателей. Подтягиваться кнопки могут как к плюсу питания так и к минусу.
  • Бипер с транзисторным ключом. Иногда нужно пропищать.
  • Переменный резистор. Иногда нужен для отладки программ работающих с АЦП
  • Обвязка для I2C. Два обычных резистора на 4.7к. Могут отключаться/подключаться перемычками.
  • Источник опорного напряжения на TL431 выдает пять вольт. Перемычкой подключается к контроллеру.
  • Две интегрирующих цепочки для отладки ШИМ.
  • Разъем для отладки проектов с программным интерфейсом USB . Кроме самого разъема еще имеется необходимая обвзяка.
  • Разъём для подключения SD карты памяти .

Почти все детали SMD. вот так выглядит обратная сторона платы:

Правда флюс не до конца смыт. Да и пофигу устал я его отмывать. На плату не впаян переменный резистор и часовой кварц. Они куда то загадочным образом потерялись во время сборки платы.

Питание платы
Плата может питаться от внешнего источника питания выдающего напряжение примерно 12 вольт. Конечно можно и больше но линейный стабилизатор будет греться сильней. 5 вольт так же можно получить от программатора, jtag отладчика и порта USB. Если требуется питание 3.3 вольта то может быть задействован DC-DC преобразователь. Выбор нужного источника осуществляется спец перемычкой.

Разъёмы на плате
Разъемы jtag и isp — мои собственные и скорее всего не совместимы с другими отладчиками и программаторами. Но я думаю не составит труда переделать их как вам нужно.

Схема и печатка
Косяков в разводке пока замечено не было. Но это не значит что их нет! Поэтому лучше всё еще раз проверить. Схема данной платы не составлялась по одной простой причине что состоит она из независимых друг от друга кирпичиков (DC-DC преобразователь, преобразователь уровней итд) схемы которых можно найти у меня на сайте да и в инете вообще. да и тем более все номиналы подписаны на самой печатке. Если на выходных смогу победить лень, то нарисую:-)

Для изготовления платы понадобятся:

Индикация

Разъёмы и панельки

Наименование Количество шт.
SCZP-40 ZIF-панелька с нулевым усилием 1
SCS-28 Панелька под микросхему DIP-28 1
104B-TAA0-R Держатель для SD/MMC карты 1
USBB-1J Розетка USB на плату угловая тип B 1
DRB-9MA Разъем D-SUB 9 контактов, вилка на плату угловая 1
Разъем питания 7-0088 на плату, 5.5 x 2.5 мм 1
Штыри PLS. Продаются сразу в виде ряда штырей. Их надо разламывать и запаивать. Ломать их легко. Я насчитал 324 штырька. Лучше взять с запасом штук 350. 324

Микросхемы

Кнопки и переключатели

Резисторы SMD 1206

Наименование Количество шт.
220 Ом 19
68 Ом 2
0 Ом 20
1 Ом 3
4.7 кОм 3
10 кОм 6
2.2 кОм 3
100 Ом 4
820 Ом 1
1 кОм 11
2 кОм 11
1.5 кОм 5
3.3 кОм 1