Контроллер не пашет

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

МЯУ ВСЕМ!
Я учусь прошивать МК по обучалке с вашего сайта(только ATtity2313 вместо AT90S):
собрал программатор ByteBlaser, отдельную плату для прошивки (без кварца) и плату с 8 светодиодами на портB (без разъёма для программатора)
настроил все программы и батники как полагается, прошивка вроде тоже проходит успешно, но при установки МК на плату с диодами - результат НОЛЬ - не горят.
помогите разобраться в чём дело.

Выкладываю лог прошивки:
D:\AVR-projects\runfire>d:\avr\avreal\avreal32.exe +tiny2313 -! -p1 -ab -o10Mhz -ew output\hexfile.hex -n

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.26rev3 (Oct 31 2008 14:01:29) http://www.ln.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command: +tiny2313 -! -p1 -ab -o10Mhz -ew output\hexfile.hex -n
Device connected, tiny2313 detected
Chip not locked
Read number of erases 254
Device erased
Device connected, tiny2313 detected
Fuses
OSCCALs = 5A 57
CKDIV = 0
CKOUT = 1
SUT = 2
CKSEL = 4
DWEN = 1
EESAVE = 1
WDTON = 1
BODLEVEL = 7
RSTDISBL = 1
SELFPRGEN = 1
Writing erase counter = 255
Programming CODE memory
done (0.0s)
Programming CODE memory
done (0.0s)
Total time 0.5s
Reset pin released
Adapter disabled

D:\AVR-projects\runfire>pause=null
Последний раз редактировалось Vicont Пн фев 09, 2009 20:45:43, всего редактировалось 1 раз.
Контактная информация:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

Хорошо, как проверить правильно ли прошит МК?

После компиляции я получил следующий машинный код, как я понял без адреса ячеек памяти
:020000020000FC
:080000000FEF07BB02ED08BB86
:00000001FF

для чтения я написал такой батник заменив ключ -ew на -r :
d:\avr\avreal\avreal32.exe +tiny2313 -! -p1 -ab -o10Mhz -r read\hexfile.hex -n
pause=null
врезультате на выходе я получил такой файл, уже с назначенными адресами, узнать в котором из исходного я смог лишь поледнюю строчку.
Считывается ВСЯ память МК вместе с недоступной частью.
Как считать ТОЛЬКО тот прошитый исходный hex файл?
Последний раз редактировалось Vicont Пн фев 09, 2009 20:21:03, всего редактировалось 1 раз.
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Подобные вопросы уже освещались на форуме.
Длинные тексты нужно оформлять вложением.
Переименуйте тему.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

ОК
Тогда такой вопрос: а вообще для прошивки кварц обязательно нужен?
и этот ключ в батнике, -o10Mhz, только для текущего процесса прошивки нужен, или для дальнейшей работы с этой частотой?

а то, чтобы не загромождать конструкцию, я плату подключения ББ к МК отдельно сделал, как тут :? http://radiokot.ru/start/mcu_fpga/avr/03/
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 223
Зарегистрирован: Вт окт 02, 2007 14:43:23
Откуда: Ростов-на-Дону

Сообщение GRafGRay »

в своё время я тоже шил байтбластером схемы из обучалки и кстати на ATtiny2313.
Много тинек залочил при одних и тех же ключах в батнике.

1. Поскольку Вы шьёте по последовательному интерфейсу - кварц нужен. Можно от внутренней RC конечно, но ИМХО сначала имеет смысл потренироваться "на кошках"
2. Вы когда под тиньку компилировали код, Вы заголовочный файл какой писали 2313def.inc или tn2313def.inc?
3. Попробуйте написать <b>-o0</b> вместо 10МГц (CKDIV-то зашили!!!!!)
4. И вообще для тинек надо фузы прописать в батничке, например <b>-f_low=DF,_high=DF</b>
При наличии отсутствия пропитанных шпал - это будет не трамвай а одно горе!
Контактная информация:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

А я думл, что для прошивки нужно только питание :? , ведь на этой схеме кварц не нарисован, и судя по вышеприведённому логу марка и тип чипа и тд. опредоляются правильно.
Допустим я разъём под программатор на плате с бегущем огнём поставлю,шоб Последовательный интерфейс был, там кварц 10МГц стоит. тогда ключ -o0 чем поможет?

заголовок 2313def.inc прописал, а рзница существенная?

Что касается фузов, то до них я пока не дошел... если Вас не затруднит, объясните пожалуйста в общих чертах, зачем они нужны и почему именно для тинек?
Контактная информация:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 223
Зарегистрирован: Вт окт 02, 2007 14:43:23
Откуда: Ростов-на-Дону

Сообщение GRafGRay »

По приведенной Вами ссылке изображена общая схема для подключения программатора к программируемому контроллеру по последовательному интерфейсу. В описанном случае МК ничем не тактируется, посему нужен кварц. Есть вариант описанный у тов. А. Редчука на его сайте, как тактировать без кварца от программатора - но это дополнительый геморрой.

Про ключик -о0 также сказано на его сайте, он необходим когда CKDIV зашит, а Вы как раз-таки его его зашили (CKDIV = 0)

насчёт заголовков и существенности разницы - контроллеры-то разные, раз существуют заглавные файлы для каждого отдельно, соответсвенно разница есть :) иначе зачем они нужны вообще :)

