Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Схемы и программы (https://forum.antichat.xyz/forumdisplay.php?f=61)
-   -   Atmega вопросы (https://forum.antichat.xyz/showthread.php?t=192766)

AFoST 02.04.2010 16:03

Atmega вопросы
 
UPD [BlackSun]: Теперь это общая тема для всех вопросов по меге.

Зравствуйте =)
Поделитесь, пожалуйста, опытом программирования микроконтроллера atmega (вероятнее всего буду программить atmega128).
Я в этой теме вопросы буду задавать.

1. Программатор
Какой посоветуете спаять? Исходя из следующего:
1.1 Паяю я не особо хорошо, паял всего 1 стоящий "прибор" - мелкий радиомикрофон. Работал! На 50 метров, как сейчас помню =)
1.2 Лтп и ком порты на материнке есть. Надо их не спалить)
1.3 Ну и вообще, поделитесь опытом

ZagZag 02.04.2010 17:59

На LPT самый простой программатор. 4 резистора по 150ом и все.
Схема http://myrobot.ru/stepbystep/images/stk200.gif
Он рабочий, я сам проверял... Заливал им прошивку для мигания светодиодом - все прошло отлично.
Но для первых экспериментов рекомендую использовать какой-нибудь старый системник.

Вот сайт для начинающих. Все доступно и подробно расписано:
http://myrobot.ru/stepbystep/
И этот сайт тоже в закладки добавляй:
http://easyelectronics.ru/

Я в радиоэлектронике далеко не профи ;)

Keltos 02.04.2010 19:26

Есть опыт.
Задавай точные вопросы.

bymugen 02.04.2010 21:33

http://avr123.nm.ru/ - AVR и PIC учебный курс начинающим с нуля
Программаторы ТУТ
Также загляни в эту тему Создание программатора

2 ZagZag, я бы всетки рекомендовал Программатор Громова

BlackSun 02.04.2010 22:05

http://easyelectronics.ru/category/avr-uchebnyj-kurs

AFoST 02.04.2010 22:55

http://avr123.nm.ru/ читал. Как примерно программить и заливать научился в вузе. =)
Посмотрел http://easyelectronics.ru/category/avr-uchebnyj-kurs , жалею, что не наткнулся раньше...

Спасибо, буду пробовать)

Levsha128 04.04.2010 13:44

Если нужна помощь-обращайтесь, малеха играюсь с микроконтроллерами авр.
А вообще: а чем будите программировать, товарищ?
Если на Си,то рекомендую среду CodevisionAVR. В ней есть удобный генератор начального кода+ множество уроков в нете и даже книга "Codevisionavr пособие для начинающих".
Если на асме, то только AVR Studio.
АВР студию скачайте обязательно, ибо в ней есть удобный эмулятор.
Также рекомендую скачать PROTEUS- симулятор электрических схем.

Для прошивки я юзаю LPT программатор с защитными буферами, схум в нете полно.

АК-47 04.04.2010 13:46

закажи Adruino и не еби себе мозги
http://adruino.cc

Levsha128 04.04.2010 20:12

Цитата:

Сообщение от АК-47
закажи Adruino и не еби себе мозги
http://adruino.cc

Ардуино- фуфло для домохозяек. Настоящие прогеры пишут на голом асме :D

Keltos 06.04.2010 13:28

Тебе нужен LPT программатор

Levsha128 06.04.2010 22:26

Цитата:

Сообщение от Keltos
Тебе нужен LPT программатор

Не всегда, это раз( можно обойтись протеусом)

Лучше USB, намного лучше.

Keltos 08.04.2010 07:01

Цитата:

Сообщение от Levsha128
Не всегда, это раз( можно обойтись протеусом)

Лучше USB, намного лучше.

Он новичок, лучше для него будет LPT.

Levsha128 09.04.2010 20:38

Цитата:

Сообщение от Keltos
Он новичок, лучше для него будет LPT.

А если у него ноут?

Keltos 10.04.2010 20:53

Цитата:

Сообщение от Levsha128
А если у него ноут?

Через USB

Levsha128 11.04.2010 14:21

Цитата:

Сообщение от Keltos
Через USB

Через эти недопереходники?

bymugen 11.04.2010 14:35

Цитата:

Сообщение от Levsha128
Через эти недопереходники?

Зря так думаешь ТЫЦ

Keltos 11.04.2010 15:09

Цитата:

Сообщение от Levsha128
Через эти недопереходники?

Пользовался,ниразу не подвели.

Levsha128 11.04.2010 15:11

При чем тут FT232 к LPT порту?

А вообще зачем в той схеме микроконтроллер- не пойму.
Ведь есть программаторы без вспомогательного- http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html

