Создание печатной платы методом лазерного утюга.

Автор DI HALT
Опубликовано 29 июля 2008 
Рубрики: Радиолюбительские Технологии
Метки: ,

Не знаю как вы, а я с лютой ненавистью отношусь к классическим монтажным платам. Монтажка это такая хрень с дырками куда можно вставлять детальки и запаивать, где все соединения делаются посредством проводков. Вроде бы просто, но при этом получается такая каша, что понять в ней что либо весьма проблематично. Поэтому и ошибки и сгоревшие детали, непонятные глюки. Ну ее нафиг. Только нервы портить. Мне гораздо проще нарисовать в моем любимом Sprint Layout схемку и тут же вытравить ее в виде печатной платы. С использованием лазеро-утюжного метода все выходит за каких то полтора часа ненапряжной работы. Ну и, конечно же, этот метод отлично подходит для выполнения финального устройства, так как качество печатных плат, получаемых таким методом весьма высоко. А поскольку данный метод весьма непрост для неискушенного, то я с радостью поделюсь своей отработанной технологией, позволяющей получать с первого раза и без каких либо напрягов, печатные платы с дорожками 0.3мм и просветом между ними до 0.2мм. В качестве примера я изготовлю отладочную плату для моего учебного курса, посвященного контроллеру AVR. Принципиальную схему вы найдете в записи про макроассемблер, а готовый файл с разводкой для Sprint Layout 5 я выложил на сайт.

Читать полностью

Комментариев (345)

AVR. Учебный курс. Макроассемблер

Автор DI HALT
Опубликовано 24 июля 2008 
Рубрики: AVR. Учебный курс
Метки: , ,

Перед изучением системы команд микроконтроллера надо бы разобраться в инструментарии. Плох тот плотник который не знает свой топор. Основным инструментом у нас будет компилятор. У компилятора есть свой язык — макроассемблер, с помощью которого жизнь программиста упрощается в разы. Ведь гораздо проще писать и оперировать в голове командами типа MOV Counter,Default_Count вместо MOV R17,R16 и помнить что у нас R17 значит Counter, а R16 это Default_Count. Все подстановки с человеческого языка на машинный, а также многое другое делается средствами препроцессора компилятора. Его мы сейчас и рассмотрим.
Читать полностью

Комментариев (53)

AVR. Учебный курс. Постановка задачи

Автор DI HALT
Опубликовано 19 июля 2008 
Рубрики: AVR. Учебный курс
Метки: ,

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

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

Итак, общая конструкция. Поскольку я робота делать уже начинал и даже сделал нечто адекватное и самостоятельно передвигающееся, то изобретать велосипед заново я не буду.

Что, в итоге, мы имеем:

  • Для начала шасси. Из соображений проходимости, легкости управления и доступности я выбрал гусеничное шасси от советской игрушки “БМП“. Здоровенное корыто в которое влезут и аккумуляторы, и куча плат с контроллерами и много чего еще.
  • Два двигателя на правую и левую гусеницу соответственно. Исходя из того, что привод двигателя удобней всего делать на микросхеме L293 или L298, то на каждый двигатель нам надо три линии порта. Две задают направление вращения, а одна разрешает вращение.

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

Комментариев (13)

AVR Studio и HAPSim

Автор DI HALT
Опубликовано 19 июля 2008 
Рубрики: AVR. Учебный курс
Метки: , ,

Раз уж пошел разговор об отладке AVR Studio, то стоит упомянуть про ряд примочек для нее. Одной из самых интересных примочек является небольшая программка - HAPSim. Программка почти не известна, по крайней мере я лишь пару раз слышал упоминание о ней на форуме. Прога не слишком стабильна, иногда работает не так как надо, а еще ей не хватает многих эргономических моментов, но, надеюсь, в следующий версиях это будет исправлено.

Итак, что делает Hapsim. Он всего лишь подцепляется к студии и в момент выполнения эмуляции программы может симулировать работу разных устройств, прицепленных на порты. Из доступных устройств есть:

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

Комментариев (42)

AVR Studio ликбез

Автор DI HALT
Опубликовано 17 июля 2008 
Рубрики: AVR. Учебный курс
Метки: ,

Вообще, честно говоря, с этого надо было и начинать. Но я как то упустил этот момент - IDE как IDE, ничего особенного, что там расписывать? Оказалось есть что, непоняток масса. Так что исправляюсь и даю инструкцию как писать и отлаживать код в AVR Studio. А также опишу ряд примочек и плагинов для студии.

