Demeny 0 2 марта, 2009 Опубликовано 2 марта, 2009 · Жалоба Есть самодельный программатор на LPT-порт, собранный на базе буферного элемента 74HC245 с распиновкой STK200, которым без проблем программировал AT90S8515 (DIP40), ATmega8, ATmega16 (DIP, QFP). Буферный элемент питается от +5В компьютера отдельным проводком. Сейчас появилась необходимость запрограммировать им ATtiny13-20SI в корпусе SOIC8. Но вот беда - ATtiny13 не входит в режим низковольтного SPI программирования (AVReal пишет "can't resync"), при этом с выхода MISO (6 нога тиньки) не идут никакие данные и нога в Z-состоянии, пробовал подтягивать её и к "1", и к "0" через резистор 2,2 К - нет данных, и всё тут ! Отложил AVReal, взял просто утилиту LPT Analyzer, которая позволяет "дрыгать" ногами LPT и смотреть входные линии. Решил вручную войти в режим SPI программирования: 1) RESET=1; 2) RESET=0; 3) передаем команду 0xAC, 0x53 (1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1), защёлкивая каждый бит, начиная со старшего, положительным фронтом CLK; 4) продолжаем дергать CLK, ожидая по datasheet в третьем байте увидеть эхо 0x53. При этом если я подключаю программатор к плате с AT90S8515, без проблем вижу эхо 0x53, то же самое без проблем видит AVReal. После этого, вынимаю из панельки AT90S8515, подпаиваю на его ноги SPI (и питание) на коротких проводочках ATtiny13, распайку 10 раз проверил, прозвонил, всё правильно. Но тишина - ни AVReal, ни я в ручном режиме ничего не видим с выхода MISO, хоть тресни. Перепробовал 3 тиньки из имеющихся 10 - та же история. Ну, думаю, бракованая партия ... Раскопал у себя AT90S2343, тоже в корпусе SOIC 8, куплена в другое время в другом месте. Подпаял её - та же история. Куда копать - ума уже не приложу. Может, кто что посоветует ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба На прошлой неделе программировал такую обычным stk200 всё было ок. Может питание на программатор не попадает? Или мега битая. У вас на выводвх программирования ничего не висит что может сбивать сам процесс программирования? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба На прошлой неделе программировал такую обычным stk200 всё было ок. Может питание на программатор не попадает? Или мега битая. У вас на выводвх программирования ничего не висит что может сбивать сам процесс программирования? Проверял неоднократно, питание есть - распайка SPI верная, ничего лишнего не висит. Беру макетку с AT90S8515, подключаю программатор - всё ОК. Вытаскиваю МК из панельки, подпаиваю на проводочках (5-6 см) тиньку13 - нет отклика. Перепробовал 3 шт. - та же история. Взял уже AT90S2343 (тоже SOIC8) - то же самое. Такое ощущение, что эти SOIC 8 корпуса какие-то "заколдованные". Давайте сверим распайку SPI (я брал из даташита): RESET - 1, GND - 4, MOSI (вход данных в МК) - 5, MISO (выход данных из МК) - 6, CLK - 7, +5V - 8 Пробовал программировать с внешним тактовым сигналом (в AVReal опция -o0) - не помогает. А вот высоковольтного программатора у меня, к сожалению, нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба Есть самодельный программатор на LPT-порт, собранный на базе буферного элемента 74HC245 с распиновкой STK200 Распиновка правильная А почему у вас 74HC245? У меня stk200 сделан на 74HC244D Нормально программирует как 5-вольтовые так и 3.3-вольтовые платы Попробуйте программатор из CVAVR - он поддерживает stk200, там можно попробовать прочитать сигнатуру чипа. А на саму tiny13 питание поступает? Ещё попробуйте понизить частоту программатора. Может это важно для программатора - tiny13 по умолчанию тактируется от rc-генератора на 9.6 МГц Буферный элемент питается от +5В компьютера отдельным проводком Попробуйте взять питание не от lpt а от вашей платы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба Пробовал программировать с внешним тактовым сигналом (в AVReal опция -o0) - не помогает.Цоколёвка правильная. "Нулёвые" тини13 идут с внутренним RC 9.6MHz и CKDIV8=on, т.е. немногим больше мегагерца частота. avreal без ключа -o норовит выдать из рассчёта что-то около 800kHz, с округлением на реальный порт выходит ниже, так что должно шиться. Но раз даже с ручным тактированием не выходит - частота ни при чём. Это точно "нулёвые" микросхемы? Может, им успели DWEN=on сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба А почему у вас 74HC245? У меня stk200 сделан на 74HC244D Когда делал - под рукой оказался только 74HC245, разницы особой нет, работает ведь с другими чипами. Попробуйте программатор из CVAVR - он поддерживает stk200, там можно попробовать прочитать сигнатуру чипа. CVAVR попробовал в первую очередь - он не может прочитать даже сигнатуру. Вобщем-то, мне удалось точно диагностировать, что нет отклика от чипа на самом первом этапе (вход в режим низковольтного программирования), но вот причина этого мне непонятна. А на саму tiny13 питание поступает? Ещё попробуйте понизить частоту программатора. Может это важно для программатора - tiny13 по умолчанию тактируется от rc-генератора на 9.6 МГц Делал самую низкую (10 кГц), и даже вручную "щёлкал" LPT-битами. Питание есть, весь процесс наблюдал на цифровом осциллографе - все вроде как ОК, ровные прямоугольные сигналы в сторону чипа - обратно тишина. Попробуйте взять питание не от lpt а от вашей платы От линий LPT никогда не запитываюсь, питание идёт отдельным проводком от +5В компьютера (пробовал и от лабораторного БП). У меня есть две версии происходящего - либо в моих МК при производстве все фьюзы прошили нулями (тогда низковольтное SPI программирование запрещено фьюзой), либо чем-то МК в корпусе SOIC8 отличаются от своих больших собратьев в части SPI-Programming... Это точно "нулёвые" микросхемы? Может, им успели DWEN=on сделать? Точно новые, запакованые в ленту. Прям голову уже сломал ... :cranky: Есть ещё версия - если при подаче питания нет строгого "нуля" на RESET (ведь буфер в программаторе жрёт мизер и может подпитываться от LPT-линий данных) - может ли МК подвиснуть намертво ? Ток при этом он жрёт около 4 мА, что согласно даташиту, соответствует " 4 MHz standby ". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба Вспомнил вот ещё что - один раз после перепрошивки tiny13 у неё инвертировался ресет О_о т.е. она перестала программироваться вообще и сбрасывалась только при подаче на ресет логической 1 Вообще похоже у вас бракованная партия тинек попалась :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба Вообще похоже у вас бракованная партия тинек попалась :) Я уже писал, что пробовал также программировать AT90S2343 (SOIC8), которая куплена совсем давно - с ней та же история. Что ж - для чистоты эксперимента придётся купить ещё пару тинек, но в другом месте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 3 марта, 2009 Опубликовано 3 марта, 2009 · Жалоба Что-то подсказывает, что программирование чистым ЛПТ (даже без резисторов) и с внешним питанием - поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 5 марта, 2009 Опубликовано 5 марта, 2009 · Жалоба Что-то подсказывает, что программирование чистым ЛПТ (даже без резисторов) и с внешним питанием - поможет. Пробовал подключить AT90S2343 напрямую к LPT-порту (питание внешнее +5В), соединив линии LPT 2-12, 3-11 - не помогло, та же история. Подключал так: RESET - 9, CLK - 6, MOSI - 7, MISO - 10. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 6 марта, 2009 Опубликовано 6 марта, 2009 · Жалоба Вот оно что ! Ситуация начинает проясняться. Что касается AT90S2343 - оказывается, часть микросхем поставляется с выключенным внутренним RC-генератором (RCEN=1), а часть - с включенным (RCEN=0), и об этом написано в даташите мелким шрифтом в рубрике "Ordering information" (кстати, там же ошибочно указано, что изменить RCEN-бит можно с помощью высоковольтного программирования, на самом деле он перешивается и по низковольтному SPI). У меня AT90S2343-10SI, а он как раз поставляется с выключенным внутренним RC. Вобщем, подав внешний клок (в AVReal опция -o0), AT90S2343 удалось запустить, однако, как я уже писал, для ATtiny13 внешний клок не помогает. Поэтому скорее всего - имеющиеся у меня тиньки 10 шт. либо дохлые, либо поддаются только высоковольтному программированию, хотя на этот счёт в даташите ничего не сказано - как раз там написано, что все МК поставляются с включенным внутренним генератором 9,6 МГц и делителем на 8. Вобщем, попробую прикупить tiny13 в другом месте и посмотрю, будет ли она программироваться ... Кстати, никто не знает, можно ли "на коленке", не имея высоковольтного программатора, буквально подавая вручную сигналы на ноги МК, проверить, откликается ли МК при подаче на RESET 12В ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 7 марта, 2009 Опубликовано 7 марта, 2009 · Жалоба Ситуация ясна - на ATtiny13 фьюзы были установлены так: CKSEL0,1=0; SUT0,1=0, остальные фьюзы, в т. ч. SPIEN, разрешающий низковольтное программирование, были равны 1, т. е. неактивны. Выяснил это, подав 12 В на RESET и передав вручную команду "Read Fuses", по сути высоковольтным программированием. Соответственно, установив FUSE-bits как должно, всё заработало и по обычному SPI. Почему FUSE-биты так были установлены, и что за программа была залита во флэш-память - остается загадкой. Возможно, под видом новых были проданы МК с предустановленной при производстве программой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться