Через AVDdude не программируется, а через среду Arduino скетч заливается.

Lifter
Offline
Зарегистрирован: 09.10.2012

Имею китайскую NANO v3 с СН340G, через среду Arduino все программируется, плата живая.

Возникла потребность выдать на ножке меандр 2МГц.  Написал на ассемблере кусок, скомпилировал в AVRstudio7, прошивать хочу через USB порт используя возможности загрузчика Arduino - через AVRDude.

Скачал AVRdude 6.3, в AVRstudio7 в External Tools указал AvrDude, в качестве аргумента:

-C "D:\Work\Utilite\avrdude\avrdude.conf" -p atmega328p -c arduino -P COM15 57600 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex:i"

Компорт и скорость, как в среде Ардуино. При заливке чуть мигает Rx, Tx, затем через несколько секунд появляется сообщение:

avrdude.exe: stk500_recv(): programmer is not responding
avrdude.exe: stk500_getsync() attempt 1 of 10: not in sync: resp=0x67
avrdude.exe: stk500_recv(): programmer is not responding
avrdude.exe: stk500_getsync() attempt 2 of 10: not in sync: resp=0x67

В ардуинке остается старый скетч, вижу по миганию светодиода раз в секунду (из скетча). Перешиваю скетч через среду Ардуино - все нормально. Т.Е плата живая, порт работает, а через AvrDUDE не шьется.

В чем может быть проблема?

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

а, так - -C D:\Work\Utilite\avrdude\avrdude.conf -p atmega328p -c arduino -P COM15 57600 -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:i

Lifter
Offline
Зарегистрирован: 09.10.2012

Убрал кавычки, всё то же самое. Без изменений.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Попробуйте использовать ту версию Avrdude, которая в Arduino IDE.

Находится тут: \arduino\hardware\tools\avr\bin\avrdude.exe

Конфиг файл: \arduino\hardware\tools\avr\etc\avrdude.conf

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Lifter пишет:

-C "D:\Work\Utilite\avrdude\avrdude.conf" -p atmega328p -c arduino -P COM15 57600 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex:i"

Перед указанием скорости нужно ключ -b поставить.

Если avrdude.exe и avrdude.conf лежат в одной папке, попробуй так:

Command:  D:\Work\Utilite\avrdude\avrdude.exe

Arguments:  -c arduino -P COM15 -b 57600 -p$(avrdevce) -U flash:w:$(ProjectDir)Debug\$(ItemFileName).hex:a -q

Или так: Arguments: -C avrdude.conf -c arduino -P com15 -b 57600 -p$(avrdevce) -U flash:w:$(ProjectDir)Debug\$(ItemFileName).hex:a -q

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Lifter, вот вам 2МГц на ассемблере, компилируется в Arduino IDE :)

int main () {
pinMode( 13, OUTPUT );
asm( "cli        " );
asm( "1:         " );
asm( "sbi 0x05, 5" );
asm( "nop        " );
asm( "nop        " );
asm( "cbi 0x05, 5" );
asm( "rjmp     1b" );
}


 

Lifter
Offline
Зарегистрирован: 09.10.2012

Jeka_M, спасибо! именно ключа -b не хватало. В статье, откуда стырил эту строку, была ошибка. Теперь все заработало.

 

dimax, действительно, так еще проще. Только хотелось бы вместо 0х05 писать PORTB, но ругается.