Установка.
Сначала надо с сайта atmel.com скачать последнюю версию AVR Studio. Весит она что то около 30 метров. Можно и старые релизы использовать, не преступно, но там может не оказаться новых микроконтроллеров. AVR Studio, как и многие буржуйские программы, крайне хреново понимает русские имена и длинные пути. Поэтому ставь ее по максимально простому пути, что то вроде C:\AVR\ А сами проекты тоже держи как можно ближе к корню, У меня, например, это D:\Work\AVR — никаких имен длинней 8 символов и, конечно же, никаких русских символов. Привет родимый DOS, как говорится.

Да, если планируешь (если не планируешь, то все равно скачай и поставь, не помешает) писать на Си, то рекомендую скачать GCC aka WinAVR и установить ее ДО студии, туда же, поближе к корню. Тогда студия подхватит ее в качестве своего плагина. Если поставить после, то тоже, может быть подхватит, но возможны проблемы.
Читать полностью

Комментариев (92)

Демоплата

Автор DI HALT
Опубликовано 15 июля 2008 
Рубрики: AVR. Учебный курс
Метки: ,

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

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

Когда то давно делал я плату для статьи в журнал Хакер — проект Trashduino. Простенькая демоплата на ATmega8 с кучей штырей и по параметрам схожая с Arduino, как минимум туда можно было зашить Ардуиновский загрузчик и работать потом из ее среды.
Мне правда загрузчик этот никуда не уперся, равно как и среда, но вот сама платка в итоге получилась удобной и в дальнейшем я ее активно использовал.

А судя по письмам и комментам читателей она заинтересовала, поэтому я выкладываю ее LAY файл. Читать полностью

Комментариев (111)

Конденсатор и RC цепочка

Автор DI HALT
Опубликовано 13 июля 2008 
Рубрики: Начинающим
Метки: , ,

Если соединить резистор и конденсатор, то получится пожалуй одна из самых полезных и универсальных цепей.

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

Резистор - его задача ограничивать ток. Это статичный элемент, чье сопротивление не меняется, про тепловые погрешности сейчас не говорим — они не слишком велики. Ток через резистор определяется законом ома - I=U/R, где U напряжение на выводах резистора, R - его сопротивление.

Конденсатор штука поинтересней. У него есть интересное свойство — когда он разряжен то ведет себя почти как короткое замыкание — ток через него течет без ограничений, устремляясь в бесконечность. А напряжение на нем стремится к нулю. Когда же он заряжен, то становится как обрыв и ток через него течь перестает, а напряжение на нем становится равным заряжающему источнику. Получается интересная зависимость - есть ток, нет напряжения, есть напряжение - нет тока.

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

Комментариев (71)

C vs Assembler

Автор DI HALT
Опубликовано 13 июля 2008 
Рубрики: Начинающим
Метки: , , ,

Если ты впервые столкнулся с микроконтроллерами, то наверняка у тебя стал выбор на чем писать. На Си или на Ассемблере. Выбор не прост, не зря программисты однокристальщики раскололись на два непримиримых лагеря. Одни с пеной у рта доказывают, что те кто пишут на Си лохи изнеженные, а настоящий брутальный кодер должен воспринимать только ассемблер. Другие же, усераясь, доказывают, что на ассемблере разве что лампочками помигать можно, а какой либо серьезный проект делать на низком уровне невозможно.
Но, истинна как всегда находится посредине. Каждый уважающий себя программер должен знать ассемблер, а вот писать должен на том, что более подходит под масштаб задачи. Особенно это касается микроконтроллеров.

Читать полностью

Комментариев (38)

Программатор Громова

Автор DI HALT
Опубликовано 13 июля 2008 
Рубрики: Готовые устройства
Метки: , , ,

Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь. Так как данный метод не очень стабилен, возможны сбои при прошивке, длина проводков ограничена двадцатью сантиметрами (если больше, то будет глючить), поэтому придется шариться в комповой заднице. Да и LPT порт спалить проще простого. В общем не рулез.

Шарясь по инету, я нашел отличный программатор, работающий через RS232 он же COM порт. А также удобную программу для прошивки контроллера UniProf от Николаева. Схему программатора придумал Громов, создатель Algorithm Builder.

Саму программу UniProf можно скачать у меня, но лучше взять с сайта автора. Возможно там будет версия посвежее.
Читать полностью

Комментариев (683)

AVR. Учебный курс. Трактат о программаторах

