|
AvrUsb500 by Petka, вариант программатора AVR, доступный для простого изготовления |
|
|
|
Jan 30 2008, 19:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Эта тема закрыта. Продолжение обсуждения здесь.После обновления компьютера обнаружил, что LPT порта больше нету  и использовать проверенную связку avreal + byteblaster уже не получится. Захотелось чего-нибудь универсального, надежного и само-собой на USB порте. Остановился на варианте AvrUsb500v2 (http://tuxgraphics.org/electronics/200705/article07052.shtml) Достоинства: - Нормальный USB (не надо колдовать как в программной реализации USB). - Новый протокол от Atmel. Теперь не требуется перешивать программатор при появлении новых чипов. Недостатки: - На сайте (tuxgraphics) написано что под Windows не решена проблема "Курицы и яйца" (как запрограммировать AVRку в программаторе AVR) (Под Linux автор решает эту проблему путем "bit bang" режима микросхемы FTDI). - Используется контроллер в DIP корпусе. (под рукой был только в qfp32 корпусе) - Необходим контроллер как минимум с 8кб flash памяти. (под рукой была только mega48) Данные недостатки я устранил, немного изменив схемотехнику. Выкладываю на суд общественности результаты работы. в файле doc.pdf все необходимое для сборки программатора: - на первой странице принципиальная схема. - на второй странице фотошаблон в негативе (для производства на дому с помощью фоторезиста) - на третьей странице фотошаблон в позитиве (для "лазерно-утюговой" технологии) - на 4ой странице перечень элементов - на 5й странице сборочный чертеж со стороны поверхностного монтажа - на 6й странице сборочный чертеж со стороны выводных компонентов в файле HowTo.pdf описано как прошить этот программатор не имея другого программатора. в файле AvrUsb500_by_Petka.zip находятся исходники прошивки. Собираются в последнем WinAVR. ВНИМАНИЕ! делал для себя, поэтому разпиновка выходного разъёма как в byteblaster'е Принимаются все вопросы. Цитата(ae_ @ Jul 7 2009, 19:03)  Добавьте пожалуйста в первый пост этой ветки актуальные на данный момент схему и софт программатора (или ссылку на ресурс, где находятся текущие/архивные версии) Актуальные на 8 июля 2009 года документы: - Готовые прошивки и исходники- Схемы программаторов, перечни необходимых компонентов, сборочные чертежи, односторонняя разводка печатных плат (в негативе для изготовления фоторезистом и в позитиве для изготовления "лазерным утюгом"), краткая инструкция как прошить программатор без использования другого программатора.- Как надо выставить фузы, при прошивке через ponyprogПрошивки собрал из этих исходников: Модераторам: Прикрепите эти файлы к первому сообщению. Цитата(goodwin @ Feb 16 2008, 03:10)  Неправда ваша - работает эта махарайка и с CodeVision, и со студией, и из командной строки... Шьет быстро. Да, был не прав CodeVision тоже умеет использовать эту версию программатора. Для этого всего-навсего надо было выбрать тип программатора "Atmel STK500/AVRISP". Только что проверил - работает. Скорость действительно шустрая. Считал 128k flash за ~50s. Цитата(Petka @ Feb 16 2008, 01:19)  Ок, на выходных займусь =) Готово =) В архиве прошивки для некоторых комбинаций Кварц/Чип. Цитата(Carbon @ Feb 20 2008, 18:43)  Да, схемы не совпадают. Если не касаться разъема для программирования, т.к. он всё равно пока не подключен к таргету, то в остальном всё также. Клок 1МГц на PC0 всегда присутствует или только при программировании? Клок должен быть всегда, а не только при программировании. Ещё вопрос: мега в ДИПе? Если да, то обратите внимание, что нумерация пинов у меня указана для QFP корпуса, она отличается от DIP. P.S. Поправил в документации ошибку с X3 X4. Новый вариант:
HowTo.pdf ( 73.56 килобайт )
Кол-во скачиваний: 6346
Сообщение отредактировал IgorKossak - Oct 19 2009, 07:31
Причина редактирования: Обновление
|
|
|
|
|
 |
Ответов
(30 - 44)
|
Feb 17 2008, 21:04
|

Знающий
   
Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768

|
Цитата(goodwin @ Feb 17 2008, 22:19)  В файле проекта при программировании поиграть частотой кристалла. CV выставляет скорость SPI автоматом ~1/4 от тактовой. И не всегда по максимуму - страхуется  Кстати, в прошивках для других кварцев надо корректировать делитель SPI - чтоб частота более-менее соответствовала стандартным (в AVRISP), которыуе учитывают утилиты для программирования. Нифига не понял.А если у кристала(tiny)вовсе нет SPI или он не используется или используется в режиме слэйва?И че-то я помню в даташитах такого,чтобы частота в режиме программирования зависела от частоты SPI.Вы с тактовой камня не перепутали?
--------------------
"Hello, word!" - 17 errors 56 warnings
|
|
|
|
|
Feb 18 2008, 10:33
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 1-02-08
Пользователь №: 34 648

|
Здравствуйте!!! Если вас не затруднит прошу ответить на пару вопросов.
1) Чем обусловлена частота кварца, и нельзя ли использовать 12 mГц ? (очень хочется)
2) Кто нибудь пробовал шить из windows Vista, какое ПО использовали? (AVRprog 1.40 Подойдет?)
|
|
|
|
|
Feb 18 2008, 12:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(Lubitel @ Feb 18 2008, 13:33)  Здравствуйте!!! Если вас не затруднит прошу ответить на пару вопросов. 1) Чем обусловлена частота кварца, и нельзя ли использовать 12 mГц ? (очень хочется) 2) Кто нибудь пробовал шить из windows Vista, какое ПО использовали? (AVRprog 1.40 Подойдет?) 1) частота кварца выбрана кратной стандартной скорости COM порта 115200. Можно конечно и другие кварцы ставить, но: а) скорость программирования будет меньше б) придётся изменить скорость работы по COM порту, и как следствие не всякий софт сможет работать с этим программатором 2) программатор под вистой видеться будет, а вот софт - надо смотреть конкретно.
|
|
|
|
|
Feb 18 2008, 12:32
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 1-02-08
Пользователь №: 34 648

