AVReAl – ISP programmer for AVR
AVReAl designed for programming of Atmel AVR microcontrollers in ISP (in-circuit serial programming) mode for MS-DOS, Windows, Linux and FreeBSD (see download page).
AVReAl requires one of
- simple adapter connected to LPT — “5 wires“, “HC244” — Altera ByteBlaster, STK200/STK300 or other using pin mapping feature.
- USB-adapters built with FT2232C, FT2232L, FT2232D and FT2232H, FT4232H, FT232H by FTDI.
The program is free for commercial or non-commercial use but its sources are unavailable. Shortly, it is freeware but not free software.
You can download avreal and DLPortIO driver for 32- and 64-bit Windows here. Visit description page for detailed information and adapters page for schematics of programming adapters.
Posts about updates and bug fixes are published under the ‘History’ category. Separate posts about bugs are published in that case, when I have no time for urgent correction or I treat the bug as “feature” up to next avreal release.
List of previous changes and some of previous versions can be found on the “old” History page.
Supported microcontroller list can be got by the command
avreal -h
avreal (and any other programmer) can’t differ microcontrollers listed by character ‘|’ (read more).
86RF401 90S1200 90S2313 90S4414 90S8515 90S4434 90S8535 90S2333 90S4433 90S2323 90S2343 tiny12 tiny22L tiny22 tiny13|tiny13A tiny2313|tiny2313A tiny4313 tiny15 tiny25 tiny45 tiny85 tiny26 tiny261|tiny261A tiny461|tiny461A tiny861|tiny861A tiny24|tiny24A tiny44|tiny44A tiny84|tiny84A tiny1634 tiny43u tiny48 tiny88 tiny87 tiny167 mega603 mega103 mega161 mega163 mega323 mega8515 mega8535 mega162 mega8|mega8A mega48|mega48A mega48P|mega48PA mega88|mega88A mega88P|mega88PA mega168|mega168A mega168P|mega168PA mega328 mega328P mega16|mega16A mega32|mega32A mega64|mega64A mega128|mega128A 90CAN32 90CAN64 90CAN128 90usb82 90usb162 mega8U2 mega16U2 mega32U2 mega16U4 mega32U4 mega32U6 90usb646|90usb647 90usb1286|90usb1287 mega164A mega164P|mega164PA mega324A mega324P mega324PA mega644|mega644A mega644P|mega644PA mega1284 mega1284P mega165|mega165P|mega165PA mega165A mega325|mega325A mega325P mega3250 mega3250P mega645|mega645A mega6450|mega6450A mega169|mega169P|mega169PA mega169A mega329|mega329A mega329P|mega329PA mega3290 mega3290P mega649|mega649A mega6490|mega6490A mega640 mega1280 mega1281 mega2560 mega2561 90pwm2|90pwm3 90pwm1|90pwm2B|90pwm3B 90pwm216|90pwm316 90pwm81 90pwm161 mega16M1 mega32M1 mega64M1 mega32C1 mega64C1 mega8HVA mega16HVA mega16HVB mega32HVB mega8HVD mega128RFA1
Здравствуйте! Спасибо за программу! Обнаружил, что в последней версии нет поддержки Attiny441/841. Очень бы хотелось, если можно…
Прошу пардону… не глянув нижче. Знайшов, дуже дякую.
Ой, дякую, що нагадали. Хотів ще тоді сам десь 441-шу взяти, перевірити як слід, а тоді інші справи закрутили й призабув.
Напишіть, чи все добре, та я нарешті зберу архіви свіжої версії.
Так, у мене з тини441 працює без жодних запитань.
Привіт, Сашко!
Прикупив пару чіпів Тайні841 для невеличкого проекту, а нє – не підтримується….
Шо робити?
Ми ж радіофізики унд псіхоаналітики, нє?
Привіт!
Нещодавно з кимось про сервомашинки балакав (просто так, bla-bla-bla), то про тебе згадав собі.
Поліз дивитися.
В тому числі чи після всіх нещодавніх перевстановлень софта — чи у мене на лінукс-ноуті у віртуалбоксі в XP-шці mingw32-gcc зберігся 🙂
Бо великий комп і вінчестер «7 систем» вдома, а я втік на село трохи відпочити.
Так отож. По всенькому білому світі літають мої машинки. Ну то таке.
Приїду. До Броварів навідаюся, як не проти. Кинь скайп адресу на мій емейл. Побалакаємо-поностальгуємо… Дружині привіт.
Я якось досі без скайпу обходився 🙂 У дружини є, то так і побалакаємо.
Пробуй
http://real.kiev.ua/files/2B_excluded/avreal32-1.29r1b5.exe.zip
avreal/WIN32 v1.29r1b5 (Jun 3 2016 15:04:43)
Device connected, tiny841 detected
Chip not locked
Device erased
Device connected, tiny841 detected
Verifying CODE memory
Verify [**************************************************]
done (145ms)
ERROR: failed, 3742 errors
Привіт, Сашко! І дружині привіт!
Оппа, дивився пару днів на твій сайт, а потім були інші проблеми.. Оце ж і спробував, но – ньєт….
але ж детектиться. може вони щось з команд змінили (після дружнього злиття із-зі поребрика(мікрочіп поглинув нашого атмеля, скотиняка :)))
Перевір командний рядок, чи все на місці.
Команди я звіряв, не мінялися. Розмір сторінки там менший, я записав. При помилці з розміром сторінки буде купа помилок запису, то при верифікації з ключем -i5 відтрасує всю роботу, про кожен байт, що не співпав, скаже адресу/треба/є, то буде видно шматки FF або дублікати запису.
як же ти правий! ключі наше все. навіть до ключика і5 не дійшов.запрацювало. дякую.
Здравствуйте, помогите, пожалуйста, решить такую проблему. Программа AVReal и файл кода находятся на сервере (WinXP), программатор подключен к LPT порту рабочей станции. Станция подключена к серверу по RDP. Запускаю AVReal – Can’t resync. Может быть дело в том, что на сервере нет физического LPT порта?
Заранее спасибо за ответ
Виктор
Не думаю, что удастся пробросить LPT с рабочей станции на сервер так, чтобы работало побитовое управление. Канал печати — это другое. Нужно запускать на выполнение том комп’ютере, на котором порт.
Спасибо
Добрый день. В руководстве к avreal сказано, что поддерживается Olimex ARM-USB-TINY, но не сказано как его подключать к контроллеру. Приведена схема подключения FT2232C к AVR. У меня плата с Atmega 90s8515. Прошиваю LPT’шным Altera ByteBlaster. Хочу приспособить Olimex ARM-USB-TINY, которым прошиваю ARM’ы, но про него известно, что у него такой вот разъём: https://www.olimex.com/Products/ARM/JTAG/_resources/openocd-jtag-layout.png А куда на этот разъём подключены какие ноги FT2232 неизвестно. Не могли бы Вы объяснить, как его подключать к Atmega 90S8515? Спасибо.
Раньше у них сайт был не такой красивый, зато было расписано, какая ножка куда.
В описании на ARM-USB-TINY сказано, что там «no output buffers just current limitation resistor protectors»
Тогда enable для буферов не нужно и должно работать:
TTDI = MOSI
TTDO = MISO
TTCK = SCK
TTMS = RESET
Добрый день. В руководстве к avreal сказано, что поддерживается Olimex ARM-USB-TINY, но при попытке обратиться к нему получается следующее:
Строка команды для связи и отклик при подключенном устройстве:
[mjl@main avreal-usb]$ ./avreal32-1.29r0 -aft2232 -p?
avreal/Linux32 v1.29r0 (Dec 11 2013 19:48:44)
ERROR: No FTDI devices found
При этом в dmesg присутствует следующее:
[ 1450.805029] usb 8-2: New USB device found, idVendor=15ba, idProduct=0004
[ 1450.805034] usb 8-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1450.805038] usb 8-2: Product: Olimex OpenOCD JTAG TINY
[ 1450.805041] usb 8-2: Manufacturer: Olimex
[ 1450.805044] usb 8-2: SerialNumber: FTVU2MRR
[ 1450.805217] usb 8-2: configuration #1 chosen from 1 choice
Также, работает программа milprog, написанная Сергеем Вакуленко для работы с контроллерами семейства 1986ВЕ9x (ЗАО “ПКК “Миландр”) через ARM-USB-TINY.
В чем может быть проблема с avreal?
Спасибо.
avreal ищет только по FTDI-ным VID/PID, другое надо указывать явно.
Должно работать так
Хотя тут пишут, что с Olimex ARM-USB-OCD шаманить не пришлось — возможно, там vid-pid не менялись.
Спасибо, Александр!
Правда, работает только через sudo,
и строка выглядит: -aft2232 -p”d=Olimex OpenOCD JTAG TINY А,v=15ba,p=0004″,
как подсказала штатная утилита sudo…
Откуда “А” – не могу понять… То же с “DUAL UART …”, с чем уже сталкивались.
Можно попробовать отпаять 24С93, но я работаю с AVR, PIC, и 1986-й росиийской серией, по сему не хочется пробовать … Потеряю 1986-ю серию… для Вашей программы сейчас использую ТОЛЬКО ByteBlasterMV/LPT, поскольку еще использую ПЛИС фирмы ALTERA (с 2000 г.). Ваша программа замечательная.
Попробуйте файл
/etc/udev/rules/d/50-olimex.rules
с содержимымПеревходить не нужно, просто вынуть и вставить устройство. Должно работать без sudo.
Про «А» я просто забыл сказать.
Это к серийнику добавляется номер канала двухканальной FT2232.
У 2232H есть MPSSE на обеих каналах и там добавляя A или B можна работать с обеими.
Здравствуйте, будет ли возможно программировать ATtiny4 / ATtiny5 / ATtiny9 / ATtiny10 в ближайшем будущем?
Здравствуйте, Александр! Спасибо за прекрасную программу!
Не смог разобраться, можно ли использовать кнопку (-k) для платы “137” на FT2232? Буду признателен, если поможете.
Можна, например, дать кнопку с линии AD4 (X3 pin 6) на землю и сделать конфиг-файл key.cfg:
key=~dbus4
MOSI, MISO, SCK, RESET будут использоваться по умолчанию, как для X2.
Вызов
и дальше остальные ключи.
Благодарю Вас, Александр!!
здравствуйте!
Заметил мелкую очепятку в avreal32-1.29r0.exe в слове Verfiy
Verifying CODE memory
Verfiy [***********
done (1.38s)
passed
Спасибо.
Александр привет.
avreal выручает уже много лет. Хотелось бы в меру сил вознаградить. Как?
С уважением…
За 15 лет несколько раз отказывался, но в это непростое время буду благодарен.
О способе… Давайте в почту, на real@real.kiev.ua.
hello I have a tiny13 As I can put the command pára record and re-record
Sorry for the delay in answering.
What type of adapter you use?
To burn the firmware, use the switch -w.
To overwrite, you must first remove the old firmware, so use -e -w
For example,
Здравствуйте, такая проблема, пытаюсь научиться программировать микроконтроллеры. Собрал ByteBlaster, собрал плату с МК attiny2313 и 8иью светодиодами, пытаюсь просо заставить одни светодиоды гореть, другие – нет. Почти разобрался со всем, но вот проблема, пишет мне avreal такую дилемму:
avreal/WIN32 v1.29r0 (Dec 11 2013 22:23:26)
LPT port number 1
LPT base address 0x378
% DLportIO.dll succesfully loaded, DLportIO.sys interface activated
LPT write cycle 1.20us
ByteBlaster found
ByteBlaster adapter mode
MCU oscillator frequency = 10.0MHz
setup 210ns, hold 210ns
actual SCK frequency 278kHz
Adapter enabled
Reset
ERROR: Can’t resync
Reset pin released
Adapter disabled
При этом я задавл ему такую задачу в батнике:
D:\Chemetechnik\Microconroller\avr\avreal32.exe +tiny2313 -p1 -id -ab -o10000kHz -e -v -w -c output\hexfile.hex -n >>write.txt
pause=null
На плате с МК стоит кварц на 10МГц к ногу каждого пришлось припаять не 22пФ, а 27пФ, может с этим как-то связано? Когда пытаюсь шить звоню ту самую ножку на МК, называемую RESET мультиметром – питание благополучно поднимается до 5В и потом снова падает, светодиод питания на программаторе горит, светодиод прошивания при попытке прошить – один раз мигает. Помогите, пожалуйста!!!
22пФ – 27пФ — не думаю, що важливо, генерація однак має бути.
Живлення треба б подати зовнішнє нормальне, можна від USB. Те, що зараз виходить — набирається через захисні діоди на входах SCK, MOSI. Буде з провалами.
Але найімовірніша причина — «з заводу» мікроконтролер прошито на тактування від внутрішнього RC 8 MHz (CKSEL=4) з діленням на 8 (CKDIV8=0), тобто на 1 MHz. Для такої тактової частота SPI має бути не вище 250 kHz, а з конкретним LPT вийшло майже 280. Спробуйте з -o1MHz або взагалі без ключа -o (еквівалентно -o800kHz). Для надійності можна навіть -o500kHz.
Спасибо за ответ. Питание итак подано с USB не доверяю питанию от LPT) Пробовал менять параметры ключа -o – не помогло, меняется строка actual SCK frequency а результат тот-же. На 1.00MHz в той строке написано 167kHz, на 0.8MHz – 119kHz, на 0.50MHz – 93kHz. Попробовал ещё поставить ключ -o0 тогда написало:
0.42MHz XTAL will be generated
with SCK low 2 periods, high 2 periods
Adapter enabled
Reset
ERROR: Can’t resync
Reset pin released
Adapter disabled
Может ли причина быть в том, что на плате с МК 8ой вывод разъёма программирования никуда не подключён, может попробовать его притянуть на XTAL1 и попробовать генерить частоту с него? На всякий случай привожу статьи откуда были взяты схемки плат: http://radiokot.ru/start/mcu_fpga/avr/03/ http://radiokot.ru/start/mcu_fpga/avr/05/ Заранее благодарен.
Не, это тоже не помогло, запаял отдельным проводком восьмой вывод программирующего разъёма на ногу МК под названием XTAL1, под номером 5 которая. Всё до лампочки. Я уже не знаю… В тексте батника, как я понял, все правильно стоит?
Вот такая ещё вещь написана в статье про сборку моего программатора: “ВНИМАНИЕ! Для работы с программируемой логикой Altera может потребоваться подтянуть 7-й вывод разъема программирования на “+” питания резистором порядка 1…3 кОм.” {jnm e vtyz b fnvtktdcrbq
Для роботи з AVR та ніжка зовсім не використовується. Не дуже добре, що вхід плаває, але заважати не повинно.
Перепрошую за затримки, але вдень (закінчується в кращому разі о 3 ночі) зовсім ніколи.
З байт-бластером є одна поширена помилка. На схемі http://radiokot.ru/start/mcu_fpga/avr/03/ стрілочка «+5V» це точка, з якої треба взяти живлення на DD1. Зовнішнє живлення слід подавати на плату з мікроконтролером, а на байт-бластер живлення прийде через ніжку 4. Перевірте це місце.
Батник правильний.
З’єднання 8-ї ніжки бластера з XTAL1 потрібно тоді і лише тоді, коли використовується ключ –o0
-o0.5MHz повинно було вистачити.
Спробую сьогодні на роботі якусь tiny2313 помучити.
Тут с питанием я поступил так: на байтбластер подвёл экранированным USBшным кабельков в точку где +5 вольт обозначено. На плату с МК тоже отдельным USB проводом подвёл, а микросхемку 74HC244 (кстати, микросхема у меня немного другая – HD74LS244P, может причина в этом, я смотрел даташиты, вроде одинаковые они по основным параметрам да и по функциям тоже…) запитал от 4ого вывода разъёма программирования. В статье-же писали, что байтбластер питается от платы с микроконтроллером, вот и и запитал его оттуда). Кстати, я даже случайно 1 кГц поставил, то бишь применил ключ -о1 и это заставило меня понадеяться, что всё будет ОК, потому что диод программирования горел довольно долго, но результат оказался тем-же, просто операции таким образом занимали значительно больше времени))
Живлення в обидві точки — діод на байт-бластері вийшов закороченим, але це не страшно. Його взагалі можна прибрати, він лише у деяких випадках потрібен.
74LS244 — це ТТЛШ серія («шоткі»), наш аналог К555.
У неї на виходах рівень «1» низькуватий — може бути недостатнім для КМОП-мікросхем.
Спробуйте на виходах RESET, SCK, MOSI бластера поставити підтяжки на живлення. Десь від 4.7 кілоом до 10 кілоом має бути нормально. Менше 2 кілоом небажано, LS244 вже може погануватий «0» видавати.
Все, тепер ввечері зазирну.
Без подвода доп. питания сигнал на ресете достигает 4.3 Вольта, у меня изначально почему-то при подаче питания на плату с МК загорался светодиод, когда подвёл доп. питания на MISO и MOSI – Загорелся рядом стоящий почему-то… сейчас попробую на ресет подвести доп питание.
Бредняк, с подводом доп. питания напряжение на ресете опустилось до 4,25, подводил резистором 4,7 кОм
Перепрошую, зовсім нема вільного часу.
Не розумію, як з підтяжкою на + напруга могла знизитися. Більш за все, якісь помилки у монтажі.
74LS з підтяжками має працювати. Хоча у мене під рукою давно таких нема, але ще не «Altera byte blaster», а його попередник «Intel FLEXlogic downloading cable» після допаювання підтяжок працював з першими AVR-ками.
Навряд чи зможу допомогти дистанційно.
Ну от якщо живлення подається на процесор, а потім від нього на байт-бластер:
avreal/Linux32 v1.29r0 (Dec 11 2013 19:48:44)
Parallel port `/dev/parport0' found, ioctl interface activated
LPT write cycle 1.06us
ByteBlasterMV found
ByteBlaster adapter mode
MCU oscillator frequency = 0.50MHz
setup 4.2us, hold 4.2us
actual SCK frequency 105kHz
Adapter enabled
Reset
Read ID: 0x1E910A
Device connected, tiny2313|tiny2313A detected
Chip not locked
Fuses:
OSCCALs = 54 4D
_LOW = C4
CKDIV = 1
CKOUT = 1
SUT = 0
CKSEL = 4
_HIGH = DB
DWEN = 1
EESAVE = 1
WDTON = 1
BODLEVEL = 5
RSTDISBL = 1
_EXT = FF
SELFPRGEN = 1
Total time 119ms
All OK
Reset pin released
Adapter disabled
Якщо живлення подати на байт-бластер на оту «стрілочку», то на процесор не йде і тоді:
avreal/Linux32 v1.29r0 (Dec 11 2013 19:48:44)
Parallel port `/dev/parport0' found, ioctl interface activated
LPT write cycle 1.10us
ByteBlasterMV found
ByteBlaster adapter mode
MCU oscillator frequency = 0.50MHz
setup 4.2us, hold 4.2us
actual SCK frequency 101kHz
Adapter enabled
Reset
ERROR: Can't resync
Reset pin released
Adapter disabled
Ну, у меня, получается, питание как раз сначала на МК, а потом уже на микруху в байт бластере приходит, но с тем-же набором ключей, у меня частота не дотягивает до 100 кГц и ресет не проходит(((
Ну когда же наконец добавите работу с удобными и дешевыми FT232RL/FT245RL?!
Прошу прощения, похоже эти микрушки не имеют режима MPSSE? Тогда понятно почему никогда. Жаль.
Зато они, в отличие от FT232BM/FT245BM и более старіх, имеют SBB (синхронный бит-банг) что хоть и гораздо медленнее, чем MPSSE, но терпимо. Так что сделать можно и нужно. Просто я «всё никак»™ 🙁
Скажите, пожалуйста, а можно с помощью avreal программировать SPI Flash, например 25L128? Спасибо
Увы, нет. Часто спрашивют, но всё никак не возьмусь.
Мне, похоже, нужно придумать себе задачу, где мне самому будет нужно шить такие флешки, тогда и сделаю…
Я на досуге вожусь с DLP-USB1232H (FT2232H). FT2232H сконфигурировал в MPSSE и SPI готов, но не могу найти пример как хотя бы прочитать через SPI байты с Flash. Какой пакет нужно отправить в MPSSE чтобы потом прочитать? Был бы очень благодарен за помощь. Спасибо
Чтобы только читать из MPSSE, нужно посылать пакет с командой, у которой бит 4 нулевой, а бит 5 поднят — старшая часть команды 0x2_, а в младшей вместо подчеркивания выставить биты, соответствующие нужному режиму SPI (см. «Data Shifting Command Overview» в документе «AN2232C-01 Command Processor for MPSSE and MCU Host Bus Emulation Modes»).
Т.е., как мне кажется, чтение из SPI флеш лучше делать двумя командами — сначала с 0x1_ (только запись) записать команду чтения и адрес начала, потом командой с 0x2_ вычитать нужную длину данных.
Сам я такой командой не пользовался, так как для AVR все равно для чтения каждого байта нужно писать отдельную команду. В avreal используется только 0x3 (запись и чтение).
Отправляю 10 03 00 9F 00 00 00 чтобы прочитать Flash ID, а в ответ получаю 4 байта FA 00 FA 00. Выглядит как последние нули не принимает. Менял длину пакета, ответ тот же. Буду играться дальше. Спасибо за совет!
Упс! Нашел баг. FA 00 FA 00 это осталось в буфере после неудачной инициализации.
Теперь шлю
10 03 00 9F 00 00 00 – в ответ ничего (так и нужно),
потом
20 04 00 00 00 00 00 – отвечает FF FF FF FF FF FA 00 FA 00 FA 00 FA 00
Ковыряюсь дальше 🙂
FA — это ответ «Bad command», дальше байт, который собственно и вызвал сообщение.
20 04 00 — это прочитать пять байт. На них пять FF-ов и отдаётся.
Дальше 00 00 00 00 воспринимается как четыре неправильніх команды, вот на них и ответ четыре пары FA 00
Похоже что из-за бага в библиотеке от чипа приходят только 0xFF. На хабре статья хорошая http://habrahabr.ru/post/207214/
Ну я всеми теми прослойками LibMPSSE-* не пользуюсь. Они же просто «высокоуровневые оболочки вокруг ftd2xx.dll»
Точнее, LibMPSSE-SPI не пользуюсь, так как остальные интерфейсы ещё не смотрел вообще 🙂 Но на библиотеку MPSSE-SPI тоже кто-то жаловался.
Я c самого начала стал работать через ftd2xx.dll(Win)/libftd2xx.so(Lin) и не жалею. Заработало все в первый день.
дравствуйте!!!
Пытаемся попользоваться устройством “FT2232H Mini Module”
Дрова встали,прогамму обновили.Но не работает.
Обнаружился странный эфект.При попытке прошить “avreal32 -a +mega8 -o100 -e”
выдается сообщение “Can’t resync”.
Посмотрите рекомендации, сделайте правильные соединения, проверьте питание, задайте правильные ключи. Если и после этого не заработает, давайте сюда лог с -%, будем думать.
p.s. Я, бывает, после незначительных изменений по лени не проверю FT2232D или PCI-LPT, но FT2232H — мой основной программатор, используемый каждый день.
Александр,
Не подскажите будет ли авреал работать с этими китайскими адаптерами:
http://dx.com/p/usbasp-usbisp-downloader-programmer-for-51-avr-157167
http://dx.com/p/usbisp-ccl-programmer-down-loader-module-black-silver-160102
http://dx.com/p/free-drive-usbasp-usbisp-download-cable-w-aluminum-cover-for-51avr-microcontroller-151604
я понимаю, что по картинкам сложно сказать на чем они сделаны, но может кто уже заказывал и пробовал…
Зато по словам USBASP и USBISP просто. avreal такие не поддерживает. И пока не планируется.
Доброго дня ! Я покупал готовые и настроенные модули на сайте ,, micro51@mail.ru ,,! Документация на прогроматор находится по адресу ,, http://www.electroniclab.ru/137.htm ,, !
Ага, видел когда-то фото платы.
Судя по виду, никаких шинников нет. Т.е. плата является простейшей.
Устанавливайте драйвер FTD2XX, берите самый свежий на данній момент архив avreal. Архив нужно просто распаковать, ничего устанавливать не нужно.
avreal32-1.28r14.exe лучше сразу переименовать в avreal32.exe и желательно разместить в каталоге, прописанном в переменной PATH. Иначе придётся держать в текущем каталоге.
Соединяйте один к одному X2 программатора и X1 платы с мегой.
Подключайте обе платы к USB.
В командной строке набирайте (вместо mega328 подставить тип установленной на 135-той плате микросхемы):
Результат в студию.
Здравствуйте ! Скачал всё , что вы советовали ! Переименовал фаил avreal32-1.28r14.exe , подключил платы 137 и 135 ! Мой комп ни чего мне показал и ни чего не произшолло ! Где и как мне найти командную строку ? И при помощи каой проги происходит програмирование МК ( IC- prog или PoniProg или winPic ) ?
Уезжал на несколько дней, только сейчас добрался до компьютера-интернета.
Командная строка в Win7 находится в главном меню в разделе «Все программы»/«Стандартные» — «Командная строка».
Программирование производится именно avreal-ом, который вызывается из командной строки с нужными ключами. Чтобы не набирать каждый раз вручную, вызов утилит командной строки, к которым относится и avreal, делается из меню Tools применяемого продвинутого редактора или IDE. На этом экономится постоянный переход из одной графической оболочки (редактора) в другую (PonyProg и иже с ним) и обратно.
При выборе позиции «Командная строка» появится окно консоли, которое по привычке называют «ДОС-окно», хотя тот же avreal32 — 32-битное консольное windows-приложение под DOS-ом не запустится. Наберите в строке даже не так, как я писал раньше, а
У Вас в текущем каталоге появится файл log.txt, который можно посмотреть блокнотом и вставить сюда в сообщение.
Для avreal когда-то была написана так графическая оболочка avrealshell, так же бесплатная, как и avreal. Но я не слежу за этим проектом и не знаю, в каком он состоянии и где находится.
Честно говоря, считаю это несправедливым — кто-то выпускает платы, получает за это деньги, но не удосуживается дать подробных объяснений по их использованию с avreal, просто даёт линк на меня. После чего я, и так потративший время на написание бесплатной программы, должен тратить еще время на бесплатную поддержку чужого коммерческого продукта, не получая за это ни копейки.
Иногда такие продавцы даже прямо требуют — «я дал у себя на сайте линк на ваш сайт, поэтому вы должны дать у себя линк на мой».
За что?
Здравствуйте ! Я сделал всё как вы советовали ( скопировал вашу строку в командную строку = нажал enter и мой комп ни чего не показал ) ! Поставил Пони прог , пытался найти прогроматор , машина его не видит ! Вы меня простите за мою не образованность , но поясните , ПОЖАЛУЙСТА , по подробнее что , куда и как нажинать ( скачивать ) ! Я в програмировании полный лузер ! Пока освоил прошивку МК PICов ! Но программы я не пишу ( пока ) ! ПОЖАЛУЙСТА , ПОМОГИТЕ чайнику освоить програмирование МК семейства AVR ATM и тд !
PonyProg эту железку №137, насколько я знаю, не понимает.
avreal и есть программатор, просто программатор командной строки. Т.е. все операции по стиранию/программированию он производит вот так, из командной строки. Например, ключ -e означает «стереть», команда
сотрёт флеш и EEPROM. Все ключи тут.
С ARM-ами есть возможность не только программирования, а и отладки. Но то же самое — непосредственно с платой работает OpenOCD, который сам по себе тоже только из командной строки работает.
Так сделано для возможности интеграции (почти) куда угодно. Это другой путь, отличающияся от подхода «отдельная программа с кнопками для каждой работы». Гораздо удобнее, на мой взгляд, программировать прямо из той IDE, в которой производится компиляция, а не переключаться на PonyProg или что-то подобное. Но первоначальная настройка сложнее и зависит от используемой IDE. Посмотрите статьи по использованию в Eclipse Программирование AVR и ARM микроконтроллеров в Eclipse., Использование адаптера FTDI JTAG для программирования AVR микроконтроллеров.
По команде avreal32 -aft2232 +mega328 >log.txt он и не должен был ничего показать — в том каталоге, в котором запускался avreal, должен был появитсья текстовый файл log.txt. Проще его вставить сюда, чем делать скриншот.
Без >log.txt была бы выдача на экран.
Если добавить -% (avreal32 -aft2232 +mega328 -% >log.txt) то лог-файл будет подробный. Посмотрите в том каталоге, в котором запускали. Его имя было в приглашении командной строки.
Можно запустить сначала без перенаправления в файл >log.txt, чтобы увидеть реакцию, а потом сделать перенаправление, открыть файл редактором и скопировать текст в сообщение.
Попробуйте ещё.
Плата 137 _ это прогромматор AT mega ! Он работает на ОС 7 по интерфейсу USB ! Вторая плата – это плата , в которую подключается МК !Я уже пробывал зашивать МК и у меня получилось ! Зашивал PIC через IC-prog и winpic ! А на этот сайт меня направил производитель плат 137 и 135! Но я здесь теряюсь ! Слишком много ссылок , вот я и не знаю какую установить !
Раз производитель послал сюда, значит плата программатора на одной из микросхем FT2232, FT2232H, FT4232, FT232H. В любом случае, программа и драйвера ставятся одни и те же, для всех версий Windows одинаковые («ОС 7» — это ведь Windows, а не Система 7).
Неплохо бы линк на производителя с описанием платы, так как могут быть нюансы в зависимости от типа FTDI-микросхемы и наличия/отсутствия шинников, схемі подключения шинников.
На страничке загрузки берёте верхний архив в колонке Windows таблички AVReAl, т.е. самый свежий для используемой ОС.
DLPortIO не нужно, это для LPT.
Драйвера — у производителя (этот линк есть на странице загрузки avreal).
Работа с avreal – из командной строки, т.е. совсем вручную, через bat-файлы или подключая к той IDE, которой пользуетесь.
Ключи и конфиг-файлы будем уточнять после выяснения подробностей по «плате 137».
Здравствуйте ! Я приобрёл платы 137 135 ! хочу прошить МК , но какой программой не знаю ! Подскажите . пожалуйста , какую программу поставить и как её скачать !
Что такое «платы 137 135»? Какие-то смутные ассоциации с такими числами у меня есть, но ничего определённого вспомнить не могу.
Исходя из того, что Вы спрашиваете на этой странице, могу только догадываться:
• как минимум на одной из плат стоит микроконтроллер AVR;
• на сайте продавца есть линк на avreal.
Уточните, разберёмся.
Подскажите что делаю не так, хочу прошить ATmega16A.
+mega16a -p0x5068 -am=pxi.cfg -%% -e -w -v main.hex
Файл конфигурации:
name=gener
mosi=D3
miso=ONLINE
sck = D4
reset = D2
Выдает ошибку can’t resync by SCK pulse
На всех выводах которые участвуют в прошивке есть импульсы.
Шинника, я так понимаю, нет.
А какое питание и тактирование контроллера, прошивался ли до этого (менялись ли fuses)?
Попробуйте снизить частоту, скажем, -o100
Попробуйте без контроллера соединить на адаптере mosi-miso, при нормальной работе адаптера должно выдать в духе
Из “А” я пока работал с mega8A и mega48PA, с ними проблем не было.
Скажите пожалуйста, последняя версия avreal(avreal32-1.28r7) – как и предыдущие не опознает byte blaster (он исправен, проверялся неоднократно на рабочем компе). Система Win7-64, драйвера подписал, установил. В ответ: DLportIO.dll succesfully loaded, DLportIO.sys interface activated, а ВВ не находит. Проблема может в PCI-LPT карте? менял ее два раза уже на другую. Адрес смотрел в винде 0xbd00. Строка для запуска выглядит так : avreal32 -ab -p0xbd00 +mega16 -%. Adapter not found. Это что на современной машине без интегрированного LPT-порта не запустить, или я все же косячу? Спасибо!
Если честно, то я довольно давно проверяю только на набортном, так как дома PCI-LPT пришлось вынуть — в новой маленькой материнке гнездо перекрыла видеокарта… А на работе не держу W7.
От PCI/набортный ничего зависеть не должно. Т.е. если драйвер подписан, тестовый режим включен, …, то должны работать и набортный, и PCI-ный интерфейсы.
Надо проверить, не внёс ли я ошибку. Подумаю, где можно подоткнутся с карточкой к W7.
Я мог бы проверить новую версию. У меня есть ByteBlaster, Win7 (правда, 32-разрядная), LPT-порт (интегрированный).
Интегрированный и у меня есть, но еще одна проверка лишней не будет.
Проделал тест.
Скачал AVReal 1.28r7 ( http://real.kiev.ua/files/avreal/avw-1.28r7.zip ) и 1.28r14 ( http://real.kiev.ua/files/avreal/avreal-1.28r14-win32.zip ).
Установил на компьютер с Win32 DLPortIO, как описано здесь: http://real.kiev.ua/2010/11/29/dlportio-and-32-bit-windows/.
Подключил к LPT-порту через кабель Altera ByteBlaster, а к нему – плату на ATMega8.
Написал два .bat-файла для чтения из ATMega8 (один файл для v1.28r7, второй для v1.28r14).
Запустил один файл, потом второй.
В обоих случаях отработало без ошибок. Заметил только, что v1.28r7 выдает .hex-файлы с “пустыми” областями, заполненными “FF”, а v1.28r14 пропускает “пустые” области – не пишет в файл.
Особо долго не тестировал, но могу сказать, что ByteBlaster работает.
Спасибо.
По поводу FF-ов — это обновление 1.28r8
возвращает 403 по ссылкам “description” и “adapters”
Более детальная информация находится на странице description, схемы адаптеров для программаторов — на странице adapters.
потому что стоит ссылка http://real.kiev.ua/old/avreal/ru/description
а правильная http://real.kiev.ua/old/avreal/ru/description.html
Привет!
И на всех других ссылках та же беда. Спасибо.
Это, похоже, после переезда на новый сервер, так как раньше работало (сервер сам смотрел, что есть в каталоге — htm или html — и подставлял).
Исправил.
LPT распайка под fbprg – работает с AVReal
LPT распайка под STK-200 работает с avrdude и ICCAVR
Подскажите почему AVReal не работает с STK-200:
на команду
avreal.exe +mega128 -as -p1 пишет
Atmel STK* adapter not found
У STK200/STK300 есть перемычки детектирования со второй на двенадцатую и с третьей на одиннадцатую ножки LPT.
avreal проверяет наличие хотя бы одной из этих перемычек.
Эти перемычки присутствуют.
В Вашей схеме STK-200, предлагаю резистор между Vcc и MISO подключать по необходимости.
Чтобы отлаживать устройства, не отключая адаптер, на MISO не нужно Vcc.
На многих схемах STK-200 этого резистора нет.
ключи -r не отрабатывает, т.к. останавливается на Atmel STK* adapter not found.
Но интересный факт: ключ -! отрабатывает.
Пишет, что Atmel STK* adapter not found, но команду -! выполню и …
выполняет правильно: определяет микросхему и шитает фьюзы.
Вот добрался до компьютера с LPT. Linux, XP — адаптер распознаётся:
v1.28r12 (Jan 4 2013 15:22:05) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-as -p1 +mega8
Adapter enabled
Device connected, mega8|mega8A detected
Chip not locked
v1.28r12 (Jan 4 2013 14:52:34) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-as -p1 +mega8
Adapter enabled
Device connected, mega8|mega8A detected
Chip not locked
А ключ -! снимает все проверки, так что если с ним работа с микроконтроллером идёт, а без него ругается на отсутствие адаптера, то надо искать неконтакты в кабелях на детектирующих перемычках.
Hi Alex,
thanks for the great job on AvReal.
One question: How do I change CKDIV fuse on AtMEga165A? See what I get if I’m trying to change it:
avreal -p1 -ab -o10kHz +MEGA165A -fCKDIV=OFF -v
avreal/Linux32 – AVR controllers programmer by Redchuk Alexandr
v1.28r12 (Jan 4 2013 14:52:34) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-p1 -ab -o10kHz +MEGA165A -fCKDIV=OFF -v
Adapter enabled
Device connected, mega165A detected
Chip not locked
Fuses
OSCCAL = 83
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0x62
CKDIV = 0
CKOUT = 1
SUT = 2
CKSEL = 2
_HIGH = 0x99
OCDEN = 1
JTAGEN = 0
WDTON = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
_EXT = 0xFF
BODLEVEL = 7
RSTDISBL = 1
Verifying fuses
CKDIV : expected 1, read 0
Verifying of fuses failed
FAILED
Reset pin released
Adapter disabled
According to datahseet, I should change LB0 and LB1 fuses firts (to unlock fuses), but I can’t see them in the list.
please help,
Zbynek
There are no write command in your command line:
Add write switch:
Chip is not locked now (see avreal messages), LB0, LB1 fuses are erased.
LB0, LB1 fuses can be erased only by “chip erase” -e command, not via -f switch.
OMG, thanks!!
Александр, доброго здоровья и успехов в Новом году.
Насчет PDI_Xmega понятно, что непросто, а как-бы осилить
TPI? Как раз в “ракурсе Ваших интересов” – для поделок!
Готов распаять для Вас макетки tiny10, tiny20 –
последняя в корпусе SOP_0,65 очень симпатична!
tiny10 вже розпаяна. Залишилося час знайти 🙂
Причому одна вдома, одна на роботі — хтозна, де «час та натхнення» матиму 🙂
Хочу собрать программатор на FT2232D по простейшей схеме приведенной в разделе “адаптеры”, но с буффером на выходе. Почитал, но не доконца понимаю есть ли возможность подключить вход ОЕ буффера к FT2232D, что бы переводить выходы буффера в третье состояние после программирования?
Для разрешения выходов можете использовать любой свободный вывод из ADBUS или ACBUS, нужно только будет его прописать в конфигурации.
Например, для ADBUS7 при буферах, открывающихся низким уровнем:
При буферах, открывающихся высоким уровнем:
Добрый день.
Не могли бы Вы прикрутить к Вашему и без того отличному программатору поддержку PDI для xMega?
«Хороший вопрос»™
С Xmega-ми такая беда, что у меня к ним нулевой интерес.
ATtiny24A..84A, ATmega48PA..ATmega328PA идут в мелкие домашние поделки и в серийные проекты (включая находящиеся сейчас в стадии опытных образцов), ATmega64 стоит в разных платках для внутренних нужд, их есть некоторый запас уже запущенных/проверенных.
А вот с ATXmega128A1 даже есть уже спаянная плата с 512 K внешней памяти и 3*RS485 + 3*I2C (выпущены наружу через 2N7002L), но она лежит без движения уже года два.
Ну а нет непосредственного интереса — не находятся и кусочки времени для постепенного выковыривания из них результата.
До недавнего времени и у меня к xMega тоже был нулевой интерес. Но вот на рынке стали появляться дешёвые графические дисплеи от мобильных телефонов (S5230, к примеру), для управления которыми ресурсов обычных мег уже не хватает. Народ начинает эти дисплеи осваивать (есть уже проекты карманных осциллографов и т.д.). Вот и начальник моей наноконторки по разработке в том числе и портативных глюкалец, насмотревшись на мобильники, уже воротит нос от ч/б алфавитно-цифровых индикаторов и плёночных клав – “маловато будет”, да и нерационально использовать переднюю панель отдельно для индикатора и клавы (которую ещё и сделать надо). Так что придётся ваять очередное глюкало на этом дисплее, а в качестве камня планирую xMega – ресурсов вполне достаточно (есть и DMA, поддержка склероза, ядро 32МГц, знакомая система команд и т.д.). Есть и минусы: PDI вместо SPI (с предназначенным только для программирования выводом) и отсутствие поддержки Вашим программатором.
Впрочем, скорее всего такая поддержка вообще невозможна, т.к. программатор должен обеспечить минимальную частоту тактов около 10кГц, иначе контроллер выйдет из режима программирования: “If the clock frequency on PDI_CLK is lower than approximately 10kHz, this is regarded as inactivity on the clock line. This will automatically disable the PDI… This also means that the minimum programming frequency is approximately 10kHz.” Частота тактов через параллельный порт может быть гораздо выше (что-то около 2МГц), а вот непрерывность последовательности вряд ли может быть обеспечена (разве что под чистым ДОСом).
И вопрос по программатору, затронутый уже DreamCat, по поводу fuses: можно ли убрать постоянный их вывод на экран (очень много нечасто используемой инфы выводится)? Выводить только по ключу, а если указано имя файла, то и в файл (в том же формате как в командной строке). Из этого файла можно и писать в контроллер (тем более, что техника чтения из файла в таком формате у Вас уже используется для конфигурации выводов).
Да, про это ограничение 10 кГц я уже кому-то тоже писал. С LPT врядли реально. С FT2232 может и получиться, так как есть буфер в микросхеме. Нужно думать и пробовать, но для этого нужно совсем свободное время 🙂
А вот про fuses хорошо, что напомнили. Давно пора сделать ключ уровня болтливости (и заодно уйти от случайно проскочившего %, который в батниках приходится набирать как %%) и по умолчанию поставить уровень, на котором распечатка fuses не делается. Ну и про файл для fuses тоже подумаю.
Да, действительно, Вы уже отвечали на вопрос о xMega, причём не раз, извините (а вопрос в FAQ, однозначно). Первый раз Вас спрашивали непосредственно о xMega (тут попробую, можно ли вставлять в текст ссылки – тынц) (http://real.kiev.ua/avreal/comment-page-1/#comment-102), где Вы писали и о 10кГц и об отключающей паузе в 100мкс, делающей проблематичным программирование через параллельный порт из-за непредсказуемых пауз во время исполнения программы. Я же инфу об этой прекрасной особенности нашёл в доке на xMega только после Вашего ответа на мой первый комментарий, когда Вы не проявили интереса к этой теме. 😉
Второй раз Вы упомянули об этом в ответе на вопрос о ATtiny4/5/9/10 (http://real.kiev.ua/avreal/comment-page-2/#comment-30413). В доку ATtiny4/5/9/10 я тоже заглянул, но временнЫх ограничений что-то не нашёл. Хотя формат похож, но для перевода в/из режима программирования в tiny используется отдельный сигнал сброса, в то время как в xMega этот сигнал совмещён с тактовым сигналом (поэтому, очевидно, разработчики были вынуждены ввести ограничения на длительность такта). Так что работа с ATtiny4/5/9/10 через LPT вполне возможна, на мой взгляд.
Самая же сложная (а, стало быть, и самая интересная) ситуация, конечно, с xMega. Но даже с ней, по-моему, не всё так безнадёжно: ведь, хотя невозможно предсказать момент времени увеличения продолжительности тактового импульса, померить-то его длительность мы всегда можем, используя хотя бы счётчик тактов в писюгане (команда RDTSC), а, следовательно, можем узнать, была ли у контроллера возможность выпасть из режима программирования. Если была, то входим заново, а если нет – продолжаем, собственно, шить (т.е., если нельзя предотвратить сбой, то можно попробовать написать обработчик сбоя). Система тормозит не так часто, так что, “думаю, прокатит”. 😉
Возникает, конечно, ряд интересных вопросов, например: допишет ли контроллер заданную страницу, если сбой по длительности такта возникнет уже во время опроса флага готовности, ну и т.д.
В Xmega-х сбойную страницу практически наверняка придётся пере-(до-)писывать.
Да, по tiny4..10/20/40 я позже прочитал внимательнее и увидел, что ограничения нет, что упрощает дело.
Камушки довольно интересные, жаль только, нет ни EEPROM, ни возможности самопрограммирования для его эмуляции 🙁 (это опять к вопросу о моём интересе 😉 ).
Но, опять таки, «спасибо, что напомнили».
Да, камешки ATtiny4–20 неплохие, особенно в SOT-23, но, видно, староваты – ядро 12МГц, усечённый набор команд (да и Ваш программатор их почему-то не поддерживает ;)) Поэтому предпочитаю более поздние, ATtiny13, например: 20МГц, EEPROM, SPI, 6 выводов, корпус 10-QFN 3мм.
Сбойную, т.е. недозалитую или без заданной команды записи – понятно, что надо. А вот что будет с уже залитой в буфер, когда уже дана команда записи и сбой по такту случится во время опроса флага FBUSY?
Впрочем, есть гораздо более интересный вопрос, а именно: что конкретно случится при растяжке такта системой? Ведь такт может быть заморожен как в низком, так и в высоком состоянии по произвольному выбору родной Системы. Будем считать хорошим случаем, если такт замёрзнет в низком состоянии – ведь это активный уровень для входа сброса. А вот что произойдёт, если такт замёрзнет при высоком уровне? Очевидно, что контроллер вывалится из режима программирования, дальше, видимо, сработает задержка внутреннего сброса (раз сигнал сброса неактивен) и контроллер начнёт исполнять недозалитый код (со всеми вытекающими из этого волшебного случая весёлыми последствиями ;)) Тормознуть система может и на сотни миллисекунд, так что времени хорошенько “взлохматить бабушку” у контроллера будет предостаточно 😉
Т.е., вообще говоря, очень желательно, чтобы волшебного случая с высоким уровнем мёрзлого такта никогда не возникало и подключать напрямую xMega к LPT, возможно, несовсем правильно, правильно? 😉
Тем более, что и сам Атмел учит нас в своём Канонiчном Труде под названием
![](http://www.pixshock.net/pic_b/9f32f07458d856ae8a1f426f9a8c1980.gif)
“Как вам обустроить нашу xMega”“AVR1612: PDI programming driver” как подключать xMega к тому же контроллеру AT90USB1287 (посмотреть можно на стр.3 Труда):Так почему же нам, кустарям, не поддержать это славное начинание профессионалов примерно такой непостижимой сложности схемкой:
![](http://www.pixshock.net/pic_b/3a4d98c2f0aee3340187fdf3f4df1618.gif)
При замерзании такта в состоянии “1” конденсатор C1 просто разрядится через резистор R4, который достаточно мал для того, чтобы на выводе сброса установился уровень с делителя внутренний pull-up резистор (25k) и R4 (2k0) примерно 0.1Vcc при пороге срабатывания по сбросу 0.5Vcc – и контроллер не выйдет из состояния сброса 😉
Вместе с тем, R4 достаточно велик для того, чтобы не шунтировать такты с токоограничивающего R3. Исходя из его сопротивления прикидываем примерное значение ёмкости – примем постоянную времени цепочки R4C1 равной примерно 500мкс (с запасом) и получим
t=R*C
C=t/R
C=5*10-4/2*103=2.5*10-7 – примерно 0,22мкФ – “думаю, прокатит” и 0,1мкФ 😉
У меня и так по всем сигнальным проводам Вашего программатора стоят последовательные резисторы 300 Ом, так что для программирования xMega мне осталось сделать небольшой переходник с папой на 6 и мамой на 4 контакта, двумя детальками C1 и R4, и соединёнными проводами MOSI/MISO – и железо готово 😉
Остаётся только один вопрос: Вы будете допиливать Ваш программатор или мне попробовать наваять что-то своё? Уж очень охота мне продолжать невозбранно троллить коллег, показывая в ответ на их вопрос “каким программатором пользуешься” шлейф о шести проводках и пустой разъём 😉
Еле долез до ответа.
Tiny 4..10,20,40 как раз новые и кое-что интересное в них сделано. Tiny10 перекрыла номер старой Tiny10, которая была совсем не такой.
При сбое (сбросе) после команды старта записи но до окончания страница останется недописанной, я бы её записал заново поверх.
Принудительный увод замёрзшего такта в 0 — да, похоже, так и надо сделать. А резистор R1 (MOSI – PDI DATA) увеличить, так как выходу PDI DATA его надо будет пересиливать.
На последний вопрос ответить тяжелее. Точнее, на вопрос «когда?», который неизбежно последует за попыткой ответить «буду».
Тут вот хорошо перебрать все варианты работы с новыми ключами -i, подвигать уровни разных собщений — и то времени нет 😉
Ну начну я потихоньку в перерывы смотреть (сначала tiny10, видимо), но как быстро дело продвигаться будет — не знаю.
По поводу недописанной страницы: возможно, что контроллер допишет страницу – это имеет смысл проверить (тем более, что это несложно) т.к. перезапись увеличит время работы программатора, а, стало быть, и вероятность появления тормозов.
По поводу R1: да, пожалуй, сопротивление маловато, но такое значение взято из атмеловской доки, что видно на первой картинке. “И что, блин, характерно”: при номинальном для xMega Vcc=3.3V ток через резистор k22 будет 15mA, т.е. ровно 3/4 Imax выхода, так что пересилит без проблем. Единственное, что при питании от маломощного источника, вроде выходов LPT, может быть просадка по питанию (что, на мой взгляд, не повлияет на заливку, т.к. контроллер гарантированно работает даже при 1,6В). Впрочем, R1 вполне можно и увеличить, мы же не можем отключать выходы порта, как можно отключать передатчик отдельно от приёмника в контроллере (видимо, что в схеме из атмеловского букваря резисторы стоят на случай нештатных разноуровневых сигналов на выходах контроллеров).
По поводу ключей “i” – можно ввести подключи для progress bar & fuses, и тогда сам пользователь будет решать, нужны ли они – это уменьшит количество уровней и заморочки с их выбором.
Ну а то, что Вы решили таки допилить программатор (благоразумно начав с tiny10) очень хорошая новость – мы все с нетерпением будем ждать вариант с xMega и с удовольствием его тестировать :). А затем Вас поджидает уже и 32-разрядный монстр AT32, правда, уже с асинхронным интерфейсом ;).
Может допишет, может и нет. В процессе отладки можно поэкспериментировать, нарочно убирая такт после разной задержки.
В атмеловской доке могло иметься ввиду, что программирующий чип перед переходом на приём переводит ножку на вход (если снять TXEN, то ножка начинает/продолжает управляться DDR-ом). А резистор так, на всякий случай.
Двунаправленная нога DebugWire точно не тянет такие токи, там и 1 килоом уже маловат. По крайней мере, avrdragon не воспринимал ответ.
p.s[0] = “Возможно, у движка разные права по тегам для просто зашедших, зарегистрированных, а то и в админке. Так как в режиме управления комментариями редактирование дало и sup вставить, и img.”
p.s[1] = “Подзадержался с ответом, но было совсем не до этого.”
Благодарю за исправления в моём посте. А здешний движок действительно весёлый: мало того, что он не все теги воспринимает, так ещё у него, видимо, есть ограничение на вложенность ответов: я уже второй раз отвечаю Вам, хотя движок не предоставляет такой возможности: под Вашими последними двумя постами просто нет ссылки “Reply” 😉
По поводу дописывания страницы: возможно, эксперименты тут вообще не понадобятся – есть одна идея 😉
Про ногу DebugWire: она и не должна тянуть низкоомную нагрузку. Вот что сказано в доке по этому поводу: “Pull-up resistors on the dW/(RESET) line must not be smaller than 10kOhm. The pull-up resistor is not required for debugWIRE functionality.”
Впрочем, в xMega этот интерфейс не используется. А вот выходные характеристики на PDI_DATA я в букварях что-то так и не нашёл – то ли проглядел, то ли они не отличаются от характеристик обычных линий ввода/вывода.
На днях я наваял небольшую прожку для оценки частоты и длительности подмерзания системы. Исходил я из того, что для программирования xMega нужно временнОе окно между двумя тормозами более 80 мкс (с запасом) такой длительности, чтобы можно было залить страницу и дождаться подтверждения её записи. Длительность окон измерялась в тактах параллельного порта, работающего на максимальной скорости (в xMega, вроде, нет привязки к частоте тактов контроллера).
Необходимое для заливки одной страницы количество тактов можно вычислить, исходя из того, что страница в xMega равна 256 байт, а для передачи одного байта используется 12 бит, отсюда получаем: 256*12=3072 такта + необходимые команды, итого с запасом 3500 тактов + 4мс на запись во флэш.
Результаты не очень оптимистичные. Если под 98-ми форточками есть довольно много достаточно длинных временнЫх окон, в которые ещё можно просунуть страницу и опросить флаг занятости для её записи, то под ХРюшкой всё гораздо хуже – окна слишком короткие. Впрочем, всё ещё зависит от используемого железа – чем быстрее порт, тем лучше (в разумных пределах, конечно – сигналы ещё надо пропихнуть до контроллера).
В общем, на мой взгляд, если даже на каких-то компах и осях, возможно, и прокатит, то в целом овчинка не стоит выделки.
И тут настало время вернуться к вышеозначенной идее. Почему бы не сделать небольшой адаптер-переходник, преобразующий SPI-интерфейс Вашего программатора в PDI-сигналы xMega. Причём, здесь не надо AT90USB128 – достаточно будет какой-нибудь mega48 или даже tiny2313. Всё, что ему надо делать – это принимать данные по SPI и отправлять по uSart и обратно. А если писюган тормознёт – тупо передавать в xMega IDLE. Этот же адаптер можно будет использовать и для AT32.
Здравствуйте, интересует возможность записать прошивку Raw binary с определенного адреса, поддерживается ли такой данный режим?
(пока) нет.
В выходные (воскресенье-понедельник) подумаю. Как ключ офоримть 🙂
:bin:filename:offset
для линукса-то без проблем, двоеточие часто прмиеняемый разделитель. В win двоеточие в пути легко может оказаться.Может,
:bin+offset:filename
?Напрмиер,
:bin+EF00:filename
.Хотя я сторонник применения чего-то типа srecord для конверсии файлов, в том числе с двиганьем туда-сюда, а программатор только чтобы шил.
Как-от так:
И уже файл bf.hex скормить avreal-у.
Может, освоитесь с заталкиванием srec_cat в командные файлы / Makefile и не стоит нагружать программатор «несвойственными ему функциями, подменяя собой» утилиту манипулирования файлами прошивок?
Спасибо, за подсказку попробую разобраться c srecord – не знал, что такие программы существуют. Действительно случай специфичный и мало кому требуется, поэтому Makefile хороший выход.
Не могу запрограммировать MEGA32 с USB-программатора MegaJohn на двух разных машинах с Windows7/x64. На машинах с х32 работает прекрасно. Пользуюсь AVReal уже много лет (в том числе совместно с MegaJohn тоже очень давно).
Вот что он пишет:
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r11 (Jun 22 2012 23:30:09) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+MEGA32 -aft2232:enable=~adbus4,~acbus2 – -az -o11.0592MHz -e -w -v -cRelease\exe\code.hex -dRelease\exe\eeprom.hex
Start address record in HEX file ignored
Start address record in HEX file ignored
Adapter enabled
Device connected, mega32|mega32A detected
Chip not locked
Device erased
Device connected, mega32|mega32A detected
Fuses
OSCCALs = B3 B2 AE AF
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0x3F
BODLEVEL = 0
BODEN = 0
SUT = 3
CKSEL = F
_HIGH = 0xCA
OCDEN = 1
JTAGEN = 1
CKOPT = 0
EESAVE = 1
BOOTSZ = 1
BOOTRST = 0
Programming CODE memory
…………………………………….. done (1.50s)
Verifying CODE memory
Synchronisation lost
FAILED
Reset pin released
Adapter disabled
FTDI chip left in MPSSE mode with programming pins configured as inputs
Странно…
Это ж не LPT, у которого из-за использования сейчас 32-битной dll в 64-битных меняются времена и может проявляться их нестабильность. Для FT2232 частота работы от разрядности ОС зависеть не должна, откуда ж тогда этот sync lost ?
Я проверял перед выкладыванием релиза, но на atmega168. В выходные опять подброшу диск со всеми вариантами ОС к компьютеру и проверю для mega8 и mega64 (mega32 у меня нет под рукой).
Правда, у меня нет MegaJohn-овского адаптера, но между записью и чтением не произваодится передёргивания reset, так что работа не должна отличаться от других адаптеров.
p.s. Попробуйте еще раздельно двумя вызовами, -e -w и -v раздельно.
Раздельно тоже не получается. Я попробовал другую прошивку на ATmega64. Та же самая песня, даже ещё хуже – программирование даже не начинается, сразу Can’t resync. Что бы это значило?
Пишет вот что:
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r11 (Jun 22 2012 23:30:09) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+MEGA64 -aft2232:enable=~adbus4,~acbus2 -az -o11.0592MHz -e -w -cRelease\exe\code.hex -dRelease\exe\eeprom.hex
Start address record in HEX file ignored
Adapter enabled
Can’t resync
FAILED
Reset pin released
Adapter disabled
FTDI chip left in MPSSE mode with programming pins configured as inputs
Прошу помощи!
С уважением, Сергей
А пришлите-ка мне эту прошивку, которая даже не стартует, mega64 у меня таки есть.
И туда же в почту развёрнутый лог с -%%, там сразу будут всякие подробности типа версии библиотеки/драйвера.
И какая версия Win7.
Странно как-то это всё.
Попробовал с другими кабелями, с другим питанием на том же MegaJone – получилось запрограммировать ATmega64 через Win7/x64.
Причём на х86 всё работало по-любому: и с разными вариантами питания и с разными кабелями и с разными MegaJohnами.
Видимо какие-то критичные задержки так проявляются.
Даже не знаю, радоваться или огорчаться, будет ли это работать стабильно? Завтра буду тестировать дальше.
Не долго музыка играла! Запрограммировать под х64 получилось только без верификации (-v). Как только дописываю -v, сразу снова Syncronisation lost. Привет…
Добился похожего эффекта у себя в Ubuntu 🙂 Хотя он может быть похожим только внешне несмотря на то, что под Win7/64 описанные ниже действия дали такой же эффект.
Дома нашлась плата с atmega64 на внутреннем RC 8 МГц (нет даже места под кварц).
Два адаптера — на FT2232H с быстрыми и мощными буферами (74LVC1G125) и на FT2232C без буферов и даже без EEPROM (т.е. негде прописать включение б́о́льшего тока выходов).
С ключом -os2MHZ адаптер с буферами уверенно шьёт и верифицирует. Адаптер без буферов при питании контроллера и IO адаптера 3.3 V успевает на верификации выдать несколько точек до Synchronisation lost, при питании 5 V ситуация точно как у Вас в логе.
Для тактирования ядра 8 МГц частота SPI 2 МГц на грани даже без учета того, что RC может и занизить частоту. Завалы фронтов на адаптере без буферов повлияли.
С ключом -o8MHz и адаптер без буферов уверенно работает. Дело в том, что ключ -os задаёт желаемую частоту SCK (выбирается наибольшая возможная из сетки, не превышающая заданную), а -o задаёт частоту тактирования контроллера, от которой сначала берётся запас -5% на возможное работу от внутреннего RC с отклонением частоты, только потом делается рассчёт по документации (делится на 4 для atmega64). В итоге при ключе -o8MHZ на FT2232C устанавливается частота SCK 1.5 МГц
Похоже, подтверждается правило «проблемы с прошивкой — попробуй снизить частоту» 🙂
В Вашем случае запас по частоте большой (11 МГц тактирование процессора и 2 МГц SPI), но всё же…
На компьютерах с 64-битной Win7 использовались физически те же адаптеры и кабели, что и на 32-битной?
Или где-то проскочили изоляторы ADuM с другой буквой (ниже рабочая частота), шлейф длиннее, …
p.s. Изменение в программе размера порции на чтении (-r, -v) не влияет на потерю синхронизации при частоте на грани. Хоть по одному байту читать.
Отвечаю на вопрос: На компьютерах с 64-битной Win7 использовались физически те же адаптеры и кабели, что и на 32-битной!
И вообще, это то же самое устройство (было изготовлено в составе партии программаторов для предприятия), а не подобное внешне, но с другими примочками.
Эх…
«Будем искать…»™
Наконец-то смог сесть и погонять это дело ещё.
Итак: плата с atmega64-16 и панелькой под кварц, диск с мультизагрузкой XP/32, XP/64, W7/32, W7/64. Два разных программатора на FT2232C, один из них простейший, как на страничке «адаптеры», другой буферизованный 74VHC244.
Вот такие батники для вызова avreal:
tests_m64.bat
for %%x in (8 9.14 10 12 14.74) do (
echo insert %%xMHz XTAL and press any key >&2
pause >nul
echo.
echo ==================================================
echo ==== XTAL = %%xMHz
echo.
for %%f in (1MHZ 1.5MHZ 2MHZ 3MHZ) do (
echo -os%%f >&2
call test.bat %1 mega64 code.hex %%f
call test.bat %1 mega64 m64.hex %%f
)
)
test.bat
@echo ---- Programming %2 with %3 by %~1 -os%4
@%~1 +%2 -e -w -v %3 -os%4
@echo ----
@echo.
@echo.
Первому батнику подсовывалась аргументом нужная версия avreal с ключами для выбранной платы и вывод перенаправлялся в соответствующий файл:
tests_m64 "call avreal-denis.bat" >w7-64-denis.log
В основном проверялась версия 1.28r11.
Батник просил менять кварцы (сетку видно в батнике) и вызывал второй батник с нужными параметрами, перебирая частоты SPI и чередуя два разных файла. 11.059 у меня не было, но это, думаю, не так важно при наличии от 9 до 12.
Вышло больше трёхсот килобайт логов 🙂
Отдельно попробовал программатор на FT2232H:
ATmega64-16 с кварцем 16 MHz и -os3.75MHz
ATmega168-20 с кварцем 20 MHz и -os5MHz, -os4.3MHz
Итог — у меня отличий между ОС не выявлено. Что а старушке WinXP/32, что в Win7/64 — поведение соответствует ожидаемому. При пограничных комбинациях (кварц 8 MHz и -os2MHz, кварц 12 MHz и -o3MHz, кварц 20 MHz и -o5MHz) синхронизация теряется. Да, при этом чаще срывается на верификации, чем на программировании, но это хоть и любопытно, но не настолько интересно, чтобы тратить сейчас на это время. Там на разбегах кварцев что угодно может быть.
При снижении частоты SPI относительно кварца, например, при тактировании 9.14 МГц и SPI 2 MHz ничего не сбоит (у Вас сбоило при 11.059 MHz и 2 MHz).
Самое противное, что я пока не могу придумать, какие можно сделать тесты в программе, чтобы выслать её Вам для дополнительных проверок 🙁
how can I read/write fuse bit or flash data only?
I’m trying to write a windows GUI client for AVReAl. it’s free same as AVReAl, LOL.
Fuses are read at any avreal call but reported as text to stdout only:
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-aft2232h=avreal-f32ha_a.cfg +mega64
Device connected, mega64|mega64A detected
Chip not locked
Fuses
OSCCALs = C0 C0 B9 B9
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0x94
BODLEVEL = 1
BODEN = 0
SUT = 1
CKSEL = 4
_HIGH = 0xD1
OCDEN = 1
JTAGEN = 1
CKOPT = 1
EESAVE = 0
BOOTSZ = 0
BOOTRST = 1
_EXT = 0xFF
M103C = 1
WDTON = 1
Total time 0.36s
All OK
There is no way to write fuses state into file in hex or binary form now.
Command
will write fuses only, no acces to flash/eeprom even for reading. Fuse state reported twice, first for fuse state before programming, second — after one:
v1.28r11 (Jun 22 2012 22:46:27) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-aft2232h=avreal-f32ha_a.cfg +mega64 -fboden=1 -w
Adapter enabled
Device connected, mega64|mega64A detected
Chip not locked
Fuses
OSCCALs = C0 C0 B9 B9
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0x94
BODLEVEL = 1
BODEN = 0
SUT = 1
CKSEL = 4
_HIGH = 0xD1
OCDEN = 1
JTAGEN = 1
CKOPT = 1
EESAVE = 0
BOOTSZ = 0
BOOTRST = 1
_EXT = 0xFF
M103C = 1
WDTON = 1
Programming fuses
New fuses value
OSCCALs = C0 C0 B9 B9
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0xD4
BODLEVEL = 1
BODEN = 1
SUT = 1
CKSEL = 4
_HIGH = 0xD1
OCDEN = 1
JTAGEN = 1
CKOPT = 1
EESAVE = 0
BOOTSZ = 0
BOOTRST = 1
_EXT = 0xFF
M103C = 1
WDTON = 1
Total time 0.41s
All OK
Reset pin released
Adapter disabled
Flash or EEPROM can be read/write separately using -c and -d switches for files.
For flash:
For eeprom:
Thank a lot.
here is two screen shot. it just is begining.
https://sites.google.com/site/myeaglecad/avreal_wingui/2012-07-05%2000%2006%2031.jpg
https://sites.google.com/site/myeaglecad/avreal_wingui/2012-07-05%2000%2007%2023.jpg
btw, I have a few FT232BM, is it can be use as FT232H to program AVR chip?
> here is two screen shot. it just is begining.
Cool 🙂
> I have a few FT232BM, is it can be use as FT232H to program AVR chip?
No, FT232BM has neither MPSSE (like FT2232*, FT232H — usable by avreal) nor synchronous bitbang (like FT2232*, FT232H, FT232R — usable by avrdude) support.
FT232BM can be used only as “COM-port control lines bit-bang programmer” but it is very sloooooow for any USB-to-serail converter beacuse of 1ms USB tick.
btw, fuse reading by
eventually resets chip and can be used as “remote reset button”.
I am sorry, your comment was blocked by spam filter and through inattention I wiped the comment instead of unblock it.
About spaces:
In command line all spaces in full program name and in arguments must be quoted by double-quote character otherwise they will be splitted by spaces on multiple “words”. This is common command processor feature.
Example
It is safe to quote all arguments either with spaces or not.
Please, repeat the rest of the lost post 🙂
Добрый День.Возникла проблема по использованию avreal32 в WIN7-64bit, программатор alterabb LPT.В консоли пишет что BB не найден, хотя под XP-32bit на этом же компьютере все работает. Драйвера(dlportIO-64) устанавливал как написано было в тхт файле архива(в консоли пишет что файлы драйвера найдены и подгружены). Скажите в чем может быть проблема. Заранее спасибо.
На диске, назначенном для экспериментов, восстановил из образа раздел с чистой Win7/64 Pro sp1 build 7601.
Чего-то свежее нет, я и этот диск к компьютеру подключаю раз в пол года.
Для полной уверенности взял архив с сайта и пошагово провёл инсталляцию: подписал драйвер, включил тестовый режим, запустил bat-файл.
Перегрузился.
В правом нижнем углу экрана появилась надпись
Т.е. тестовый режим программа dseo включила.
avreal на набортном LPT1 заработал, а PCI-LPT в этот компьютер не становится, материнская плата маленькая, видеокарта перекрыла вентилятором гнездо PCI.
Посмотрите по надписи в углу — включился ли режим тестовых подписей.
Если у Вас PCI карта — возможно, в Win7 она получила другой адрес, хотя на том же компьютере должна бы тот же.
И в тестовом режиме пробовал через dseo пробовал ниче не помогает. Драйвера подгружает а BB так и не находит. LPT порт у меня встроен в материнку, по стандартному адресу 0x378
Странно.
Драйвер и библиотека сели в свои каталоги, Windows\system32\drivers и Windows\SysWOW64 соответственно? Проверьте родным файловым менеджером, он в 64-битном режиме работает. Программам в 32-битном режиме подстановка делается: вместо Windows\system32 они видят Windows\SysWOW64, поэтому-то и инсталляционный батник запускать нужно в 64-битном режиме.
В dseo нужно выполнить две операции — подписать драйвер и установить тестовый режим. Win по дороге поругивается, но на это нужно не обращать внимания.
После перезагрузки (без F8, обычная перезагрузка) в правом нижнем углу десктопа должна появиться надпись TestMode.
После этого и в первых Win7/64, и с sp1 всё работало.
p.s. Почему-то Ваши сообщения попадают сразу аж в спам-отстойник. Возможно, IP где-то неудачно засветился.
Повторил всю процедуру установки драйвера заново, заработало, но только в тестовом режиме, в обычном таже проблема.
Если режим тестовых подписей не включен (через dseo или при загрузке), оно и не должно работать.
Для обычного режима подпись нужно у микрософта покупать, они проверят драйвер на своих тестах на совместимость и выдадут постоянную подпись.
Кстати, тестовый режим можно включать-выключать и без dseo, она нужна, фактически, только для подписи.
А тестовый режим можно из командной строки (батником) имеющимися средствами Win7
Включить тестовый режим:
Соответственно, выключить:
После чего перегрузиться.
Всё никак не доберусь добавить в архив командные файлы для этого.
Здравствуйте!!!
Пытаемся попользоваться устройством “FT2232H Mini Module”
Дрова встали,прогамму обновили.Но не работает.
Обнаружился странный эфект.При попытке прошить “avreal32 -a +mega8 -o100 -e”
выдается сообщение “Can’t resync”.
Причем при подкюченном устройстве и без оного.
В чем проблема.
Спасибо!!
Проблема в том, что avreal почему-то на «голый» ключ -a не выругался, что адаптер не указан 🙂
Просто включился в режим FBPRG, полез на LPT2, … Это все было бы видно при наличии ключа расширенной выдачи -% (-%% для bat-файлов).
Для FT2232H надо указать -aft2232h. В зависимости от остального могут понадобиться уточнения, чтобы для работа avreal с MPSSE-режимом была успешной.
Здравствуйте!!!
Спаибо за ответ.
Мы это пробовали. Результат такой.
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r10 (Apr 29 2012 12:24:52) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avrеal@reаl.kiev.ua
Command:
-aft2232h -p?
2 FTDI devices detected
0: FT_DEVICE_2232H (0x6) – “FT2232H MiniModule A”, serno “FTUFEUT4A”
1: FT_DEVICE_2232H (0x6) – “FT2232H MiniModule B”, serno “FTUFEUT4B”
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r10 (Apr 29 2012 12:24:52) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to аvreal@real.kiev.uа
Command:
-aft2232h +mega8 -o100 -e
Can’t open FTDI device with description “Dual RS232-HS A” (FT_DEVICE_NOT_FOUND)
Для продолжения нажмите любую клавишу . . .
Ну так у этого модуля прошита EEPROM-ка, заменено описание по умолчанию для FT2232H. А avreal без специального указания использует именно значение по умолчанию
"Dual RS232-HS A"
.Вам нужно указать либо описание:
либо серийный номер:
Это для канала A, для канала B соответственно буква B в конце.
Если у вас таких модулей несколько и к компьютеру они могут подключаться по очереди (какой ухватил, такой и подключил), то лучше в командном файле указать
-pd="FT2232H MiniModule A"
. Будет работать с любой платой.Если оба подключены одновременно и нужно обращаться к конкретному модулю по выбору, то указывать серийный номер.
Спасибо!!!
Все заработало.
Здравствуйте! Только начал знакомство с AVR, пока плохо понимаю, что к чему. Спаял байтбластер по Вашей схеме, но очень захотелось запитывать его и МК от LPT, чтобы избежать лишних проводов, удлинителей, разъемов и т.д. В итоге из схемы выкинул r2, r3, освободив 13 вывод LPT SELECT, и с него через диод рассчитываю подавать питание на схему. Но только после того, как развел печатку и собрал в неразборный корпус!!))), прочитал, что с ключом -ab команда -am:pinmap работать не будет…
Написал конфиг:
mosi = D6
miso = BUSY
sck = D0
reset = D1
power = SELECT
enable = ALF
xtal = D3
Конечно, ничё не работает))) И я понимаю, что ещё куча ног припаяна, которые, видимо тоже должны быть в конфиге. Могу ли я просить у Вас конфигурационный файл для байтбластера, чтобы я мог его подредактировать под свою плату? Или совета, что именно прописывать в файле? Спасибо
При использовании конфига пишет:
power on
adapter enabled
can’t resync
reset pin released
adapter disabled
power off
При этом на пине13 select на включения-выключения питание остается на уровне 2,3V, даже не шелохнется
Светодиоды светятся оба всегда
При запитывании платы снаружи (от 5V компа) с ключом -ab пишет, что байтбластер не найден. ЧЯДНТ? Неужели этот select и 7 вывод разъема ISP, которые not connected, участвуют в процессе? P.S. Диоды стоят шоттки, один как на Вашей схеме, второй анодом к SELECT, катодом к аноду первого.
Во-первых, внутренние инверсии в порту LPT учитываются автоматически, а внешние надо указывать. Для шинника сигнал выборки с активным нулём, т.е. в положительной логике («1» это высокий уровень напряжения) вход инверсный.
Соответственно, строка с enable должна выглядеть так:
Во вторых, ножка 13 SELECT — вход LPT. На мой взгляд, правильнее её было бы назвать SELECTED — принтер сигнализирует, что он выбран. Ну уж как назвали, так назвали.
Выход — ножка 17 SELECT IN (вход принтера, выход LPT).
На входе SELECT подтяжка к питанию, вместе с байтбластером и его светодиодами а также с подтяжками на остальных входах баланс 2,3 В и установился.
Для питания можно взять несколько выходов LPT, например, 4 (D2), 6 (D4), можно и уже упомянутую 17-ю.
Диод VD3 на схеме байтбластера при этом не нужен вообще, он как раз защищает плату от запитки со стороны LPT через байт-бластер (через резисторы подтяжки на входах LPT и защитные диоды на выходах 74HC244 а также через защитные диоды на входах шинника).
Так что те два диода шоттки переставьте анодами к 4 и 6 ногам разъёма LPT, катодами вместе на VCC шинника и на микроконтроллер. В конфиг-файл добавьте
Если плата с микроконтроллером не слишком много потребляет, то двух выводов должно хватать на практически любом компъютере.
Огромное спасибо за развернутый ответ! Буду переделывать…
Намагаюся прочитать мегу8535. Windows XP.
K:\Documents and Settings\Admin\Рабочий стол\avreal-1.28r10-win32>avreal32.exe +
MEGA8 -pd=”Dual RS232 A” -aft2232 -o4MHz -r flash.hex -%
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r10 (Apr 29 2012 12:24:52) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+MEGA8 “-pd=Dual RS232 A” -aft2232 -o4MHz -r flash.hex -%
% ‘ftd2xx.dll’ successfully loaded, version 3.2.7
% FTDI driver version 2.8.24
% FT2232 MPSSE SPI adapter created, SCK frequency 0.86MHz
% Reset
% PgmOn reply 00 00 00 00
% Try to resync by reset pulse % PgmOn reply 00 00 00 00
% Try 1 to resync by SCK pulse % PgmOn reply 00 00 00 00
% Try 2 to resync by SCK pulse % PgmOn reply 00 00 00 00
…
% Try 31 to resync by SCK pulse % PgmOn reply 00 00 00 00
% Try 32 to resync by SCK pulse % PgmOn reply 00 00 00 00
Can’t resync
Reset pin released
K:\Documents and Settings\Admin\Рабочий стол\avreal-1.28r10-win32>pause
В чому помилка? Як правильно встановити драйвера? Можливо в цьому помилка
Драйвери стоять нормально, бо обмін з FTDI йде.
По якій схемі зібрано адаптер, як підключено мікроконтролер?
Здравствуйте!
Планируется ли добавление поддержки программаторов AVR основанных на soft-USB (например USBtinyISP, USBasp) и COM (например AVR910)?
С уважением,
Сергей.
Где-то вблизи планов болтается поддержка протокола STK500v2. Для плат с AVR910 в имени вроде бы бывают альтернативные прошивки с поддержкой этого протокола.
Сожалею, но болтается с довольно низким приоритетом.
подскажите пж, как можно прошивать банальную епром (24с04 например) через адаптер на FT232. никогда с прошивкой МК не сталкивался, а сам адаптер есть в наличии. хотелось бы задействовать.
Увы, AVReAl не работает c I2C EEPROM.
У меня не возникало потребности программировать такую память «автономно», всю работу делает микроконтроллер в системе.
Здравствуйте!
Подскажите, пожалуйста, если возможность установить линию RESET (adbus3 микросхемы FT2232) в статическое инверсное положение. А то барахлит программатор, а я не могу найти где ошибка. 🙁
Можно, но только на время программирования. Т.е. по окончании программирование вывод перейдёт в состояние по умолчанию, либо, при использовании ключа -az, в состояние входа с высокоомной подтяжкой к питанию.
Для установки выводов в заданное состояние на время программирования служит конфигурационная запись SET. Для установки вывода ADBUS3 в “0” следует добавить запись SET=~ADBUS3. Но при этом нужно разместить сигнал RESET на каком-то другом выводе, чтобы он не был неопределён.
Извините, может я не так выразился микроконтроллер сбрасывается логической 1 (между программатором и контроллером стоит инвертор). Посмотрите, пожалуйста несколько отчетов.
D:\avr\avreal>d:\avr\avreal\avreal.exe +MEGA128 “-pd=Dual RS232 A” -% -aft2232:
SET=~adbus3: RESET=adbus4 -r -dinam.hex
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r8 (Aug 13 2011 12:11:23) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+MEGA128 “-pd=Dual RS232 A” -% -aft2232:SET=~adbus3: RESET=adbus4 -r -dinam.hex
% ‘ftd2xx.dll’ successfully loaded, version 3.2.4
% FTDI driver version 2.8.14
% FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
% Reset
% PgmOn reply FF FF FF FF
% Try 1 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 2 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 3 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 4 to resync by reset pulse % PgmOn reply FF FF FF FF
Can’t resync
Reset pin released
Команда, которая по аналогии должна устанавливать 1 на выходе adbus3 (reset МК), приводит к такой же ошибке.
D:\avr\avreal>d:\avr\avreal\avreal.exe +MEGA128 “-pd=Dual RS232 A” -% -aft2232:
SET=adbus3: RESET=adbus4 -r -dinam.hex
Однако, если переставить тот же микроконтроллер в плату без инвертора на RESET, он отлично читается как с конфигураций -aft2232:SET=adbus3, так и -aft2232:SET=~adbus3
+MEGA128 "-pd=Dual RS232 A" -% -aft2232:SET=adbus3: RESET=adbus4 -r -dinam.hex
% 'ftd2xx.dll' successfully loaded, version 3.2.4
% FTDI driver version 2.8.14
% FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
% Reset
% PgmOn reply FF FF 53 00
% Synchronised after 1 try
% GetID reply 00 30 00 1E
% GetID reply 00 30 00 97
% GetID reply 00 30 00 02
% Read ID: 0x1E9702
Device connected, mega128|mega128A detected
% Read Lock command 58 00 00 00, reply 00 58 00 FF
Chip not locked
% Read Osccal command 38 00 00 00, reply 00 38 00 B5
% Read Osccal command 38 00 01 00, reply 00 38 00 B5
% Read Osccal command 38 00 02 00, reply 00 38 00 AF
% Read Osccal command 38 00 03 00, reply 00 38 00 AF
% Read Fuses command 50 00 00 00, reply 00 50 00 BF
% Read Fuses command 58 00 00 00, reply 00 58 00 FF
% Read Fuses command 58 08 00 00, reply 00 58 08 CF
% Read Fuses command 50 08 00 00, reply 00 50 08 FD
Fuses
OSCCALs = B5 B5 AF AF
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0xBF
BODLEVEL = 1
BODEN = 0
SUT = 3
CKSEL = F
_HIGH = 0xCF
OCDEN = 1
JTAGEN = 1
CKOPT = 0
EESAVE = 1
BOOTSZ = 3
BOOTRST = 1
_EXT = 0xFD
M103C = 0
WDTON = 1
Reading CODE memory
................................................................................
................................................................................
................................................................................
................ done (23.4s)
Reading DATA memory
................................................................................
................................................ done (0.82s)
Total time 24.5s
Reset pin released
И “нормальный” лог чтения без инвертора.
+MEGA128 "-pd=Dual RS232 A" -% -aft2232 -r -dinam.hex
% 'ftd2xx.dll' successfully loaded, version 3.2.4
% FTDI driver version 2.8.14
% FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
% Reset
% PgmOn reply FF FF 53 00
% Synchronised after 1 try
% GetID reply 00 30 00 1E
% GetID reply 00 30 00 97
% GetID reply 00 30 00 02
% Read ID: 0x1E9702
Device connected, mega128|mega128A detected
% Read Lock command 58 00 00 00, reply 00 58 00 FF
Chip not locked
% Read Osccal command 38 00 00 00, reply 00 38 00 B5
% Read Osccal command 38 00 01 00, reply 00 38 00 B5
% Read Osccal command 38 00 02 00, reply 00 38 00 AF
% Read Osccal command 38 00 03 00, reply 00 38 00 AF
% Read Fuses command 50 00 00 00, reply 00 50 00 BF
% Read Fuses command 58 00 00 00, reply 00 58 00 FF
% Read Fuses command 58 08 00 00, reply 00 58 08 CF
% Read Fuses command 50 08 00 00, reply 00 50 08 FD
Fuses
OSCCALs = B5 B5 AF AF
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0xBF
BODLEVEL = 1
BODEN = 0
SUT = 3
CKSEL = F
_HIGH = 0xCF
OCDEN = 1
JTAGEN = 1
CKOPT = 0
EESAVE = 1
BOOTSZ = 3
BOOTRST = 1
_EXT = 0xFD
M103C = 0
WDTON = 1
Reading DATA memory
................................................................................
................................................ done (0.82s)
Total time 1.14s
Reset pin released
Инвертор проверял, если на вход подать высокий уровень, то микроконтроллер уйдет в состояние сброса. В связи с этим появился ещё один вопрос. Можно ли запрограммировать МК, когда при подключении программатора он сброшен? Т.е. нет нужды программно сбрасывать контроллер, запуск программы будет, только при отключенном программатора.
Заранее благодарен.
Я отреагировал на слово «статическое».
Если между выводом adbus3 микросхемы FT2232 и входом микроконтроллера стоит инвертор, то так и нужно писать — «на вход RESET подан проинвертированный выход adbus3»:
Что касается программирования при постоянно «задавленном» сбросе, без управления им от программатора, то успех зависит от начального состояния линии SCK и способа пересинхронизации. Для практически всех AVR у нынешнего avreal может ничего и не получиться по той причине, что он, в отличие от атмеловских же программаторов, строго следует документации от Atmel.
Я как раз сейчас готовлю текст на тему пересинхронизации, собираюсь сегодня опубликовать (а завтра поменять поведение avreal 🙂 ).
upd:
О синхронизации программатора с микроконтроллером.
Увы, проблема остается 🙁
Хотя микроконтроллер точно уходит в сброшенное состояние.
Извините, забыл про новую версию.
Программирование с инвертором:
D:\avr\avreal>d:\avr\avreal\avreal32-1.28r9.exe +MEGA128 -aft2232:reset=~adbus3
“-pd=Dual RS232 A” -% -r -ddinam.hex
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r9 (Dec 20 2011 14:03:41) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+MEGA128 -aft2232:reset=~adbus3 “-pd=Dual RS232 A” -% -r -ddinam.hex
% ‘ftd2xx.dll’ successfully loaded, version 3.2.4
% FTDI driver version 2.8.14
% FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
% Reset
% PgmOn reply FF FF FF FF
% Try to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 1 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 2 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 3 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 4 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 5 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 6 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 7 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 8 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 9 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 10 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 11 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 12 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 13 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 14 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 15 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 16 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 17 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 18 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 19 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 20 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 21 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 22 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 23 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 24 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 25 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 26 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 27 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 28 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 29 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 30 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 31 to resync by SCK pulse % PgmOn reply FF FF FF FF
% Try 32 to resync by SCK pulse % PgmOn reply FF FF FF FF
Can’t resync
Reset pin released
D:\avr\avreal>pause=null
Для продолжения нажмите любую клавишу . . .
Без инвертора:
D:\avr\avreal>d:\avr\avreal\avreal32-1.28r9.exe +MEGA128 -aft2232:reset=adbus3 ”
-pd=Dual RS232 A” -% -r -ddinam.hex
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r9 (Dec 20 2011 14:03:41) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+MEGA128 -aft2232:reset=adbus3 “-pd=Dual RS232 A” -% -r -ddinam.hex
% ‘ftd2xx.dll’ successfully loaded, version 3.2.4
% FTDI driver version 2.8.14
% FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
% Reset
% PgmOn reply FF FF 53 00
% GetID reply 00 30 00 1E
% GetID reply 00 30 00 97
% GetID reply 00 30 00 02
% Read ID: 0x1E9702
Device connected, mega128|mega128A detected
% Read Lock command 58 00 00 00, reply 00 58 00 FF
Chip not locked
% Read Osccal command 38 00 00 00, reply 00 38 00 B5
% Read Osccal command 38 00 01 00, reply 00 38 00 B5
% Read Osccal command 38 00 02 00, reply 00 38 00 AF
% Read Osccal command 38 00 03 00, reply 00 38 00 AF
% Read Fuses command 50 00 00 00, reply 00 50 00 BF
% Read Fuses command 58 00 00 00, reply 00 58 00 FF
% Read Fuses command 58 08 00 00, reply 00 58 08 CF
% Read Fuses command 50 08 00 00, reply 00 50 08 FD
Fuses
OSCCALs = B5 B5 AF AF
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0xBF
BODLEVEL = 1
BODEN = 0
SUT = 3
CKSEL = F
_HIGH = 0xCF
OCDEN = 1
JTAGEN = 1
CKOPT = 0
EESAVE = 1
BOOTSZ = 3
BOOTRST = 1
_EXT = 0xFD
M103C = 0
WDTON = 1
Reading DATA memory
……………………………………………………………………..
………………………………………… done (0.82s)
Total time 1.05s
Reset pin released
D:\avr\avreal>pause=null
Для продолжения нажмите любую клавишу . . .
Проблема была в монтаже кабеля 😀
Теперь всё работает. Спасибо.
«Радиотехника — наука о контактах. Два возможных класса неисправностей — нет контакта там, где он должен быть и есть контакт там, где его не должно быть» 😀
доброго дня!
возник вопрос по файлу конфигурации.
этот вариант :
avreal32-1.28r8.exe +tiny2313 -aft2232h:enable=~dbus4:led_error=~dbus6:led_ok=~dbus7 -az -pd=”Dual RS232-HS B” -o400 -%% -e
прекрасно работает,
а вариант:
avreal32-1.28r8.exe -aft2232h -am=usb.cfg -pd=”Dual RS232-HS B” +tiny2313 -o200 -%% -r -cread2313.hex
usb.cfg:
enable=~dbus4
key=~dbus5
led_error=~dbus6
led_ok=~dbus7
выдает :
% loading config file ‘usb.cfg’
adapter: invalid pin name ‘dbus4’
где я не то не так делаю?
Спасибо!
-am это ключ для произвольного адаптера на LPT-порт.
Конфиг для назначения выводов FT2232* нужно указывать в ключе для FT2232
-aft2232h=usb.cfg
Спасибо! попало между глаз!
благодарю )))
Вот такая проблема возникает в ubuntu 10.10:
~/avreal$ sudo ./avreal -aft2232h +tiny13
avreal/Linux64 – AVR controllers programmer by Redchuk Alexandr
v1.28r8 (Aug 13 2011 12:18:30) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-aft2232h +tiny13
Can’t open FTDI device with description “Dual RS232-HS A” (FT_DEVICE_NOT_OPENED)
При этом lsusb говорит следующее:
Bus 002 Device 003: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0403 Future Technology Devices International, Ltd
idProduct 0x6010 FT2232C Dual USB-UART/FIFO IC
bcdDevice 7.00
iManufacturer 1 FTDI
iProduct 2 Dual RS232-HS
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 55
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2 Dual RS232-HS
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2 Dual RS232-HS
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
Прошу прощения за задержку, вчера вечером увидел вопрос, но до попытки ответа не добрёл.
Странно.
Я такого эффекта (именно FT_DEVICE_NOT_OPENED при подключенном устройстве) смог сейчас добиться только запуском avreal в двух соседних консолях. В одной с прописанной в конфиг-файле кнопкой и просьбой подождать нажатия
avreal/Linux64 - AVR controllers programmer by Redchuk Alexandr
v1.28r8 (Aug 13 2011 12:18:30) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-aft2232h=avreal-f32ha_a.cfg -az -K +tiny13
Press ADAPTER KEY for continue.
Эта копия висит и не отпускает открытое устройство, тогда в другой консоли
avreal/Linux64 - AVR controllers programmer by Redchuk Alexandr
v1.28r8 (Aug 13 2011 12:18:30) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
-aft2232h +tiny13
Can't open FTDI device with description "Dual RS232-HS A" (FT_DEVICE_NOT_OPENED)
Может, какая-то программа держит открытым устройство?
Вернулся к этой теме.
В 32-битной убунте с libftd2xx 1.0.4 именно FT_DEVICE_NOT_OPENED и получается до тех пор, пока руками не снять ftdi_sio
Библиотека версии 0.4.16 обходилась без этого.
Я из-за описанной ранее несовместимости 64-битных libftd2xx версий 0.4.x 1.0.x работаю и в 64-, и в 32-битной с 0.4.16, потому и не получал FT_DEVICE_NOT_OPENED.
Но у Вас-то avreal/Linux64, он должен искать libftd2xx.so.0 и по этому линку работать с libftd2xx.so.0.4.16, которая обходится без убирания модуля ftdi_sio и в обычных условиях FT_DEVICE_NOT_OPENED не выдаёт.
Так что пока непонятно.
При попытке прошить МК Atmega8 программатором STK (проверен, неоднократно им
прошивал) выдает сообщение «Can’t resync». Правильность подключения
неоднократно перепроверена, КЗ отсутствуют. Привожу лог. Сдох МК ? Спасибо.
avreal/Linux64 – AVR controllers programmer by Redchuk Alexandr
v1.28r8 (Aug 13 2011 12:18:30) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to аvreаl@reаl.kiev.uа
Command:
+MEGA8 -p/dev/parport0 -as -n -e -w -v /gamma.hex /gamma.eep -%
% Parallel port `/dev/parport0′ found, ioctl interface activated
% LPT write cycle 1.31us
% Atmel adapter for STK300 found
% STK adapter mode
% MCU oscillator frequency = 0.80MHz
% setup 2.62us, hold 2.62us
% actual SCK frequency 152kHz
Adapter enabled
% Reset
% PgmOn reply FF FF FF FF
% Try 1 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 2 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 3 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 4 to resync by reset pulse % PgmOn reply FF FF FF FF
Can’t resync
Reset pin released
Adapter disabled
Честно говоря, не знаю, что и ответить.
Вы уверены, что во fuses нет чего-то неожиданного типа переключения на внешний генератор и т.п.?
Что последнее зашивалось в кристалл?
Как правило, заниженная частота программатора ситуацию не ухудшает, но иногда лучше, чтобы частота в ключе -o была поближе к реальной.
Специфика пересинхронизации импульсом reset.
Попробуйте так (для старых кристаллов применяется другой метод пересинхронизации).
Найдёт микроконтроллер или нет?
Не удаётся прошить МК mega128. Содержимое .bat-файла:
avreal32 +mega128 -aft2232:enable=adbus4,acbus2 -o7MHz -wp -c m.hex -v -%%
Пробовал убирать polling, т.е. просто ключ -w, тогда процесс прошивки пошёл но при верификации найдено 65000 несоответствий.
Вот что выдаёт мне avreal32:
…
% Reset
% PgmOn reply FF FF 53 00
% Synchronised after 1 try
% GetID reply 00 30 00 1E
% GetID reply 00 30 00 97
% GetID reply 00 30 00 02
% Read ID: 0x1E9702
Device connected, mega128 detected
% Read Lock command 58 00 00 00, reply 00 58 00 FF
Chip not locked
% Read Osccal command 38 00 00 00, reply 00 38 00 B9
% Read Osccal command 38 00 01 00, reply 00 38 00 B9
% Read Osccal command 38 00 02 00, reply 00 38 00 B1
% Read Osccal command 38 00 03 00, reply 00 38 00 B3
% Read Fuses command 50 00 00 00, reply 00 50 00 1F
% Read Fuses command 58 00 00 00, reply 00 58 00 FF
% Read Fuses command 58 08 00 00, reply 00 58 08 C7
% Read Fuses command 50 08 00 00, reply 00 50 08 FF
Fuses
OSCCALs = B9 B9 B1 B3
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0x1F
BODLEVEL = 0
BODEN = 0
SUT = 1
CKSEL = F
_HIGH = 0xC7
OCDEN = 1
JTAGEN = 1
CKOPT = 0
EESAVE = 0
BOOTSZ = 3
BOOTRST = 1
_EXT = 0xFF
M103C = 1
WDTON = 1
Programming CODE memory
Poll: can’t write page at 0x0
Reset pin released
Adapter disabled
Забыли ключ стирания -e.
Без него не стирается старое содержимое, запись идёт поверх и выходит каша.
Здравствуйте, при повторном программировании mega162 через LPT возникла проблема – чип успешно стирается и лочится.
Раньше такого не было.
Вот лог:
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r8 (Aug 13 2011 12:11:23) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avrеal@rеal.kiеv.uа
Command:
+mega162 -! -p1 -% -o0 -e -n -w -v mega162_16pi.hex -fjtagen=1,BLEV=5,CKSEL=E,CKDIV=1 -l2
% Fuse added: jtagen=1
% Fuse added: BLEV=5
% Fuse added: CKSEL=E
% Fuse added: CKDIV=1
% LPT port number 1
% LPT base address 0x378
% DLportIO.dll succesfully loaded, DLportIO.sys interface activated
% LPT write cycle 1.20us
% FBPRG adapter mode
% 0.42MHz XTAL will be generated
% with SCK low 2 periods, high 2 periods
% Reset
% PgmOn reply FF FE 53 00
% Synchronised after 1 try
% GetID reply 00 30 00 1E
% GetID reply 00 30 00 94
% GetID reply 00 30 00 04
% Read ID: 0x1E9404
Device connected, mega162 detected
% Read Lock command 58 00 00 00, reply 00 58 00 FC
Chip locked – reading and programming disabled
% Read Osccal command 38 00 00 00, reply 00 38 00 64
Number of erases not initialized
% Erase reply 00 AC 80 00
Device erased
% Reset
% PgmOn reply FF FE A7 00
% Try 1 to resync by reset pulse % PgmOn reply FF FE A7 00
% Try 2 to resync by reset pulse % PgmOn reply FF FE A7 00
% Try 3 to resync by reset pulse % PgmOn reply FF FE A7 00
% Try 4 to resync by reset pulse % PgmOn reply FF FE A7 00
Can’t resync
Reset pin released
Подскажите, что это может быть. Спасибо!
Проблема найдена – схема питалась от USB кабеля подключаемом через удлинитель. При подключении прямо в мать чип перепрошился. Почему это критично только для уже прошитых чипов и не критично для пустых – непонятно.
О как хорошо — пока я добрался, уже все в порядке 🙂
Надо разбираться.
Плохой контакт в смысле падения напряжения питания не должен был помешать, так как уровень BODLEVEL довольно низкий.
Но могло что-то с землями быть нехорошее и, например, на тактовый сигнал от LPT на XTAL1 наводка была и сбивала тактирование.
Это нужно смотреть всю схему подключения, тактирование. CKSEL=E — это для керамического резонатора, он по сигналу тактирования от LPT по -o0 мог подзванивать и портить такт, а это тоже и от земель зависит.
В одной из прошедших через меня «партий» atmega162 (десяток контроллеров) они вообще плохо программировались при внешнем кварце 7.3728 и питании 5 вольт.
На внутреннем RC — отлично, при питании 3.3В независимо от тактирования — тоже отлично. Ситуацию поправили только RC-цепочки 510 Ом последовательно и 100 пФ на землю на сигналах SCK и MOSI. До этого в адаптере после шинника стояли последовательные резисторы 100 Ом, их оказалось мало.
21 липня 2011 at 20:25
Нужна поддержка attiny 4/5/9/10 (6 pin)
Reply
Должен с вами не согласиться – я сделал програматор для LPT и написал софт все программируется на ура но – процесс программирования для 32 кБ
будет сравнительно долгим у меня CLK – 0.050 mc – запись + верификайия 0.4- 1.2 мс для байта
2 с удлинением проводов до 1 метра тайминги возрастают в 10 раз
схема тут
http://bezkz.su/forum/index.php?app=core&module=attach§ion=attach&attach_rel_module=post&attach_id=1717
Говорит «У вас недостаточно прав» и т.д.
Ну и ладно.
а тут http://radiokot.ru/forum/download/file.php?id=79847
У кота видно, хоть я и не входил (что-то давненько я туда не заглядывал).
Спасибо, буду изучать.
p.s. Глянул у нас в «любимом-так-как-по-дороге» магазине Имрад — нет этих новых тинек вообще, ни в каких корпусах. Раньше были, но «про запас» покупать смысла не видел.
Вы знаете, я так до сих пор и не посмотрел ещё раз их алгоритм программирования 🙂
Раз нет ограничения на частоту снизу, то, конечно, все реально.
Спасибо за «это возможно», гляну ещё. Выходит, рано я сдался.
Хотел запустить avreal под FreeBSD 8.2 и обломался.
Бинарник не линкуется с либами + собран еще на древней версии FreeBSD 6.4.
Если нет возможности пересобрать на новой версии, можно ли хоть исходники получить
для самостоятельной сборки ?
А то уже FreeBSD 9 на носу а мы все на 6.4 сидим.
ошибки такие:
/libexec/ld-elf.so.1: Shared object “libstdc++.so.5” not found, required by “avreal-1.28r8”
ссылку делал на новые либы ,но бинарник в упор их не видит, не понятно где он их ищет ?
О, вовремя.
Как раз после переезда на ноутбук собирюсь сделать на другом компъютере отдельный диск с горстью разных ОС для сборки и проверки avreal в естественой среде обитания.
Ставлю сразу 8.2, а то, не подумавши, мог опять 6.4 поставить 🙂
Я ж во FreeBSD сам не работаю. Особой активности пользователей FreeBSD ни в почте, ни на сайте нет, вот я и не обновлял давно. Так, по инерции собираю и выкладываю.
Ok, хотелось бы к концу недели заюзать, как-раз доделываю программатор ;).
Если нужна будет помощь по FreeBSD – обращайся.
Я уже и сам проверил, выложил на страничке загрузки avreal рядом с 1.28r8 для FreeBSD 6.4.
Все последующие будут уже для 8.2.
А линки avreal тоже не видел, вероятно, потому, что он 32-битный, а ОС 64-битная. Что-то куда-то перенаправляется, линки в других местах нужно было делать.
В 32-битной FreeBSD 8.2 он линк увидел, но попросил следующую библиотеку. Я не стал экспериментировать — запустится ли, если на все дать линки.
Добрый день. Столкнулся с интересной ситуацией при записи в EEPROM.
При записи и верификации в одной командной строке ошибок не возникает:
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r5 (Oct 11 2010 20:02:13) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreаl@reаl.kiеv.uа
Command:
+mega128 -p1 -as -ai20 -o11059kHz -1 -w -v “-dD:\OlegOther\Projects\DelphiXe\AvReal\_Архив3 Рабочая\hex\OutBoard_eeprom.hex”
—- Удалено для экономии места ——-
Programming DATA memory
done (58ms)
Verifying DATA memory
passed
done (0.38ms)
Total time 279ms
Reset pin released
Adapter disabled
А при отдельной верификации выдает 3 ошибки. Всегда 3:
avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
v1.28r5 (Oct 11 2010 20:02:13) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avrеal@rеal.kiеv.uа
Command:
+mega128 -p1 -as -ai20 -o11059kHz -1 -v “-dD:\OlegOther\Projects\DelphiXe\AvReal\_Архив3 Рабочая\hex\OutBoard_eeprom.hex”
—- Удалено для экономии места ——-
Verifying DATA memory
failed, 3 errors
done (1.99ms)
Reset pin released
Adapter disabled
Ой! ™ Не встречался с таким.
А какие различия? «должно быть» — «прочитано».
Содержимое записываемого
:020000020000FC
:03000200FF800775
:0400000300000000F9
:00000001FF
Содержимое прочитанного
:10000000FFFF05C003FFFFFFFFFFFFFFFFFFFFFF35
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
……..
:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
:00000001FF
А Вы уверены, что сама программа в микроконтроллере не перезаписывает эти ячейки сразу после старта?
Я не вижу другой причины, по которой может быть следующее:
В одном запуске avreal запись+верификация (сброс с контроллера не снимается) — всё нормально.
В разных запусках (сброс снимается и программа начинает выполняться) — данные в EEPROM не совпали.
Упс… Вот это я протормозил! А ведь действительно в этой версии прошивки перезаписывается. Огромное спасибо. Прошу прощения за ложную тревогу.
Нужна поддержка attiny 4/5/9/10 (6 pin)
Прошу прощения за тормоза.
Я не смотрел внимательно новые attiny. Если правильно понял, интерфейс программирования у них похож на то, что в atXmega.
Для него возникают трудности с реализацией через адаптеры без встроенного «интеллекта». Там нельзя снижать частоту CLK программатора ниже определённого предела, иначе разорвётся соединение.
В современных ОС процесс программатора может быть приторможен и частота упадёт ниже предела.
Есть некоторые мысли по реализации через FTDI, но это нужно экспериментировать.
Через LPT практически нереально.
Доброго дня. Такая вот ситуация:
v1.28r7 (Feb 27 2011 17:35:08) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avrеal@rеal.kiеv.uа
Command:
-aft2232 -am=ftbb.cfg -pp=6010 +MEGA32 -o8000 -1 -e -w -v -% -c temp.hex -d temp.eep -fBLEV=0,BODEN=0,SUT=3,CKSEL=F,BLB1=0,BLB0=0,OCDEN=1,JTAGEN=1,CKOPT=0
% Fuse added: BLEV=0
% Fuse added: BODEN=0
% Fuse added: SUT=3
% Fuse added: CKSEL=F
% Fuse added: BLB1=0
% Fuse added: BLB0=0
% Fuse added: OCDEN=1
% Fuse added: JTAGEN=1
% Fuse added: CKOPT=0
% config path not defined
% program path D:\Инструменты\Uniprog\Avreal
% loading config file ‘ftbb.cfg’
adapter: invalid pin name ‘acbus2’
Содержимое файла ftbb.cfg:
enable=~acbus2,~adbus4
уложить в одну строку не могу – ограничен количеством символов
Может, чего не верно указал?
Вопрос снят. Включил голову и все залюбилось.
Как хорошо, когда вопрос снимается сам 🙂
Кардинально сократить строку в данном случае можно путём ручного собирания битиков fuses в байты и запись -f_low=XX,_high=YY,_ext=ZZ
где XX,YY,ZZ — соответствующие шестнадцатеричные записи. Только тогда нужно внимательно с учётом не указанных в командной строке (указать как по умолчанию с завода) и зарезервированных битов (поставить единички).
Как вариант — зашить один раз что надо, после чего вызвать avreal без каких-либо команд, только с адаптером и типом контроллера. В отчёте о фьюзах будут и значения байтов.
За идею с фьюзами большое спасибо. Сам не додумался =(
А выкрутился я следующим образом:
Command:
-aft2232=ft.cfg -ps=FTPrgA -az +MEGA32 -o8000 -1 -e -w -v -% -c temp.hex -d temp.eep -fBLEV=0,BODEN=0,SUT=3,CKSEL=F,BLB1=0,BLB0=0,OCDEN=1,JTAGEN=1,CKOPT=0
Содержимое файла ft.cfg: enable=~acbus2,~adbus4
Дело в том, что я редактирую строку вызова winhex-ом в exe файле. “+” и “-о” являются частью шаблона и сдвигать их с места нельзя, иначе программа некорректно вставит в строку тип проца и частоту SPI
Т.е. идёт борьба с чужой программой, которая из себя вызывает avreal?
И сама программа меняет только тип контроллера и частоту?
Она ключи ‘+’ и ‘-o’ вписывает, или тольо сами значения?
Если только значения, то сделать ей
Пусть себе туда подставляет что хочет, а в бат-файле написать всё остальное и это дело как аргументы и %1 %2 взять. Сколько там пробелов — и не важно.
Ну или
если с батником напрямую плохо будт выходить.
Попутный вопрос – а не работает ли avreal с “сырым” винарником? Raw binary проще редактировать winhex-ом
Да как-то нужды не было. Сильно не просили до сих пор, а самому совершенно не нужно.
Всё же avreal все эти годы — проект в первую очередь «для себя» 🙂
А что, прошики тоже нало вручную патчить, не только какую-то exe-шину?
Что это за задача такая?
Задача такая: поднять епром из изделия (мега32 или мега128), РУКАМИ поправить ряд параметров и закинуть обратно. Я это делал до сих пор при помощи AVR910+avrdude+WinHex. Все бы хорошо, но процедура прочитать-записать в случае меги32 занимает минуты 4. Avrdude понимает и raw bin и intel hex, но не понимает MPSSE. Avreal понимает MPSSE, но не понимает raw bin. Паять STK500 не хочу – не универсально, применимо только для avr-ов. Внимание, вопрос! Паять bitbangоматор на FT232R под avrdude или ждать, когда avreal начнет работать с bin-ом?
А почему руками? Или алгоритм «поправления» не формализован? 🙂
OK, сделаю в ближайшее время bin.
Сделано в версии 1.28r8
а как насчет того, чтобы прикрутить к avreal альтеровский USB-blaster?
Больной вопрос…
Давно собираюсь, но пока только информацию собрал, писать даже не начинал.
Доброго дня. Давно користуюсь вашою програмою разом з програматором на базі FT2232D. При роботі з OS Windows XP проблем не виникае, та зараз виникла потреба підключити програматор під ARCH Linux. Встановив бібліотеки libftd2xx1.0.4. Тепер при виклику програми отримую:
Command:
+mega64 -aft2232 “-pd=Dual RS232 A,s=FT01001A,v=0403,p=6010” -az -r -c read.hex -%%
% ‘libftd2xx.so’ successfully loaded, version 1.0.4
Can’t open FTDI device with serial number “FT01001A” (FT_DEVICE_NOT_FOUND)
Перелік підключених пристроїв:
Command:
-aft2232 “-pd=DUAL RS232 A” +mega64 -p?
2 FTDI devices detected
0: FT_DEVICE_UNKNOWN (0x3) – “”, serno “”
1: FT_DEVICE_UNKNOWN (0x3) – “”, serno “”
Команда lsusb повертає наступне:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 033: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
допоможіть розібратись.
FTDI з якогось дива змінила прототипи функцій при переході від libftd2xx версій 0.4.x до 1.0.x, докладніше в публікації «Подаруночок від FTDI». Стару бібліотеку можна взяти у мене на сторінці завантаження, якщо треба мати і нову версію, то прочитайте «Як встановити дві версії libftd2xx».
p.s. Стандартні vid/pid в ключі -p можна не вказувати. Якщо програматор один, то можна не вказувати і серійний номер. Якщо при цьому значення рядка опису пристрою не перезаписувалося в EEPROM програматора, то ключ -p можна не задавати взагалі, буде автоматично використано значення за умовчанням.
Можно подробнее про USB-адаптер на FT232? Есть ли какая-нибудь схема?
Уже полистал комментарии, нашел
http://megajohn.embedders.org/mjprojects/index.php?device=avrealusb&&hide_menu=1
Сижу, изучаю. 🙂
Только там FT2232, а не FT232.
До FT232R всё руки не доходят 🙁 — я себе наделал двухканальных адаптеров на FT2232 и просто нет стимула заниматься более медленной и одноканальной FT232R…
Скажите пожалуйста возможно ли в принципе использование AVReAl совместно с атмеловским программатором at89isp для программирования ATmega169?
Да, должен работать в режиме с заданием конфигурации, т.е. ключ
или
И даже есть линия для генерации XTAL (SS, вывод 8 колодки). Колодка сама вобще как у байт-бластера, а вот что внутри?
Нужно только узнать, какие сигналы LPT используются для каких сигналов программирования.
Не выйдет использовать только в том случае, если MOSI либо SCK не на порту данных LPT.
Увы, то, что я нашёл в качестве схемы at89isp, не радует.
SCK берётся со STROBE. А у меня для повышения скорости обмена диаграмма для MOSI и SCK набирается в буфере и выбрасыается пакетом в порт даных LPT, поэтому эти сигналы должны быть на линиях D0..D7. Всё остальное (RESET, ENABLE шинников, светодиоды, …) может быть и на выходах управления.
Но at89isp ведь можно доработать напильником 🙂 Спасибо, ваш ответ обнадеживает!
Скажите какой должна быть командная строка если я спалил на lpt 6й пин который идет на reset? скажем на пин 5
Вы не указали, какой именно адаптер использовался.
6-ая ножка для RESET — это FBPRG, так что дальше я беру за основу его разводку.
5-я ножка LPT (D3) для FBPRG обычно идёт для подачи генерируемого avreal-ом тактового сигнала на вывод XTAL1 при неправльно зашитых фьюзах CKSEL, поэтому в примере я беру ножку 4 (D2).
Все ноги перечислять в командной строке занудно, хотя если это в батнике, то можно. Лучше написать полный конфиг для «нового» адаптера и везде его указывать. А если подпалится ещё одна нога, то подредактировать его и все батники опять будут работать 🙂
Делаем такой текстовый файл:
Называем его, например, burned_lpt.cfg подсовываем его в командную строку
avreal32 -am=burned_lpt.cfg -p1 ...
Можно и всё в командной строке (если XTAL не нужен, его можно не указывать, все остальные должны быть перечислены):
avreal32 -am:mosi=D5:miso=ACK:sck=D6:reset=D2 -p1 ...