Значица фузы нужны не только для тинек, для мег тоже нужны. У разных контроллеров фузы бывают разные, посему имеет смысл даташит почитать.
Фузы - это своего рода опции задающе режим работы контроллеру ... ну как-то так

CKDIV = 0 (0 - запрграммирован 1 - не запрограммирован это касается всех фузов) делит частоту на 8, соответственно при кварце 10МГЦ частота будет не 10 а 10/8=1,25МГц

не в коем разе не трогатйе RSTDISBL (оключит ногу ресет, сдлает её портом ввода-вывода) и SPIEN (разрешает/запрещает последовательное программирование). Зашьёте эти фузы - прийдётся покупать другую тиньку либо лечить эту параллельным программатором.

имеет смысл написать CKSEL = F - задаёт работу от внешнего кварца . Для разных кварцев значения CKSEL - разные. CKDIV = 1 - отключен предделитель.
Рекомендую настоятельно изучить страничку А. Редчука - там есть и правильный синтаксис и много ответов на разные вопросы. И ветка в форуме "Всё по прошивке и программированию 2313"

в моём батнике работало так:
d:\avr\avreal\avreal32.exe +tiny2313 -! -p1 -fCKSEL=f,CKDIV8=1,SUT=1 -ab -2 -o0 -ew output\hexfile.hex -n
pause=null
При наличии отсутствия пропитанных шпал - это будет не трамвай а одно горе!
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

Большое спасибо за развёрнутый ответ! :))
теперь у меня есть от чего отталкиваться.
Поизучаю материал, а когда приеду домой на выходные, проверю на практике.
GRafGRay писал(а):в своё время я тоже шил байтбластером
а сейчас Вы чем пользуетесь?
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 223
Зарегистрирован: Вт окт 02, 2007 14:43:23
Откуда: Ростов-на-Дону

Сообщение GRafGRay »

USBAsp - http://www.fischl.de/usbasp/
AVR910 от Prottoss-а- http://prottoss.com/projects/AVR910.usb ... rammer.htm
и самый писк! доработанный HVProg - http://www.der-hammer.info/hvprog/index_en.htm + статья Sema на этом сайте
При наличии отсутствия пропитанных шпал - это будет не трамвай а одно горе!
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

Ну наконец-то, получилось - контроллер завёлся!!! :)) (прыгаю от счастья до потолка)
при прошивере нарисовался, следующий лог.
взгляните, всё-ли судя по нему нормально?
d:\AVR-projects\runfire>d:\avr\avreal\avreal32.exe +tiny2313 -! -p1 -fCKSEL=f,CKDIV8=1,SUT=1 -ab -o0 -ew output\hexfile.hex -n

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.26rev3 (Oct 31 2008 14:01:29) http://www.ln.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command: +tiny2313 -! -p1 -fCKSEL=f,CKDIV8=1,SUT=1 -ab -o0 -ew output\hexfile.hex -n
Device connected, tiny2313 detected
Chip not locked
Read number of erases 18
Device erased
Device connected, tiny2313 detected
Fuses
OSCCALs = 5A 57
CKDIV = 1
CKOUT = 1
SUT = 1
CKSEL = F
DWEN = 1
EESAVE = 1
WDTON = 1
BODLEVEL = 7
RSTDISBL = 1
SELFPRGEN = 1
Writing erase counter = 19
Programming CODE memory
done (0.0s)
Programming CODE memory
done (0.1s)
Programming fuses
New fuses value
OSCCALs = 5A 57
CKDIV = 1
CKOUT = 1
SUT = 1
CKSEL = F
DWEN = 1
EESAVE = 1
WDTON = 1
BODLEVEL = 7
RSTDISBL = 1
SELFPRGEN = 1
Total time 0.5s
Reset pin released
Adapter disabled
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 223
Зарегистрирован: Вт окт 02, 2007 14:43:23
Откуда: Ростов-на-Дону

Сообщение GRafGRay »

ну работает же? значит нормально!

байт бластер вещь хорошая, но ИМХО капризная. Шьёт шустро, быстрее чем тот же AVR910 или USBAsp, но с ним у меня несолько раз случались неприятные траблы. Посему от него отказался.
При наличии отсутствия пропитанных шпал - это будет не трамвай а одно горе!
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье

Сообщение Vicont »

Кстати, о Байт Бластере: я тут собираюсь навека запечатлить его на SMD - элемнтах шоб в корпус LTP влез (за одно и опыта пайки набраться), так сильно смущает один момент... о резисторе порядка 1...3 кОм на 7-й вывод разъема программирования и на "+" питания. А на схеме подключения программатора к устройству 7-й вывод вообще обрывается. :roll:
На схеме его небыло и испытательный вариант программатора я собрал без него - работает.
Так ли он действительно необходим, и стоил ли мне вообще добавлять его в схему?
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 223
Зарегистрирован: Вт окт 02, 2007 14:43:23
Откуда: Ростов-на-Дону

Сообщение GRafGRay »

если я правильно помню, то седьмой вывод нужен для внешнего тактирования (без кварца)
бывают моменты когда криво зашитые фузы не дают увидеть контроллер, вот тогда-то он мо-моему и используется, вешается на XTAL1. Но могу ошибаться, лучше почитать у первоисточника
При наличии отсутствия пропитанных шпал - это будет не трамвай а одно горе!
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»