Ошибки в avreal 1.28r2 и 1.28r3

Обнаружилсь довольно странная ошибка в avreal 1.28r2 и 1.28r3. При совпадении условий

  • Используется программатор на базе FT2232/FT4232
  • Заняты верхние два байта флеш-пам’яти (кодом или счётчиком стираний)
  • В одном вызове avreal выполняется работа как с флеш памятью, так и с фьюзами
  • Присутствует ключ верификации -v

для некоторых микроконтроллеров после первой операции верификации работа обрывается с ошибкой synchronosation lost.

Если был ключ -n, то не выполняется запись кода

Writing erase counter = 125
Programming CODE memory
 done (7.9ms)
Verifying CODE memory

	% Verifying from 0x1FFFE to 0x1FFFF   passed
 done (2.83ms)
Programming CODE memory

Synchronisation lost
Reset pin released

Если ключа -n не было, то не выполняется программирование fuses

	% Verifying from 0x1E000 to 0x1EFFF  ........
	% Verifying from 0x1F000 to 0x1FFFF  ........ passed
 done (3.2s)
Programming fuses
	% Write Fuses	command AC A8 00 EB,  reply 00 87 31 03

Synchronisation lost
Reset pin released

Если же верхние два байта не используются, то верификация и программирование проходят нормально.

	% Verifying from 0x1E000 to 0x1EFFF  ........
	% Verifying from 0x1F000 to 0x1FFFD  ....... passed
 done (3.2s)
Programming fuses
	% Write Fuses	command AC A8 00 EB,  reply 00 AC A8 00
	% Write Fuses	command AC E0 00 F3,  reply EB AC E0 00

Известно, что ошибка проявляется для ATmega128 и не проявляется для ATmega8, ATmega168, atmga328P, ATmega64, ATmega325, ATmega2561.
Обойти ошибку можно, разделив программирование на несколько вызовов avreal или используя адаптеры для LPT.

 


Ещё одна ошибка — avreal 1.28r3 для некоторых микроконтроллеров, судя по логу, фьюзы пишет и читает нормально

Programming fuses
    % Write Fuses    command AC A0 00 E7,  reply 00 AC A0 00
    % Write Fuses    command AC A8 00 F9,  reply E7 AC A8 00
    % Write Fuses    command AC A4 00 FC,  reply F9 AC A4 00
    % Read Fuses    command 50 00 00 00,  reply FC 50 00 E7
    % Read Fuses    command 58 00 00 00,  reply 00 58 00 FF
    % Read Fuses    command 58 08 00 00,  reply 00 58 08 D9
    % Read Fuses    command 50 08 00 00,  reply 00 50 08 FC

но при верификации avreal использует ошибочные данные утверждает, что фьюзы не совпадают.


Таким образом, до входа следующей версии лучше использовать 1.28r2, в случае использования верхних адресов флеш-памяти и программатора на FT2232 писать фьюзы отдельным вызовом или, если дополнения в 1.28r2 не нужны, взять версию 1.28r1.


Ошибка исправлена в версии 1.28r5.

Leave a Reply

[flagcounter image]