![]() |
Atmega вопросы
UPD [BlackSun]: Теперь это общая тема для всех вопросов по меге.
Зравствуйте =) Поделитесь, пожалуйста, опытом программирования микроконтроллера atmega (вероятнее всего буду программить atmega128). Я в этой теме вопросы буду задавать. 1. Программатор Какой посоветуете спаять? Исходя из следующего: 1.1 Паяю я не особо хорошо, паял всего 1 стоящий "прибор" - мелкий радиомикрофон. Работал! На 50 метров, как сейчас помню =) 1.2 Лтп и ком порты на материнке есть. Надо их не спалить) 1.3 Ну и вообще, поделитесь опытом |
На LPT самый простой программатор. 4 резистора по 150ом и все.
Схема http://myrobot.ru/stepbystep/images/stk200.gif Он рабочий, я сам проверял... Заливал им прошивку для мигания светодиодом - все прошло отлично. Но для первых экспериментов рекомендую использовать какой-нибудь старый системник. Вот сайт для начинающих. Все доступно и подробно расписано: http://myrobot.ru/stepbystep/ И этот сайт тоже в закладки добавляй: http://easyelectronics.ru/ Я в радиоэлектронике далеко не профи ;) |
Есть опыт.
Задавай точные вопросы. |
http://avr123.nm.ru/ - AVR и PIC учебный курс начинающим с нуля
Программаторы ТУТ Также загляни в эту тему Создание программатора 2 ZagZag, я бы всетки рекомендовал Программатор Громова |
http://easyelectronics.ru/category/avr-uchebnyj-kurs
|
http://avr123.nm.ru/ читал. Как примерно программить и заливать научился в вузе. =)
Посмотрел http://easyelectronics.ru/category/avr-uchebnyj-kurs , жалею, что не наткнулся раньше... Спасибо, буду пробовать) |
Если нужна помощь-обращайтесь, малеха играюсь с микроконтроллерами авр.
А вообще: а чем будите программировать, товарищ? Если на Си,то рекомендую среду CodevisionAVR. В ней есть удобный генератор начального кода+ множество уроков в нете и даже книга "Codevisionavr пособие для начинающих". Если на асме, то только AVR Studio. АВР студию скачайте обязательно, ибо в ней есть удобный эмулятор. Также рекомендую скачать PROTEUS- симулятор электрических схем. Для прошивки я юзаю LPT программатор с защитными буферами, схум в нете полно. |
закажи Adruino и не еби себе мозги
http://adruino.cc |
Цитата:
|
Тебе нужен LPT программатор
|
Цитата:
Лучше USB, намного лучше. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
При чем тут FT232 к LPT порту?
А вообще зачем в той схеме микроконтроллер- не пойму. Ведь есть программаторы без вспомогательного- http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html Цитата:
|
Решил собрать Программатор Громова
Контроллеры у меня ATTiny26 Sprint Layout http://xmages.net/thumb/thumb_b14f45e8.png Печатка методом ЛУТ http://xmages.net/thumb/thumb_24e722d1.jpg С другой стороны http://xmages.net/thumb/thumb_251f8e06.jpg Кто в теме, проверьте хоть, правильно все развел или нет? Доделать пока не могу до конца, еще пары резисторов не хватает ;) PS Уже несколько багов нашел: 1. Пины под COM надо зеркально развернуть, а то так не удобно паять, или кабель переделывать надо (который у меня сейчас есть) 2. GND контроллера и COM не соединены, придется делать перемычку |
Вы о чем вообще?
Нашли о чем спорить - о программаторах 0-о. З.Ы. Я использую от протоса |
Цитата:
Ты немножко не то собрал. Надо было отдельно делать Громова, и разьем для внутрисхемного программирования на девайсе... На крайняк ЭТО. Ты иначе прошитый контроллер без фена нормально выпаять не сможешь, а с ним использовать это как-то криво. Вот схему набросал, ты тогда напиши как тебе лучше будет, тогда и печатку замутим ;) http://s60.radikal.ru/i167/1004/1a/41a002957f5et.jpg |
Фен у меня есть, но выпаивать каждый раз контроллер действительно не удобно, я думал использовать для крепления контроллера прищепку ;)
http://xmages.net/thumb/thumb_a54fe221.jpg А вот самодельную ZIF панель сложно сделать, у контроллера 10 ножек на каждой стороне, а у панельки от биоса только 9, да и по ширине не подходит: http://xmages.net/thumb/thumb_b5d48d6f.jpg Кстати, походу дела примерился к DDR и PCI - шаг контактов совпадает с ножками контроллера... А вот можно ли подключаться к контроллеру пока он на плате? Ведь программатор не отключается от него и получается что MOSI и SCK постоянно подключены к GND через 1кОм. Это как-то повлияет на его работу? |
почитайте про ISP.
|
Цитата:
Цитата:
Можешь выдрать из матери сокет)) Он с нулевым усилием. Можешь просто в него одной стороной вставить, а землю проводочком припаять или с двух сторон зажать... Но лучше всетки внутрисхемное программирование. П.С. Может пригодиться ТЫЦ |
Про ISP все понятно, так раньше и прошивал (LPT программатором), а тут захотелось что-нибудь понадежнее сделать.. выбрал программатор Громова.
Но вот делать ISP+Программатор Громова не охота. Лишнее место на плате занимает. Поэтому хочу прошивку заливать на одной плате, а юзать на готовом устройстве. |
Мдя)) Какую тебе печатку сделать?
|
вот еще сайтик easymcu.ru
пока мало контента, но думаю это наверстается! пишите какие статьи надо - сделаем |
Назначение каждого fuse бита AVR
Самое подробное описание фьюзов смотрите в Даташите конкретного МК ! RESERVED — этот бит зарезервирован для каких-то неизвестных простым смертным целей фирмой Atmel. Ни при каких условиях не рекомендуется менять его состояние (т. е. надо оставлять его таким, как он установлен при изготовлении МК). В этой строке встречаются биты с другими названиями, как правило, это биты включения режима совместимости с устаревшими типами МК, на смену которым выпущены новые. Обычно в конце названия такого fuse-бита имеется символ С — от COMPATIBLE (совместимый). OCDEN — fuse разрешает работу схемы внутреннего отладчика (On Chip Debug ENable). Не оставляйте установленным этот бит в коммерческих продуктах! Иначе вашу программу можно будет считать из памяти МК. JTAGEN — fuse бит разрешает работу интерфейса программирования-отладки JTAG. По сравнению с SPI-интерфейсом, JTAG обладает расширенными возможностями. Не рекомендуется без необходимости оставлять этот бит установленным, т. к. в этом случае потребляемый МК ток возрастает. SELFPRGEN — бит, разрешающей программе МК производить запись в память программ, т. е. производить самопрограммирование. DWEN — fuse бит, разрешающий работу DebugWire - это интерфейс отладки по одному проводу. Не рекомендуется оставлять его установленным в коммерческих изделиях. EESAVE — fuse бит, после установки которого при стирании памяти МК содержимое EEPROM данных будет сохраняться нетронутым, т. е. не будет стерто. SPIEN — fuse бит, разрешающий работу интерфейса внутрисхемного программирования МК по SPI. Этот бит может быть легко переустановлен при помощи параллельного программатора (или JTAG, если таковой разрешен и имеется в МК). Все МК выпускаются с установленным битом SPIEN, снять его по интерфейсу SPI невозможно. WDTON — fuse бит, после установки которого сторожевой таймер WDT включается сразу после подачи питания и не может быть отключен программно. Если бит не установлен, то включением и отключением WDT можно управлять программно. Группа fuse битов BODLEVEL. Может быть либо один такой бит, либо несколько, тогда они нумеруются, начиная с нуля. Значение этих fuse битов определяет порог срабатывания схемы BOD — детектора уровня питающего напряжения, при снижении напряжения питания ниже этого уровня произойдет "сброс" МК. BODEN — fuse бит, включающий схему аппаратного детектора недопустимого уровня питающего напряжения, т.е. схему BOD. RSTDISBL — fuse бит, отключающий сигнал внешнего сброса от вывода микроконтроллера и подключающий к нему схему порта ввода-вывода. Этот бит имеется только в тех МК, у которых вывод аппаратного сброса RESET совмещен с одинм из портов ввода-вывода. Ошибочная установка этого fuse бита может отключить RESET и вы не сможете больше прошивать по ISP. Не устанавливайте этот бит, если намерены продолжать работать с МК при помощи последовательных программаторов. "Оживить" МК с установленным RSTDISBL можно только параллельным программатором и не для всех МК. CKDIV8 — fuse бит, включающий предварительное деление частоты кварцевого (или иного имеющегося) тактового генератора на 8. То есть при включенном этом бите и применении кварцевого резонатора на 8 МГц реальная тактовая частота МК составит 1 МГц. CKOUT — fuse бит, разрешающий вывод тактовой частоты на один из выводов МК (для тактирования других устройств). SUT1 и SUT0 — fuse биты, управляющие режимом запуска тактовых генераторов МК. Связаны с нижеописываемыми битами, определяющими тип и частоту тактового генератора, причем связь весьма хитрая и запутанная. При ошибочной их установки возможны ситуации неустойчивого запуска генератора или неодногратного сброса МК в процессе подачи на него питания. CKOPT — бит, определяющий режим работы встроенного генератора тактовой частоты для работы с кварцевыми резонаторами. Реально изменяет коэффициент усиления встроенного инвертора в схеме генератора и значит выходное напряжение на ножке XTAL2. Ошибочная установка может приводить к неустойчивому запуску кварцевого генератора, вплоть до возбуждения его не на той гармонике, что надо (из-за этого бита кварц запускался или только при питании МК напряжением не выше 3,6В, или только после прикосновения к выводу XTAL1 пинцетом) Группа битов CKSEL0…CKSEL3 — fuse биты, комбинация которых определяет тип и частоту работающего тактового генератора. Всего возможно до 16 комбинаций, однако не все определены для всех типов МК. Ошибочная установка комбинации этих битов может сделать МК «мертвым» — он не будет работать в схеме без подачи тактового сигнала на ножку XTAL1. PLLCK — fuse бит, разрешающий использование встроенного синтезатора частоты для тактирования ядра МК. BOOTRST — fuse бит, определяющий адрес, с которого будет начато исполнение программы после сброса если бит установлен, то начало программы будет не с адреса 0000h (как обычно), а с адреса области загрузчика (Boot Loader). Группа fuse битов BOOTSZ — два fuse бита, определяющие размер области памяти программ, выделяемой для загрузчика (Boot Loader). Комбинация этих битов, в частности, определяет точку начала исполнения программы после сброса, если установлен бит BOOTRST. Взято ОТСЮДА |
Наконец-то, решил доделывать.
Остановил выбор на программаторе altera byteblaster. Нашёл инфу по ББ тут. http://www.radiokot.ru/start/mcu_fpga/avr/03/02.jpg Написан набор элементов для спайки программатора:
Не купил: 5, 6 пункты. Под вопросом: 4 пункт. Собственно вопросы:
|
1. идешный конектор поншиш? вот тоже самое только на 10 контактов, типо просто положил шину, зажал и все
2. - 1. только чуток другой конфы , на фото сразу рядом с корпусом LPT разъема , кстати можеш его не ставить а просто впаять шлейф в плату программатора. 3. PLS шаг 2.5 мм |
Цитата:
Небольшое замечание:на фотке не хватает разъема с обжимкой. |
http://s42.radikal.ru/i095/1005/74/2b68d7fc31e9.jpg
Точно такой же разъем на шине IDE, только на 80 штырьков (пинов). Вот МАМА, вот ПАПА, но папа не обжимной а штырьковый. В обжимной вставляется кабель и с помощью тисков (молотка) сжимается. А штырьковый паять или впаивать в плату (на плату). ВОТ и ВОТ бластеры, разные... А почему byteblaster? Может я тебя отговорю ;) |
AFoST, по-моему, ты к этому очень серьезно отнесся, целые списки дел и покупок. Когда я паял свой программатор через COM, я его вообще на макетке сделал из старых деталей, которые оказались под рукой, вот фото:
http://s51.radikal.ru/i134/1005/9f/5693d3d0ad16.jpg (через usb - питание). Программку для прошивки использовал uniprof. Потом я сделал опять на макетке бегущую строку программируемую с интерфейсом (на асме): http://www.youtube.com/watch?v=cmokrwtYbUY Кстати советую сразу и делать COM-программатор, потому что COM в случае ошибок или еще чего намного треднее сжечь, чем LPT. |
У меня прижился от Протоса
2d_x Диназаврег =) А вообще не люблю макетки, что-то меня от них отталкивает. |
Цитата:
Цитата:
Хаа) Смешная штука у тебя получилась на видео) Проводов куча - аля микроАТС ) |
Цитата:
Вся плата управляется всего тремя проводами с контроллера - тактовые импульсы, вход данных последовательный и блокировка, чтобы не моргало, пока данные заливаются. А еще там был суровый асм, все символы русского и английского алфавита, цифры и символы задавались так: Код:
//0-9Цитата:
Кстати, атмеги вроде бы как сняли с производства :( |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Да и в первом посте: Цитата:
|
Цитата:
|
| Время: 00:30 |