Начнем с того, что мне довольно часто приходится разрабатывать различные устройства на микроконтроллерах RISC архитектуры семейства AVR компании Atmel. У них очень много преимуществ перед основными конкурентами (PIC):
- довольно широкая система команд
- большинство команд выполняется за 1 такт
- низкая цена, широкая доступность
- частота этих МК достигает 20 МГц, что соответствует производительности в 20 MIPS
а так же понты, понты, понты…перечислять можно довольно долго
Думаю, многим надоело тестировать программы на макетках/в эмуляторах, и не всегда это удобно/результативно. Вобщем назрела идея сделать универсальную тестовую плату с возможностью использовать ее как для отладки и тестирования ПО, так и в качестве контроллера для управления различными устройствами по интерфейсу USB(CNC станок, умный дом, и т.п.), тем более появилась необходимость разобраться с HID обменом данными между компьютером и GPS модулем.
Для решения поставленных задач была разработана схема тестовой платы, подобраны детали, сделана печатная плата. В итоге получился довольно неплохой девайс
Основные характеристики отладочной платы:
- Размер памяти 8кб (2кб используется под USB загрузчик, под программы остается 6кб. Если требуется больше памяти, выход — либо использовать вместо загрузчика обычный SPI программатор, либо использовать МК с большим объемом памяти)
- 18 независимых линий ввода-вывода
- Компактные размеры (меньше 35*35 мм)
- Низкая стоимость и доступность компонентов
- Простота изготовления
Итак, что сегодня нам потребуется:
- Принадлежности для ЛУТа(текстолит, принтер, хлорное железо, и так далее) ~50 руб
- Микроконтроллер Atmega8-16AU (подойдет любой Atmega8 без индекса L в корпусе TQFP-32) ~80 руб
- Кварц, желательно SMD, на 12 или 16 МГц (можно выпаять из флешки) , подойдет и обычный кварц ~20 руб
- Резисторы SMD 0603 на 68 ом — 2шт, 1.5k — 1шт, перемычка в таком же корпусе (0 ом) — 1шт (все это можно выпаять со старых материнских плат) ~ 20 руб
- Конденсаторы SMD 0805 на 33пф (пойдут и 22пф) — 2шт, 0.1мкф(тоже SMD, 0805 типоразмер) — 1шт, 1vra (все тот же SMD) — 1шт (их уже придется покупать в магазине радиодеталей, продаются ленточками по 10шт) ~ 30 руб
- Ну а так же понадобятся коннекторы (по-русски, разъем, таких много на материнских платах, на них еще джамперы ставят, можно купить или отпаять газовой горелкой) ~20 руб
- Mini-USB гнездо на плату (отпаять с телефона / купить) ~ 40руб
- И, разумеется, умение паять SMD (Не надо пугаться, можно потренироваться сначала просто сделав на текстолите площадки, и попаять туда детали (отпаять потом можно, нагревая с другой стороны платы газовой горелкой/зажигалкой/свечкой), за пару часов можно довольно неплохо напрактиковаться. Неплохие видеоуроки были у Di Halt’a (на его сайте «изиэлектроникс», найти, думаю, несложно) )
- Однократно, обычный SPI программатор, чтобы зашить в МК USB загрузчик
Примечаение: как оказалось позже, все же следует делать плату побольше для удобства экспериментов, печатные платы таких вариантов будут добавлены чуть позже. Также часто бывает полезным вывести +5в с порта USB.
На сборке останавливаться не буду, ибо на печатной плате, сделанной в SL5, все отмечено. После сборки прошиваем микроконтроллер(припаиваем проводки GND(земля), VCC(питание), RESET, MOSI, MISO, SCK программатора к соответствующим пинам микроконтроллера на плате(около RESET’a сделана маленькая площадочка, остальные сигналы припаиваются к соответствующим дорожкам на плате). Заливаем в микроконтроллер прошивку из прикрепленного архива (.hex файл, смотрим по модели микроконтроллера и частоте кварца), затем прошиваем фьюзы:
BODLEVEL=1
BODEN=1
SUT1=1
SUT0=0
CKSEL3=1
CKSEL2=1
CKSEL1=1
CKSEL0=1
RSTDISBL=1
WTDON=1
SPIEN=0
CKOPT=1
EESAVE=1
BOOTSZ1=0
BOOTSZ0=0
BOOTRST=0
(0- запрограммирован, 1 — незапрограммирован)
Т.е. по байтам:
LOW — 0xEF
HIGH — 0xD8
(Желающие могут на всякий случай проверить еще раз, ведь при неправильно запрограммированных фьюзах можно «запороть» контроллер так, что перешить обратно можно будет только с помощью параллельного программатора) . Для рассчета прошиваемых фьюзв можно воспользоваться специальным калькулятором http://avr.roboforum.ru
Топерь можно отпаять программатор, если все прошло хорошо, надеть джампер от 17 ноги (PB5) к земле (на плате отмечено «Jumper-programming») и подключить устройство по USB к компьютеру. Устройство должно определиться, дрова должны поставиться сами, теперь можно запускать утилиту HIDBootFlash, нажимать кнопку «Find device», затем «Open .hex-File», и наконец «Flash Device». Теперь можно снимать джампер, будет выполняться только что загруженная программа.
Вместо загрузчика HIDBootFlash можно использовать USBAsp, гуглится легко.
Итак, что у нас получилось:
Пример использования — как раз платка с GPS:
Все файлы можно найти тут:
bootloadHID.2008-11-26.zip/ bootloadHID.2008-11-26/firmware/hexfiles — прошивки
В старших каталогах исходные коды USB загрузчика bootloadHID.
Программа HIDBootFlash:
http://dl.dropbox.com/u/24276637/HIDBootFlash.exe
Все одним архивом:
http://dl.dropbox.com/u/24276637/Atmega8_test_board.zip
Тема на форуме: http://lasers.org.ru/forum/threads/Универсальная-тестово-отладочная-плата-на-микроконтроллере.2370/
И что делает прога в МК ? ГПС запускает ии что?\Какая польза йумному дому от этого МК ?
По- видимому, принимает от gps модуля данные и отдает компу.
А умный дом можно и на одном этом МК сделать. Будет и свет включать, и сиреной орать (если влезет кто), и воду перекрывать (если протечет), и кондеем управлять когда жарко/холодно, и за домашнюю метеостанцию логи на комп писать… а gsm модуль прикрутишь- ещё и эсэмэсить обо этом всем.
кто знает подскажите у меня лазер есть ну я хз что он умеет и можно ли туда что нибуть загружать вот его характеристики
Электрические:
Напряжение: AC100-240V…50/60Hz
Номинальная мощность: 30 Вт
Лазерный диод:
Длина волны: 532nm
Мощность: 50 мВт
Модель: TTL
Частота:> 2K
Охлаждение: Принудительное воздушное охлаждение, авто-терморегулирования
Система сканирования:
Система: Galvo
Сканирование зеркало: 15 * 10 * 1 мм
Скорость сканирования: 12K пакетов в секунду
Угол сканирования: 50
Режим работы:
DMX512, автомобиль, Музыка-активных и ведущий / ведомый
DMX512: 10 каналов
Гобо: 64 гобо и 1 мультфильм эффект
Эффекты гобо: вращающиеся, прыгать, размер, slowdraw, стрейч и прокатки
Название Trident Я LT — 217
хочу закачать туда новых рисунков как это сделать и что за порт зади там 10 каналов ????