|
Цитата(Petka @ Feb 18 2008, 15:26)  1) частота кварца выбрана кратной стандартной скорости COM порта 115200. Можно конечно и другие кварцы ставить, но: а) скорость программирования будет меньше А про висту? Тут назрел еще один вопрос. На сколько я знаю ft 232 требует кварц. А у вас его нет в схеме. Прокомментируйте пожалуйста.
|
|
|
|
|
Feb 18 2008, 12:40
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 1-02-08
Пользователь №: 34 648

|
Цитата(Petka @ Feb 18 2008, 15:34)  У Вас информация по предыдущему поколению чипов. Обвязка чипа ft232R - минимальна. Я живу в Н.Новгороде достать экзотические Микросхемы не возможно. А вот ft 232 bm у меня под рукой.
|
|
|
|
|
Feb 18 2008, 15:31
|
Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 11-12-07
Из: Россия, Москва
Пользователь №: 33 198

|
Ребята с Туксграфикс молодцы, конечно. У меня есть еще AVRUsb500 первой версии на 232BM и он отлично работает. Но я решил собрать второй, более современный (к тому же, первую версию, судя по всему бросили и больше не апдейтят), спроектировал плату, распаял (FT232RL, AtMega88, кварц на 18.432). Ставлю перемычку, говорю make load_test_1 - грузится, проверяется, мигает светодиодом (следовательно, BitBang mode работает) - идилия. Говорю make load_test_2 и...
make load_test_2 ./bbpg_firmware_load test_2.hex OK: erase chip... + uisp_bbpg --erase -dprog=bbpg -v=3 OK: bitbang mode on NOTE: bbpg is a bit slow. Be patient.... SCK Delay (t_sck): 50 Reset inactive time (t_reset) 1000 us AVR Direct Parallel Access succeeded after 31 retries. Vendor Code: 0x1e Part Family: 0x93 Part Number: 0x0a Atmel AVR ATmega88 is found. Page Write Enabled, size=64 FLASH Write Delay (t_wd_flash): 11111 us EEPROM Write Delay (t_wd_eeprom): 11111 us Erasing device ... Reinitializing device AVR Direct Parallel Access succeeded after 31 retries. Vendor Code: 0x1e Part Family: 0x93 Part Number: 0x0a Atmel AVR ATmega88 is found. Page Write Enabled, size=64 FLASH Write Delay (t_wd_flash): 11111 us EEPROM Write Delay (t_wd_eeprom): 11111 us disabling bitbang mode... + set +x OK: load and verify... + uisp_bbpg --upload if=test_2.hex -dprog=bbpg -v=3 --hash=8 --verify -dno-poll -dt_sck=1000 OK: bitbang mode on NOTE: bbpg is a bit slow. Be patient.... SCK Delay (t_sck): 1000 Reset inactive time (t_reset) 1000 us AVR Direct Parallel Access succeeded after 31 retries. Vendor Code: 0x1e Part Family: 0x93 Part Number: 0x0a Atmel AVR ATmega88 is found. Page Write Enabled, size=64 FLASH Write Delay (t_wd_flash): 11111 us EEPROM Write Delay (t_wd_eeprom): 11111 us Uploading: flash ################################################################################ ################################################## (total 1032 bytes transferred in 417.54 s (2 bytes/s) Verifying: flash #flash error at address 0x0: file=0x3c, mem=0x10 ##flash error at address 0x2: file=0x56, mem=0x02 flash error at address 0x4: file=0x55, mem=0x00 flash error at address 0x6: file=0x54, mem=0x00 flash error at address 0x8: file=0x53, mem=0x00 flash error at address 0xa: file=0x52, mem=0x02 flash error at address 0xc: file=0x51, mem=0x00 flash error at address 0xe: file=0x50, mem=0x00 flash error at address 0x10: file=0x4f, mem=0x04 ##flash error at address 0x12: file=0x4e, mem=0x02 flash error at address 0x14: file=0x4d, mem=0x00 flash error at address 0x16: file=0x4c, mem=0x00 flash error at address 0x18: file=0x4b, mem=0x00 flash error at address 0x1a: file=0x4a, mem=0x02 flash error at address 0x1c: file=0x49, mem=0x00 flash error at address 0x1e: file=0x48, mem=0x00 [..поскипано..]
Как видно, ошибки только по четным адресам. Проколупавшить с этим шлаком кача 4 к ряду в попытках понять что же это за беда, подключаю к нему внешний программатор (тот самый первый AVRUsb500) и, после некоторых затруднений, прошиваю 88ую мегу нужной финальной прошивкой. Более того, все это добро начинает вести себя не как кусок непонятно чего, а как нормальный программатор (работает и терминал и, что самое важное, оно отлично шьет другие АВРки). Отключаю внешний программатор, запаиваю на место резисторы - шиш! Пайку/разводку проверил, все прозвонил. Пробовал собирать более старую версию uisp и usblib - результат неизменно тот же - внутренний "самопрограмматор" не работает. Я было подумал, что сдох какой-то из портов FT232RL, но видно, что в начале процесса АВРка детектится правильно. Что за беда? Я бы не удивился, если бы оно не работало с самого начала, но test_1 самостоятельно загрузился и заработал, какого фига оно не работает дальше...
P.S. Программатор собран по оригинальной схеме.
Сообщение отредактировал cz0 - Feb 18 2008, 15:49
|
|
|
|
|
Feb 18 2008, 23:16
|
Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 11-12-07
Из: Россия, Москва
Пользователь №: 33 198