Автор DI HALT
Опубликовано 13 июля 2008 
Рубрики: AVR. Учебный курс
Метки: ,

Программа для микроконтроллера пишется на любом удобном языке программирования, компилируется в бинарный файл (или файл формата intel HEX) и заливается в микроконтроллер посредством программатора.

Итак, первым шагом в освоении микроконтроллера обычно становится программатор. Ведь без программатора невозможно загнать программу в микроконтроллер и он так и останется безжизненным куском кремния.

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

Программаторы бывают разные под разные семейства контроллеров существуют свои программаторы. Впрочем, бывают и универсальные. Более того, даже ту же простейшую AVR’ку можно прошить несколькими способами:

Внутрисхемное программирование (ISP)
Самый популярный способ прошивать современные контроллеры. Внутрисхемным данный метод называется потому, что микроконтроллер в этот момент находится в схеме целевого устройства — он может быть даже наглухо туда впаян. Для нужд программатора в этом случае выделяется несколько выводов контроллера (обычно 3..5 в зависимости от контроллера).

Читать полностью

Комментариев (6)

Подключение микроконтроллера. Ликбез.

Автор DI HALT
Опубликовано 12 июля 2008 
Рубрики: AVR. Учебный курс
Метки: , , , ,

Казалось бы простая тема, а однако в комментах меня завалили вопросами как подключить микроконтроллер. Как подключить к нему светодиод, кнопку, питание. Что делать с AGND или AREF. Зачем нужен AVCC и все в таком духе. Итак, раз есть вопросы, значит тема не понятна и надо дать по возможности исчерпывающий ответ. Все описываю для контроллеров AVR, но для каких нибудь PIC все очень и очень похоже. Т.к. принципы тут едины.

Чтобы понимать ряд терминов активно упоминающихся в этой статье, надо сначала прочитать статью про порты ввода-вывода.

Питание
Для работы микроконтроллеру нужна энергия — электричество. Для этого на него естественно нужно завести питалово. Напряжение питание у МК Atmel AVR разнится от 1.8 до 5 вольт, в зависимости от серии и модели. Все AVR могут работать от 5 вольт (если есть чисто низковольтные серии, то просьба уточнить в комментах, т.к. я таких не встречал). Так что будем считать что напряжение питания контроллера у нас всегда 5 вольт или около того. Плюс напряжения питания обычно обозначается как Vcc. Нулевой вывод (а также Земля, Корпус, да как только его не называют) обозначают GND. Если взять за пример комповый блок питания. То черный провод это GND (кстати, земляной провод традиционно окрашивают в черный цвет), а красный это +5, будет нашим Vcc. Если ты собираешься запитать микроконтроллер от батареек, то минус батареек примем за GND, а плюс за Vcc (главное чтобы напряжение питания с батарей было в заданных пределах для данного МК, позырь в даташите. Параметр обычно написан на первой странице в общем описании фич:

• Operating Voltages
–1.8 - 5.5V (ATtiny2313V)
–2.7 - 5.5V (ATtiny2313)
• Speed Grades
–ATtiny2313V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
–ATtiny2313: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V

Обрати внимание, что есть особые низковольтные серии (например 2313V низковльтная) у которых нижня граница напряжения питания сильно меньше. Также стоит обратить внимание на следующий пункт, про частоты. Тут показана зависимость максимальной частоты от напряжения питания. Видно, что на низком напряжении предельные частоты ниже. А низковольтные серии раза в два медленней своих высоковольтных коллег. Впрочем, разгону все процессоры покорны ;))))) Читать полностью

Комментариев (126)

Основы на пальцах. Часть 4

Автор DI HALT
Опубликовано 12 июля 2008 
Рубрики: Начинающим
Метки: , , ,

Часть 3. Диоды и транзисторы.
Но диоды, резисторы, транзисторы и конденсаторы это так, лишь обвязка. Особо на них не развернешься (нет, маньяки, конечно могут, но габариты устройств там будут феерические). Самое вкусное нас поджидает в микросхемах :)
Делятся они на цифровые и аналоговые. Для начала кратко пробегусь по цифровым микросхемам.

Миром правит цифра!

Основы цифровой схемотехники
Основы цифровой схемотехники
Во избежания путаницы смыслов, в терминологии ключей и транзисторов принято следующее соглашение. Ключ считается открытым или закрытым для протекания тока, как кран на трубе. С точки зрения же механического исполнения он может быть замкнут или разомкнут. Так что открыт = замкнут, закрыт = разомкнут. И не следует путать с англоязычной нотацией, где Open = открыт если речь идет о транзисторе или электронном ключе и Open = разомкнут если речь идет о механическом рубильнике. Там Open-Close следует рассматривать в общем контексте текущего случая. Велик и могуч русский язык! =)

