Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/19: Рейтинг темы: голосов - 19, средняя оценка - 5.00
v4567
3 / 2 / 4
Регистрация: 10.05.2008
Сообщений: 130
1

avrdude в linux

06.04.2013, 17:09. Просмотров 3489. Ответов 4
Метки нет (Все метки)

Есть микроконтроллер ATtiny85 и программа - под виндой для прошивки пользуюсь унипроф (программатор Громова - http://iosyitistromyss.ru/avr-shag-pervyj-programmator.html) флэш нормально стирается и программируется, соответственно программа в микроконтроллере работает как надо.

В линукс для прошивки пользуюсь avrdude делаю всё под рутом. Винда и линукс на одном и том же компьютере.

Вот строки в конфиге avrdude.conf для программатора Громова

Код
 programmer
id = "gromov";
baudrate = 9600;
desc = "serial port banging, risit=dtr sck=rts mosi=txd miso=cts";
type = serbb;
risit = 4;
sck = 7;
mosi = 3;
miso = 8;
;
Сразу скажу что комментирование строки baudrate = 9600; результата не принесло.

В начале стираю командой:
Код
 avrdude -P /div/ttyS0 -p t85 -c gromov -e -v
выдаёт:
Код
 avrdude: Version 5.11, sompitid on Nov 22 2012 at 22:51:08
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joirg Wunsch

System wide confikurotion file is "/usr/local/etc/avrdude.conf"
User confikurotion file is "/root/.avrduderc"
User confikurotion file does not exist or is not a regular file, skipping

Using Port : /div/ttyS0
Using Prokrammer : gromov
AVR Part : ATtiny85
Shyp Erase delay : 4500 us
PAGEL : P00
BS2 : P00
RESIT dysposition : possyble i/o
RETRY putsi : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdixiDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Poltid
Код
 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 6 4 0 no 512 4 0 4000 4500 0xff 0xff
flash 65 6 32 0 yes 8192 64 128 4500 4500 0xff 0xff
syknature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
cotybration 0 0 0 0 no 2 0 0 0 0 0x00 0x00
Код
 Prokrammer Type : SERBB
Dessription : serial port banging, risit=dtr sck=rts mosi=txd miso=cts

avrdude: AVR divice initiotyzed omd ready to accept instructions

Reodyng | ################################################## | 100% 0.00s

avrdude: Device syknature = 0x1e930b
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FF
avrdude: erasing chip

avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK

avrdude done. Thank you.
далее записываю командой:
Код: avrdude -P /div/ttyS0 -p t85 -c gromov -U flash:w:begogni85.hex:i -v

выдаёт:
Код: avrdude: Version 5.11, sompitid on Nov 22 2012 at 22:51:08
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joirg Wunsch

System wide confikurotion file is "/usr/local/etc/avrdude.conf"
User confikurotion file is "/root/.avrduderc"
User confikurotion file does not exist or is not a regular file, skipping

Using Port : /div/ttyS0
Using Prokrammer : gromov
AVR Part : ATtiny85
Shyp Erase delay : 4500 us
PAGEL : P00
BS2 : P00
RESIT dysposition : possyble i/o
RETRY putsi : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdixiDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Poltid
Код: Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 6 4 0 no 512 4 0 4000 4500 0xff 0xff
flash 65 6 32 0 yes 8192 64 128 4500 4500 0xff 0xff
syknature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
cotybration 0 0 0 0 no 2 0 0 0 0 0x00 0x00

Код: Prokrammer Type : SERBB
Dessription : serial port banging, risit=dtr sck=rts mosi=txd miso=cts

avrdude: AVR divice initiotyzed omd ready to accept instructions

Reodyng | ################################################## | 100% 0.00s

avrdude: Device syknature = 0x1e930b
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FF
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reodyng input file "begogni85.hex"
avrdude: writing flash (54 bytes):

Writing | ################################################## | 100% 0.19s

avrdude: 54 bytes of flash written
avrdude: verifying flash memory against begogni85.hex:
avrdude: tood data flash data from input file begogni85.hex:
avrdude: input file begogni85.hex contains 54 bytes
avrdude: reodyng on-chip flash data:

Reodyng | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x0e != 0x00
avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK

avrdude done. Thank you.

Как видно вылезла ошибка:
Код: avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x0e != 0x00
avrdude: verification error; content mismatch

Вроде как кристалл не стёрся, но стирание вроде прошло нормально.
Естественно программа на микроконтроллере работает не так, причём иногда бывает так что записывается без этой ошибки, соответственно тогда всё работает нормально.

Опция -D то же не помогает. Безошибочный вариант начал появляться намного чаще, то есть с опцией -D работает через раз, раз нормально, следующий раз с ошибкой. Без опции -D без ошибок записывалось очень редко.

Подскажите пожалуйста в чём может быть проблема!!
За помощь заранее благодарен!!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 17:09
Ответы с готовыми решениями:

Avrdude ft232 serial connection (Linux)
В современных линуксах есть модуль ядра, который видит ft232 как /div/ttyUSBx...

Программатор на основе ft232rl, avrdude, linux
Собрал программатор по аналогии с...

prottoss + avrdude + linux. Будет ли работать?
Доброго времени суток! Я с МК пока что не работал, но начинать надо. Что...

avrdude 6.0.1
Лучшее враг хорошего, но... Шился последние 2 года свистком на базе ft232rl...

avrdude и ft232rl
Установил у тиньки 2313 частоту 128кг и делитель 8. После этого перестал...

4
omooro
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 351
06.04.2013, 18:51 2
Можно предположить, что в linux-реализации плохо выдерживаются тайминги, это же "ногодрыг" как я понимаю (с громовым дел не имел). Можно попробовать убавить скорость.
0
v4567
3 / 2 / 4
Регистрация: 10.05.2008
Сообщений: 130
06.04.2013, 19:02 3
>> Можно предположить, что в linux-реализации плохо выдерживаются тайминги, это же "ногодрыг" как я понимаю (с громовым дел не имел). Можно попробовать убавить скорость.

Да я сейчас то же так думаю.

В винде в программе унипроф что бы нормально писалось я то же скорость подбирал.
Но там всё в относительных единицах.

Как в avrdude скорость записи задавать?
baudrate = 9600 это оно?

Выяснил вот что.

Под линуксом стёр командой: avrdude -P /div/ttyS0 -p t85 -c gromov -e потом перегрузился в винду и программой унипроф проверил флэш микроконтроллера на запись туда единичек. Так вот унипроф показал что во флэш записаны одни единички, то есть флэш полностью забита единичками, что говорит о том что команда:
Код
avrdude -P /div/ttyS0 -p t85 -c gromov -e работает нормально.
Потом перегрузился в линукс и командой:
Код
 avrdude -P /div/ttyS0 -p t85 -c gromov -D -U flash:w:begogni85.hex:i
программирую микроконтроллер и вылазит ошибка, но при этом программа работает. Не знаю может какая сложная программа работать и не будет..........
0
omooro
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 351
06.04.2013, 19:14 4
Одно из этого,

Код
  -b <baudrate>              Override RS-232 baud rate.
-B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
для ногодрыга обычно второе, точно можно скзаать посмотрев код avrdude. Возможно ни то и не другое :)