Цитата:

Пользовался,ниразу не подвели.
Значит Вам повезло =)

ZagZag 11.04.2010 18:19

Решил собрать Программатор Громова
Контроллеры у меня 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 не соединены, придется делать перемычку

POS_troi 11.04.2010 19:06

Вы о чем вообще?

Нашли о чем спорить - о программаторах 0-о.

З.Ы. Я использую от протоса

bymugen 12.04.2010 11:32

Цитата:

Сообщение от ZagZag
Решил собрать Программатор Громова
Контроллеры у меня ATTiny26

Кто в теме, проверьте хоть, правильно все развел или нет?
Доделать пока не могу до конца, еще пары резисторов не хватает ;)

PS
Уже несколько багов нашел:
1. Пины под COM надо зеркально развернуть, а то так не удобно паять, или кабель переделывать надо (который у меня сейчас есть)
2. GND контроллера и COM не соединены, придется делать перемычку

Млин! Даташиту прикладывать надо, в понедельник с утра она мееедленно ищется... ВОТ

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

Вот схему набросал, ты тогда напиши как тебе лучше будет, тогда и печатку замутим ;)

http://s60.radikal.ru/i167/1004/1a/41a002957f5et.jpg

ZagZag 12.04.2010 15:04

Фен у меня есть, но выпаивать каждый раз контроллер действительно не удобно, я думал использовать для крепления контроллера прищепку ;)
http://xmages.net/thumb/thumb_a54fe221.jpg

А вот самодельную ZIF панель сложно сделать, у контроллера 10 ножек на каждой стороне, а у панельки от биоса только 9, да и по ширине не подходит:

http://xmages.net/thumb/thumb_b5d48d6f.jpg
Кстати, походу дела примерился к DDR и PCI - шаг контактов совпадает с ножками контроллера...

А вот можно ли подключаться к контроллеру пока он на плате? Ведь программатор не отключается от него и получается что MOSI и SCK постоянно подключены к GND через 1кОм. Это как-то повлияет на его работу?

Levsha128 12.04.2010 19:26

почитайте про ISP.

bymugen 12.04.2010 19:46

Цитата:

Сообщение от ZagZag
А вот можно ли подключаться к контроллеру пока он на плате? Ведь программатор не отключается от него и получается что MOSI и SCK постоянно подключены к GND через 1кОм. Это как-то повлияет на его работу?

Я так еще не извращался))

Цитата:

Сообщение от ZagZag
А вот самодельную ZIF панель сложно сделать, у контроллера 10 ножек на каждой стороне, а у панельки от биоса только 9, да и по ширине не подходит:

У DI HALT не панелька от биоса, а PLCC. На вид такая же, но ножек у нее 17.
Можешь выдрать из матери сокет)) Он с нулевым усилием. Можешь просто в него одной стороной вставить, а землю проводочком припаять или с двух сторон зажать...

Но лучше всетки внутрисхемное программирование.

П.С. Может пригодиться ТЫЦ

ZagZag 12.04.2010 21:32

Про ISP все понятно, так раньше и прошивал (LPT программатором), а тут захотелось что-нибудь понадежнее сделать.. выбрал программатор Громова.
Но вот делать ISP+Программатор Громова не охота. Лишнее место на плате занимает. Поэтому хочу прошивку заливать на одной плате, а юзать на готовом устройстве.

bymugen 13.04.2010 12:08

Мдя)) Какую тебе печатку сделать?

Brainiac 24.04.2010 20:18

вот еще сайтик easymcu.ru
пока мало контента, но думаю это наверстается!
пишите какие статьи надо - сделаем

bymugen 04.05.2010 20:47

Назначение каждого 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 пинцетом)

Группа битов CKSEL0CKSEL3 — fuse биты, комбинация которых определяет тип и частоту работающего тактового генератора. Всего возможно до 16 комбинаций, однако не все определены для всех типов МК. Ошибочная установка комбинации этих битов может сделать МК «мертвым» — он не будет работать в схеме без подачи тактового сигнала на ножку XTAL1.

PLLCK — fuse бит, разрешающий использование встроенного синтезатора частоты для тактирования ядра МК.

BOOTRST — fuse бит, определяющий адрес, с которого будет начато исполнение программы после сброса если бит установлен, то начало программы будет не с адреса 0000h (как обычно), а с адреса области загрузчика (Boot Loader).

Группа fuse битов BOOTSZ — два fuse бита, определяющие размер области памяти программ, выделяемой для загрузчика (Boot Loader). Комбинация этих битов, в частности, определяет точку начала исполнения программы после сброса, если установлен бит BOOTRST.

Взято ОТСЮДА