Краеугольным камнем цифровой схемотехники служит понятие нуля и единицы, понятие это совершенно условное, т.к. фактически нет никакого нуля и нет никакой единицы, есть лишь уровни напряжения – высокий и низкий, а также некий порог после которого данный уровень напряжения принято считать высоким или низким. Скажем все, что ниже 0.7 вольт считаем за низкий уровень, т.е. 0, все что выше 2.4 вольт высоким, т.е. единица. Между 0.7 и 2.4 вольта, когда не ясно какой уровень, это состояние совершенно неопределенное его нельзя оценивать как входную величину, иначе на выходе системы в таком случае будет непредсказуемый результат.
Сопротивление входов очень высокое, практически можно считать его бесконечным.
Выход в микросхеме бывает разных типов. Различают push-pull и open drain (в нашей литературе его называют Открытым Коллектором или ОК). Отличие заключается в способе выдачи сигнала на выход. В Push-Pull выходе когда нужен низкий уровень, то выход тупо и беспрекословно замыкается на землю, имеющую нулевой потенциал, а когда высокий, то на напряжение питания.
В открытом коллекторе все несколько иначе. Когда нам надо получить низкий уровень, то мы сажаем ногу на землю, а вот высокий уровень получается подтягивающим резистором (pullup), который, в отсутствии посадки на землю и большого сопротивления висящей на выходе нагрузке, заводит на ногу высокий потенциал. Тут можешь вспомнить закон Ома и посчитать какое будет напряжение выхода на открытом коллекторе если подтягивающий резистор обычно порядка 1КилоОм, а сопротивление входа больше 1МегаОм. Тип выхода определяется из документации на микросхему, некоторые микрухи имеют программируемый выход, например, все контроллеры AVR. Исходя из этого становится понятен смысл регистров Port и DDR в контроллере AVR – они определяют тип выхода Open Drain+PullUp, Push-Pull или просто Open Drain.

Читать полностью

Комментариев (72)

AVR. Учебный курс. Устройство и работа портов ввода-вывода

Автор DI HALT
Опубликовано 11 июля 2008 
Рубрики: AVR. Учебный курс
Метки: , , , ,

С внешним миром микроконтроллер общается через порты ввода вывода. Схема порта ввода вывода указана в даташите:

Но новичку там разобраться довольно сложно. Поэтому я ее несколько упростил Читать полностью

Комментариев (69)

AVR. Учебный курс. Архитектура.

Автор DI HALT
Опубликовано 10 июля 2008 
Рубрики: AVR. Учебный курс
Метки: ,

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

Архитектура AVR
Архитектура AVR
Внутри контроллера находится система из вычислительного блока (ALU), регистров, оперативной памяти, памяти программ и периферийных устройств. Во многих современных контроллерах до кучи также есть EEPROM это энергонезависимая память, что то вроде flash памяти, только допускает куда больше циклов перезаписи. Все это витиевато завязано общей шиной, собрано на одном кристалле и залито компаундом.

А теперь чуть подробней о каждом.

ALU занимается всеми операциями процессора, сложениями, вычитаниями, сдвигами и прочим. Это математическое ядро контроллера. Операнды на вход ALU поступают из регистров общего назначения (РОН), а результат появляется на шине и обрабатывается в соответствии с текущей командой.

Блок регистров (РОН), он же регистровый файл. Это пачка из 32 ячеек памяти по 8 бит каждая. Отличаются самой быстрой скоростью работы, а также с ними производятся почти все процессорные операции. В AVR регистры нумеруются от 0 до 31, причем первая половина регистров (R0-R15) весьма кастрированная от природы и ряд очень нужных и удобных команд (например засылка непосредственных данных в регистр командой LDI) не хочет работать. Вторая половина регистров полнофункциональна, но надо помнить, что регистры с R26 по R31 являются так называемыми индексными регистрами. Это 16ти разрядные X,Y,Z регистровые пары (X=R26:R27, Y=R28:R29, Z=R30:R31), служащие для адресации памяти в некоторых командах. Читать полностью

Комментариев (59)


Материалы сайта являются авторскими. Копирование и публикация материалов без активной ссылки на первоисточник запрещено.

Реклама: