AVR studio в вопросах и ответах
Re: AVR studio в вопросах и ответах
Не вижу.
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: AVR studio в вопросах и ответах
DarkWolf писал(а):Плата спаяна, для прграммирования есть только 4 контакта.
Даже если как выше писали, обмануть программатор, подав напряжение на его контакт VCC, то на линиях MOSI, MISO, SCK и RESET потенциал меряется относительно земли, ОБЩЕЙ для программатора и программируемого устройства. Если этой связи нет, т.е. GND разорвана (в общем случае, когда схема питается от гальванически развязанного источника), то на линиях программирования получается вместо 0-5В произвольный потенциал, которым ничего не запрограммируете. Разъем внутрисхемного программирования AVR - стандартный 6 или 10 контактов, с землей и VCC, тому кто проектировал плату и не знал этого руки оторвать надо
Делайте переходник, 4 линии подключайте штатно, а на землю и VCC сделайте от программатора щупы и при программировании ручками своими держите их на тех местах платы, где приходят соответствующие потенциалы. 600 шт.? Ну значит такова расплата за косяки при разработке, это еще фигня, вот если бы дорабатывать что-то пришлось в каждой плате.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
- trengtor
- Сверлит текстолит когтями
- Сообщения: 1299
- Зарегистрирован: Вт мар 31, 2015 22:56:07
- Откуда: Мы люди простые, живем в лесу, на пенек молимся
- Контактная информация:
Re: AVR studio в вопросах и ответах
DarkWolf писал(а):akl писал(а):Вы же как-то запитываете устройство. Почему не подать + и GND от питания на 2 и 6 выводы дракона.
Вот как выглядит этот прибор.
Подавайте на программатор общий (GND) от контакта питания устройства – и программируйте устройство по ISP.
Разработчика больно и обидно высечь.
Re: AVR studio в вопросах и ответах
Всем спасибо за помощь. Особенность Дракона в том, что без подключенного Vcc не обойтись. При подключении общей земли так же ничего не работало.. Пришлось держать рукой подключенный контакт Vcc к питанию контроллера.
Re: AVR studio в вопросах и ответах
Документ от ATMEL
http://www.atmel.com/Images/Atmel-42723 ... rGuide.pdf
стр.22 схема подключения, земля присутствует и VTG, вероятно, правильно подключили.
http://forum.easyelectronics.ru/viewtop ... view=print
http://www.atmel.com/Images/Atmel-42723 ... rGuide.pdf
стр.22 схема подключения, земля присутствует и VTG, вероятно, правильно подключили.
http://forum.easyelectronics.ru/viewtop ... view=print
Re: AVR studio в вопросах и ответах
Vov123 писал(а):Документ от ATMEL
http://www.atmel.com/Images/Atmel-42723 ... rGuide.pdf
стр.22 схема подключения, земля присутствует и VTG, вероятно, правильно подключили.
http://forum.easyelectronics.ru/viewtop ... view=print
Спасибо, вот именно то что нужно было выдержка из форума "Примечание: AVR Dragon должен чувствовать входное напряжение на выводе 2 разъёма ISP, оно используется для работы транслятора уровней.
Для программирования микросхем в собственной панельке Дракона, напряжение нужно подать с ножек 2,4,6 разъёма VCC (5V) на контакт 2 (VTG) разъёма ISP.
При программировании во внешней системе, соединять питание системы и разъёма VCC НЕЛЬЗЯ, в этом случае на контакт 2 (VTG) разъёма ISP нужно подать питание от программируемой системы".. это читал, но по незнанию английского не правильно перевел(
-
Пока_без_кота
- Потрогал лапой паяльник
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
Re: AVR studio в вопросах и ответах
Доброго времени суток. Как на ассемблере в AVR Studio об'явить переменную в EEPROM памяти, и на этапе компиляции ее проинициализировать (присвоить значение)? Чтобы можно было получить файлик с расширением *eep и прошить его вместе с хексом.
Делаю это так:
Потом в коде, где надо, читаю вот так:
Сама процедурка:
И все время считывается 0
Делаю это так:
Код: Выделить всё
.eseg
ADDR: .db 0x0F
Потом в коде, где надо, читаю вот так:
Код: Выделить всё
ldi ee_addr, ADDR
rcall EE_Read
Сама процедурка:
Код: Выделить всё
EE_Read:
sbic EECR, EEPE
rjmp EE_Read
out EEARL, ee_addr
sbi EECR, EERE
in ee_data,EEDR
ret
И все время считывается 0

Re: AVR studio в вопросах и ответах
А какаое значение у EEARH
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio в вопросах и ответах
Покажите файл *.eep. Если вы прошивали только 0x0F, нулям там взяться неоткуда: стертая EEPROM это 0xFF. Еще можно попробовать вручную, из программы записать по вашему адресу число а потом считать программой и программатором и посмотреть разницу.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio в вопросах и ответах
Какой контроллер? И для начала бы убедится программатором что в EEPROM прошито верное значение.
- dr.doc
- Это не хвост, это антенна
- Сообщения: 1368
- Зарегистрирован: Вс мар 28, 2010 12:52:22
- Откуда: Беларусь
Re: AVR studio в вопросах и ответах
А прерывания почему не запрещаете при чтении EEPROM?Пока_без_кота
Из datasheet ATmega8The examples assume that interrupts are controlled (for example by disabling
interrupts globally) so that no interrupts will occur during execution of these
functions.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio в вопросах и ответах
Если в прерывании нет обращения к EEPROM то и смысла их запрещать нет. Этим они перекрывают ту ситуацию, что между проверкой занятости модуля и исполнением записи/чтения может возникнуть прерывание которое изменит состояние регистров EEPROM и дальнейший код наделает делов. Но если таких прерываний нет, то запрещать их причины не вижу.
-
Пока_без_кота
- Потрогал лапой паяльник
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
Re: AVR studio в вопросах и ответах
Контроллер Attiny13A, поетому нет EEARH. файлик *.eep имеет следующее содержимое:
:010001000FEF
:00000001FF
"Еще можно попробовать вручную, из программы записать по вашему адресу число" - что есть вручную, из программы ? Это ручками подправить значение в файлике ?
:010001000FEF
:00000001FF
"Еще можно попробовать вручную, из программы записать по вашему адресу число" - что есть вручную, из программы ? Это ручками подправить значение в файлике ?
Re: AVR studio в вопросах и ответах
Пока_без_кота писал(а):Контроллер Attiny13A, поетому нет EEARH.
Значит там нет и EEARL
Полученное значение из EEPROM куда пытаешься скопировать. в регистр или переменную?
-
Пока_без_кота
- Потрогал лапой паяльник
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
Re: AVR studio в вопросах и ответах
Vov123 писал(а):Значит там нет и EEARL
Полученное значение из EEPROM куда пытаешься скопировать. в регистр или переменную?
Вы не поверите, я тоже сперва так думал, но внимательно прочитав даташит, я увидел в документе http://www.atmel.com/ru/ru/Images/8126S.pdf в таблице регистров, название регистра с адресом 0х1Е и был сам немало удивлен.
Значение пишу в регистр.
Re: AVR studio в вопросах и ответах
Ну что-ж. замечательно. Теперь надо пролистать немного далее даташит и разобрать пример чтения данных еепром. Там всё подробно описано.
ee_addr и ee_data какие в программе регистры?
для копирования из регистра в переменную используй команду sts
Код: Выделить всё
EEPROM_read:
; Wait for completion of previous write
sbic EECR,EEPE
rjmp EEPROM_read
; Set up address (r17) in address register
out EEARL, r17
; Start eeprom read by writing EERE
sbi EECR,EERE
; Read data from data register
in r16,EEDR
retee_addr и ee_data какие в программе регистры?
для копирования из регистра в переменную используй команду sts
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio в вопросах и ответах
То есть переменная расположена по адресу 0х0001. А что вы записываете в EEPROM перед этой переменной, по адресу 0x0000?Пока_без_кота писал(а):Контроллер Attiny13A, поетому нет EEARH. файлик *.eep имеет следующее содержимое:
:010001000FEF
:00000001FF
Код: Выделить всё
.eseg
ADDR: .db 0x12
.cseg
ldi r16,ADDRМожете выложить весь код?
Пока_без_кота писал(а):"Еще можно попробовать вручную, из программы записать по вашему адресу число" - что есть вручную, из программы ? Это ручками подправить значение в файлике ?
Из программы это из программы. Пишете функцию записи в EEPROM по какому-нибудь адресу, потом читаете.
-
Пока_без_кота
- Потрогал лапой паяльник
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
Re: AVR studio в вопросах и ответах
Спасибо всем помогавшим. Вроде разобрался. Я то тупой не знал, что есть разница в какой последовательности шить. Оказывается надо обязательно сперва флеш, и только потом еепром, а я дурень наоброт, сперва еепром, потом флеш, вот при прошивке флеша, содержимое еепрома и портилось. Просто до этого работал только с внешней еепром, которая отдельной микросхемой, там этих нюансов нет. 
Re: AVR studio в вопросах и ответах
Alexeyslav писал(а):Если в прерывании нет обращения к EEPROM то и смысла их запрещать нет. Этим они перекрывают ту ситуацию, что между проверкой занятости модуля и исполнением записи/чтения может возникнуть прерывание которое изменит состояние регистров EEPROM и дальнейший код наделает делов. Но если таких прерываний нет, то запрещать их причины не вижу.
И будете потом отлавливать race condition (ошибки с последовательностью исполнения) с прерываниями. С любыми прерываниями.
Код: Выделить всё
When EEMPE is set, setting EEPE within four clock cycles will program the EEPROM at the selected address.Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio в вопросах и ответах
У большинства AVR есть фуз EESAVE, благодаря которому при стирании флеша EEPROM не меняется.Пока_без_кота писал(а):Спасибо всем помогавшим. Вроде разобрался. Я то тупой не знал, что есть разница в какой последовательности шить.