AFoST 05.05.2010 18:01

Наконец-то, решил доделывать.
Остановил выбор на программаторе altera byteblaster.
Нашёл инфу по ББ тут.
http://www.radiokot.ru/start/mcu_fpga/avr/03/02.jpg
Написан набор элементов для спайки программатора:
  1. Разъем LPT (папа, 25 контактов)
  2. Корпус для разъема LPT
  3. Шина 10-жильная – около1,5 метров
  4. Штырьковый разъем для монтажа на плату (два ряда, шаг 2,54 х 2,54). Обычно продаются по 40 и по 80 штырей. Берем любой – все равно нам надо только 10. Лишнее откусим. Этот разъем ставится на плату с контроллером. Цоколевка приведена на схеме. (вид сверху, то есть со стороны, с которой подключается ответная часть, а не со стороны печатного монтажа – будьте внимательны!)
  5. Обжимной разъем на шину (10 контактов - мама) – то, что мы будем подключать к плате с контроллером («ответная часть»).
  6. Обжимной переходник с шины на плату (10 конт.) – то, что будет стоять внутри ББ. Можно заменить вторым обжимным разъемом (таким же, как первый), а на плату ББ напаять штырьковый разъем. Кстати, на схеме изображен именно этот вариант. Но только не пытайтесь зачищать провода шины и припаивать их непостредственно к плате – обматеритесь! Если не сразу – то со временем, когда это все торжественно перетрется и отвалится…
  7. Собственно, макетная плата, на которой разместятся детали ББ. Она должна соответствовать размерам корпуса LPT-разъема.
  8. Микросхема 74HC244 или наш аналог - 1533АП5. Если есть навык работы с деталями поверхностного монтажа – можно взять микросхему в корпусе SOIC (SO-20) – она намного меньше, чем диповская (DIP-20), но для ее распайки нужны навыки.
  9. Развесные детали – резисторы, светодиоды и конденсатор – обозначенные на схеме. Резисторы и кондер тоже лучше взять SMD (для поверхностного монтажа) – опять же – в целях экономии места.
Из этого купил: 1, 2, 3, 4, 7, 8, 9 пункты.
Не купил: 5, 6 пункты.
Под вопросом: 4 пункт.

Собственно вопросы:
  1. Цитата:

    Обжимной разъем на шину
    Что это?
  2. Цитата:

    Обжимной переходник с шины на плату (10 конт.)
    Аналогично, что это?
  3. Цитата:

    Штырьковый разъем для монтажа на плату (два ряда, шаг 2,54 х 2,54). Обычно продаются по 40 и по 80 штырей. Берем любой – все равно нам надо только 10. Лишнее откусим. Этот разъем ставится на плату с контроллером. Цоколевка приведена на схеме. (вид сверху, то есть со стороны, с которой подключается ответная часть, а не со стороны печатного монтажа – будьте внимательны!)
    Я купил PBS 40-R, пришёл домой, посмотрел на фотку, там кажись другой "штырьковый разъем". Так, какой нужен?
Реально не знаю, как назвать эти штуки, когда пытаюсь объяснить продавцу )) Дайте плз ссылку в интернет-магазине.

POS_troi 05.05.2010 19:34

1. идешный конектор поншиш? вот тоже самое только на 10 контактов, типо просто положил шину, зажал и все

2. - 1. только чуток другой конфы , на фото сразу рядом с корпусом LPT разъема , кстати можеш его не ставить а просто впаять шлейф в плату программатора.

3. PLS шаг 2.5 мм

Keltos 05.05.2010 20:34

Цитата:

Сообщение от POS_troi
1. идешный конектор поншиш? вот тоже самое только на 10 контактов, типо просто положил шину, зажал и все

2. - 1. только чуток другой конфы , на фото сразу рядом с корпусом LPT разъема , кстати можеш его не ставить а просто впаять шлейф в плату программатора.

3. PLS шаг 2.5 мм

Все правильно,опередил.
Небольшое замечание:на фотке не хватает разъема с обжимкой.

bymugen 05.05.2010 20:41

http://s42.radikal.ru/i095/1005/74/2b68d7fc31e9.jpg

Точно такой же разъем на шине IDE, только на 80 штырьков (пинов).
Вот МАМА, вот ПАПА, но папа не обжимной а штырьковый. В обжимной вставляется кабель и с помощью тисков (молотка) сжимается. А штырьковый паять или впаивать в плату (на плату).

ВОТ и ВОТ бластеры, разные...

А почему byteblaster? Может я тебя отговорю ;)

d_x 05.05.2010 20:46