|
Итак, после долгой и мучительной войны я понял, что штатниые средства из архива просто напросто не стирают предыдущую прошивку. Если микроконтроллер стереть предварительно внешним программатором, то он отлично шьётся/проверяется. Подтверждением тому служит тот факт, что если сначала стереть прошивку 88ой меги а затем залить в нее штатными средствами test_1, то все будет работаеть. Если же следом зашить test_2, то ошибки будут длится ровно столько, сколько занимала прошивка test_1, далее все верифится отлично. Видимо, команда на стирание у ATMega88 отличается или же что-то не отрабатывает в той реализации BitBang mode, которую представил Guido Socher. Будем писать ему и просить починить, глядишь, опомнится, хотя я сильно сомневаюсь. Остается только попробовать поставить на место 88ой меги 8ю и посмотреть как будет вести себя она. Что-то мне подсказывает, что все будет отлично работать. Только смущает оверклокинг на 3.4 МГц...
|
|
|
|
|
Feb 19 2008, 08:23
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(cz0 @ Feb 19 2008, 02:16)  Итак, после долгой и мучительной войны я понял, что штатниые средства из архива просто напросто не стирают предыдущую прошивку. Если микроконтроллер стереть предварительно внешним программатором, то он отлично шьётся/проверяется. Подтверждением тому служит тот факт, что если сначала стереть прошивку 88ой меги а затем залить в нее штатными средствами test_1, то все будет работаеть. Если же следом зашить test_2, то ошибки будут длится ровно столько, сколько занимала прошивка test_1, далее все верифится отлично. Видимо, команда на стирание у ATMega88 отличается или же что-то не отрабатывает в той реализации BitBang mode, которую представил Guido Socher. Будем писать ему и просить починить, глядишь, опомнится, хотя я сильно сомневаюсь. Остается только попробовать поставить на место 88ой меги 8ю и посмотреть как будет вести себя она. Что-то мне подсказывает, что все будет отлично работать. Только смущает оверклокинг на 3.4 МГц... Это немного не по теме. т.к. тот вариант, что я выложил отличается от варианта с tuxgraphics. Прежде всего заливкой прошивки. Она заливается без использования BitBang. И более продвинутым ponyprog.
|
|
|
|
|
  |
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0
|
|
|