Страница 1 из 1
Контроллер не пашет
Добавлено: Чт фев 05, 2009 17:54:46
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
Добавлено: Пт фев 06, 2009 18:38:31
Vicont
Хорошо, как проверить правильно ли прошит МК?
После компиляции я получил следующий машинный код, как я понял без адреса ячеек памяти
:020000020000FC
:080000000FEF07BB02ED08BB86
:00000001FF
для чтения я написал такой батник заменив ключ -ew на -r :
d:\avr\avreal\avreal32.exe +tiny2313 -! -p1 -ab -o10Mhz -r read\hexfile.hex -n
pause=null
врезультате на выходе я получил такой файл, уже с назначенными адресами, узнать в котором из исходного я смог лишь поледнюю строчку.
Считывается ВСЯ память МК вместе с недоступной частью.
Как считать ТОЛЬКО тот прошитый исходный hex файл?
Добавлено: Пт фев 06, 2009 21:40:25
Aheir
Подобные вопросы уже освещались на форуме.
Длинные тексты нужно оформлять вложением.
Переименуйте тему.
Добавлено: Пн фев 09, 2009 20:40:17
Vicont
ОК
Тогда такой вопрос: а вообще для прошивки кварц обязательно нужен?
и этот ключ в батнике,
-o10Mhz, только для текущего процесса прошивки нужен, или для дальнейшей работы с этой частотой?
а то, чтобы не загромождать конструкцию, я плату подключения ББ к МК отдельно сделал, как тут
http://radiokot.ru/start/mcu_fpga/avr/03/
Добавлено: Пн фев 09, 2009 23:09:10
GRafGRay
в своё время я тоже шил байтбластером схемы из обучалки и кстати на ATtiny2313.
Много тинек залочил при одних и тех же ключах в батнике.
1. Поскольку Вы шьёте по последовательному интерфейсу - кварц нужен. Можно от внутренней RC конечно, но ИМХО сначала имеет смысл потренироваться "на кошках"
2. Вы когда под тиньку компилировали код, Вы заголовочный файл какой писали 2313def.inc или tn2313def.inc?
3. Попробуйте написать <b>-o0</b> вместо 10МГц (CKDIV-то зашили!!!!!)
4. И вообще для тинек надо фузы прописать в батничке, например <b>-f_low=DF,_high=DF</b>
Добавлено: Вт фев 10, 2009 12:09:03
Vicont
А я думл, что для прошивки нужно только питание

, ведь на этой
схеме кварц не нарисован, и судя по вышеприведённому логу марка и тип чипа и тд. опредоляются правильно.
Допустим я разъём под программатор на плате с бегущем огнём поставлю,шоб Последовательный интерфейс был, там кварц 10МГц стоит. тогда ключ
-o0 чем поможет?
заголовок
2313def.inc прописал, а рзница существенная?
Что касается фузов, то до них я пока не дошел... если Вас не затруднит, объясните пожалуйста в общих чертах, зачем они нужны и почему именно для тинек?
Добавлено: Вт фев 10, 2009 15:28:22
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
Добавлено: Вт фев 10, 2009 18:51:49
Vicont
Большое спасибо за развёрнутый ответ!
теперь у меня есть от чего отталкиваться.
Поизучаю материал, а когда приеду домой на выходные, проверю на практике.
GRafGRay писал(а):в своё время я тоже шил байтбластером
а сейчас Вы чем пользуетесь?
Добавлено: Ср фев 11, 2009 10:14:24
GRafGRay
Добавлено: Вт фев 17, 2009 19:46:42
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
Добавлено: Ср фев 18, 2009 16:26:41
GRafGRay
ну работает же? значит нормально!
байт бластер вещь хорошая, но ИМХО капризная. Шьёт шустро, быстрее чем тот же AVR910 или USBAsp, но с ним у меня несолько раз случались неприятные траблы. Посему от него отказался.
Добавлено: Пт фев 20, 2009 21:16:21
Vicont
Кстати, о Байт Бластере: я тут собираюсь навека запечатлить его на SMD - элемнтах шоб в корпус LTP влез (за одно и опыта пайки набраться), так сильно смущает один момент... о резисторе порядка 1...3 кОм на 7-й вывод разъема программирования и на "+" питания. А на
схеме подключения программатора к устройству 7-й вывод вообще обрывается.
На схеме его небыло и испытательный вариант программатора я собрал без него - работает.
Так ли он действительно необходим, и стоил ли мне вообще добавлять его в схему?
Добавлено: Вс фев 22, 2009 20:02:10
GRafGRay
если я правильно помню, то седьмой вывод нужен для внешнего тактирования (без кварца)
бывают моменты когда криво зашитые фузы не дают увидеть контроллер, вот тогда-то он мо-моему и используется, вешается на XTAL1. Но могу ошибаться, лучше почитать у первоисточника