AFoST, по-моему, ты к этому очень серьезно отнесся, целые списки дел и покупок. Когда я паял свой программатор через COM, я его вообще на макетке сделал из старых деталей, которые оказались под рукой, вот фото:
http://s51.radikal.ru/i134/1005/9f/5693d3d0ad16.jpg
(через usb - питание).
Программку для прошивки использовал uniprof. Потом я сделал опять на макетке бегущую строку программируемую с интерфейсом (на асме):
http://www.youtube.com/watch?v=cmokrwtYbUY

Кстати советую сразу и делать COM-программатор, потому что COM в случае ошибок или еще чего намного треднее сжечь, чем LPT.

POS_troi 05.05.2010 21:12

У меня прижился от Протоса

2d_x

Диназаврег =) А вообще не люблю макетки, что-то меня от них отталкивает.

AFoST 05.05.2010 23:41

Цитата:

Сообщение от bymugen
А почему byteblaster? Может я тебя отговорю ;)

Поздно уже) Да ладно, я хоть попробую! Пока интересно, надо хоть что-то делать )

Цитата:

Сообщение от d_x
AFoST, по-моему, ты к этому очень серьезно отнесся, целые списки дел и покупок. Когда я паял свой программатор через COM, я его вообще на макетке сделал из старых деталей, которые оказались под рукой...

Обычно, если делаю, то стараюсь структурировать всё. Привычка чтоли... Удобно, кстати)
Хаа) Смешная штука у тебя получилась на видео) Проводов куча - аля микроАТС )

d_x 06.05.2010 01:47

Цитата:

Хаа) Смешная штука у тебя получилась на видео) Проводов куча - аля микроАТС )
64 светодиода и 8 сдвиговых регистров дают о себе знать)
Вся плата управляется всего тремя проводами с контроллера - тактовые импульсы, вход данных последовательный и блокировка, чтобы не моргало, пока данные заливаются.
А еще там был суровый асм, все символы русского и английского алфавита, цифры и символы задавались так:
Код:

//0-9
symbols:
.db 0b01111110,0b10000001, 0b10000001,0b10000001,0b01111110,0b00000000
.db 0b00000000,0b00000100, 0b00000010,0b11111111,0b00000000,0b00000000
.db 0b11000010,0b10100001, 0b10010001,0b10001001,0b10000110,0b00000000
.db 0b01000001,0b10000001, 0b10001001,0b10010101,0b01100011,0b00000000
.db 0b00000000,0b00011000, 0b00010100,0b00010010,0b11111111,0b00000000
.db 0b01001111,0b10001001, 0b10001001,0b10001001,0b01110001,0b00000000
.db 0b01111000,0b10010100, 0b10010010,0b10010001,0b01100000,0b00000000
.db 0b00000001,0b11110001, 0b00001001,0b00000101,0b00000011,0b00000000
.db 0b01110110,0b10001001,0b10001001,0b10001001, 0b01110110,0b00000000
.db 0b00000110,0b10001001,0b01001001, 0b00101001,0b00011110,0b00000000

И можно вводить кнопочками две строки длиной по 256 символов в EEPROM и переключаться между ними)


Цитата:

Обычно, если делаю, то стараюсь структурировать всё.
Тогда собирай детали на COM-программатор, uniprof проверенно хорошо прошивает atmel'ы через COM, хотя через LPT он тоже умеет) А на том же easyelectronics есть схема для USB-программатора, что еще удобнее и быстрее.

Кстати, атмеги вроде бы как сняли с производства :(

AFoST 06.05.2010 07:11

Цитата:

Сообщение от d_x
...
Кстати, атмеги вроде бы как сняли с производства :(

Ды не, я купил вчера атмегу16. 137 рублей чтоли.

Keltos 06.05.2010 07:20

Цитата:

Кстати, атмеги вроде бы как сняли с производства
Вроде да, но их еще продают же.


Цитата:

Кстати советую сразу и делать COM-программатор
Они не на всех компах есть.

d_x 06.05.2010 11:09

Цитата:

Они не на всех компах есть.
У меня ни LPT, ни COM не было, я брал PCI-плату с COM-портом за 7$. Сначала был неудачный опыт с переходником USB->COM, никогда не покупайте такие для программирования контроллеров)

Да и в первом посте:
Цитата:

1.2 Лтп и ком порты на материнке есть. Надо их не спалить)

bymugen 06.05.2010 14:40

Цитата:

Сообщение от d_x
Сначала был неудачный опыт с переходником USB->COM, никогда не покупайте такие для программирования контроллеров)

Это да. Если программатор использует КОМ-порт в режиме Bitbang то тут актуален переходник на FT232. У мну STK500v2. В оригинале от Atmel программатор на КОМ. Но с использованием этой микрухи он на УСиБи))


Время: 00:30