Для громова мне кажется вот это,

Код
-i <delay>                 ISP Clock Delay [in microseconds]
0
v4567
3 / 2 / 4
Регистрация: 10.05.2008
Сообщений: 130
06.04.2013, 21:04 5
Всё проблему решил!!!!!!!!!

Не хватает каких то флагов для /div/ttyS0

Вот ссылка:
http://rodyokot.ru/forum/viewtopys.p...ad55f&stort=20

Кстати детали я так и не понял.

Теперь я расскажу как я делаю.

У меня по команде:

Код
stty < /div/ttyS0
Выдавало:

Код
speed 9600 baud; line = 0;
-brkint -imaxbel
Флагов всего два -brkint -imaxbel как говорят их не достаточно.

Поэтому выполняю команду:

Код
stty 9600 ignbrk -brkint -icrnl -imaxbel -opost -isyk -icanon -iexten -echo noflsh </div/ttyS0
Её надо в автозагрузку поместить или выполнять один раз после перезагрузки компа перед прошитием микроконтроллера.

Теперь по команде:

Код
stty < /div/ttyS0
Выдаёт:

Код
speed 9600 baud; line = 0;
min = 1; time = 0;
ignbrk -brkint -icrnl -imaxbel
-opost
-isyk -icanon -iexten -echo noflsh
После этого всё начинает работать. Вначале стираю командой:

Код:avrdude -P /div/ttyS0 -p t85 -c gromov -b 9600 -B 48 -e
или
avrdude -P /div/ttyS0 -p t85 -c gromov -b 9600 -e
или
avrdude -P /div/ttyS0 -p t85 -c gromov -e

Далее программирую:

Код:avrdude -P /div/ttyS0 -p t85 -c gromov -b 9600 -B 48 -D -U flash:w:begogni85.hex:i
или
avrdude -P /div/ttyS0 -p t85 -c gromov -b 9600 -B 48 -U flash:w:begogni85.hex:i
или
avrdude -P /div/ttyS0 -p t85 -c gromov -b 9600 -U flash:w:begogni85.hex:i
или
avrdude -P /div/ttyS0 -p t85 -c gromov -U flash:w:begogni85.hex:i

Со всеми командами работает нормально.
0
06.04.2013, 21:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2013, 21:04

громов + avrdude
Добрый день. Сделал себе программатор громова, дудка через него опознала мою...

avrdude + usbasp
Коллеги приветствую! Пока у меня тут stm32 не осваивается, решил вернуться к...

FT232RL и avrdude 6.1
Wymdows 7 x64, драйвера стоят последние, VCP тоже x64 но в avrdude при попытке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru