AVReAl – ISP programmer for AVR
AVReAl designed for programming of Atmel AVR microcontrollers in ISP (in-circuit serial programming) mode.
AVReAl requires one of
- simple adapter connected to LPT — “5 wires“, “HC244″ — Altera ByteBlaster, STK200/STK300 or other using pin mapping feature.
- USB-adapters bulit with FT2232C, FT2232L, FT2232D and FT2232H, FT4232H by FTDI.
AVReAl is console application which makes possible to integrate it into almost any development environment (IDE).
Now supported Windows, Linux and FreeBSD (no FT2232 support for FreeBSD).
DOS-version not supported since 1.27rev0. Last DOS version 1.25r6 is available for downloading.
Working of avreal/win32 with FT2232C/L/D/H has been checked for Windows2000, WindowsXP/32, WindowsXP/64, Windows7/32, Windows7/64.
Working of avreal/win32 with LPT via DLPortIO drivers has been checked for Windows2000, WindowsXP/32, WindowsXP/64, Windows7/32, Windows7/64. No drivers needed for Windows98.
The program is free for commercial or non-commercial use but it’s sources 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 ‘History’ category. Separate posts about bug is 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 “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).
AT86RF401 AT90S1200 AT90S2313 AT90S4414 AT90S8515 AT90S4434 AT90S8535 AT90S2333 AT90S4433 AT90S2323 AT90S2343 ATtiny12 ATtiny22L ATtiny22 ATtiny13|ATtiny13A ATtiny2313|ATtiny2313A ATtiny4313 ATtiny15 ATtiny25 ATtiny45 ATtiny85 ATtiny43u ATtiny87 ATtiny167 ATtiny26 ATtiny261|ATtiny261A ATtiny461|ATtiny461A ATtiny861|ATtiny861A ATtiny24 ATtiny44 ATtiny84 ATtiny48 ATtiny88 ATmega603 ATmega103 ATmega161 ATmega163 ATmega323 ATmega8515 ATmega8535 ATmega162 ATmega8|ATmega8A ATmega48|ATmega48A ATmega48P|ATmega48PA ATmega88|ATmega88A ATmega88P|ATmega88PA ATmega168|ATmega168A ATmega168P|ATmega168PA ATmega328 ATmega328P ATmega16|ATmega16A ATmega32|ATmega32A ATmega64|ATmega64A ATmega128|ATmega128A AT90CAN32 AT90CAN64 AT90CAN128 AT90usb82 AT90usb162 ATmega8U2 ATmega16U2 ATmega32U2 ATmega16U4 ATmega32U4 ATmega32U6 AT90usb646|AT90usb647 AT90usb1286|AT90usb1287 ATmega164A ATmega164P|ATmega164PA ATmega324A ATmega324P ATmega324PA ATmega644|ATmega644A ATmega644P|ATmega644PA ATmega1284 ATmega1284P ATmega165|ATmega165P|ATmega165PA ATmega325 ATmega325P ATmega3250 ATmega3250P ATmega645 ATmega6450 ATmega169|ATmega169P ATmega329 ATmega329P ATmega3290 ATmega3290P ATmega649 ATmega6490 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90pwm2|AT90pwm3 AT90pwm1|AT90pwm2B|AT90pwm3B AT90pwm216|AT90pwm316 AT90pwm81 ATmega16M1 ATmega32M1 ATmega64M1 ATmega32C1 ATmega64C1 ATmega8HVA ATmega16HVA ATmega16HVB ATmega32HVB ATmega8HVD ATmega128RFA1
українська
русский
english
Здравствуйте!
Планируется ли добавление поддержки программаторов 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 0×0
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 0×378
% 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 (0×3) – “”, serno “”
1: FT_DEVICE_UNKNOWN (0×3) – “”, 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.
— я себе наделал двухканальных адаптеров на FT2232 и просто нет стимула заниматься более медленной и одноканальной FT232R…
До 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 ...