|
|
  |
ATtiny13 не программируется, странные грабли |
|
|
|
Mar 2 2009, 07:15
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Есть самодельный программатор на 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, куплена в другое время в другом месте. Подпаял её - та же история. Куда копать - ума уже не приложу. Может, кто что посоветует ?
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Mar 3 2009, 08:18
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(mempfis_ @ Mar 3 2009, 10:44)  На прошлой неделе программировал такую обычным 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) - не помогает. А вот высоковольтного программатора у меня, к сожалению, нет.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Mar 3 2009, 09:25
|

Профессионал
    
Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409

|
Цитата(Demeny @ Mar 2 2009, 11:15)  Есть самодельный программатор на LPT-порт, собранный на базе буферного элемента 74HC245 с распиновкой STK200 Распиновка правильная А почему у вас 74HC245? У меня stk200 сделан на 74HC244D Нормально программирует как 5-вольтовые так и 3.3-вольтовые платы Попробуйте программатор из CVAVR - он поддерживает stk200, там можно попробовать прочитать сигнатуру чипа. А на саму tiny13 питание поступает? Ещё попробуйте понизить частоту программатора. Может это важно для программатора - tiny13 по умолчанию тактируется от rc-генератора на 9.6 МГц Цитата Буферный элемент питается от +5В компьютера отдельным проводком Попробуйте взять питание не от lpt а от вашей платы
|
|
|
|
|
Mar 3 2009, 09:53
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Demeny @ Mar 3 2009, 10:18)  Пробовал программировать с внешним тактовым сигналом (в AVReal опция -o0) - не помогает. Цоколёвка правильная. "Нулёвые" тини13 идут с внутренним RC 9.6MHz и CKDIV8=on, т.е. немногим больше мегагерца частота. avreal без ключа -o норовит выдать из рассчёта что-то около 800kHz, с округлением на реальный порт выходит ниже, так что должно шиться. Но раз даже с ручным тактированием не выходит - частота ни при чём. Это точно "нулёвые" микросхемы? Может, им успели DWEN=on сделать?
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Mar 3 2009, 11:38
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(mempfis_ @ Mar 3 2009, 12:25)  А почему у вас 74HC245? У меня stk200 сделан на 74HC244D Когда делал - под рукой оказался только 74HC245, разницы особой нет, работает ведь с другими чипами. Цитата(mempfis_ @ Mar 3 2009, 12:25)  Попробуйте программатор из CVAVR - он поддерживает stk200, там можно попробовать прочитать сигнатуру чипа. CVAVR попробовал в первую очередь - он не может прочитать даже сигнатуру. Вобщем-то, мне удалось точно диагностировать, что нет отклика от чипа на самом первом этапе (вход в режим низковольтного программирования), но вот причина этого мне непонятна. Цитата(mempfis_ @ Mar 3 2009, 12:25)  А на саму tiny13 питание поступает? Ещё попробуйте понизить частоту программатора. Может это важно для программатора - tiny13 по умолчанию тактируется от rc-генератора на 9.6 МГц Делал самую низкую (10 кГц), и даже вручную "щёлкал" LPT-битами. Питание есть, весь процесс наблюдал на цифровом осциллографе - все вроде как ОК, ровные прямоугольные сигналы в сторону чипа - обратно тишина. Цитата(mempfis_ @ Mar 3 2009, 12:25)  Попробуйте взять питание не от lpt а от вашей платы От линий LPT никогда не запитываюсь, питание идёт отдельным проводком от +5В компьютера (пробовал и от лабораторного БП). У меня есть две версии происходящего - либо в моих МК при производстве все фьюзы прошили нулями (тогда низковольтное SPI программирование запрещено фьюзой), либо чем-то МК в корпусе SOIC8 отличаются от своих больших собратьев в части SPI-Programming... Цитата(ReAl @ Mar 3 2009, 12:53)  Это точно "нулёвые" микросхемы? Может, им успели DWEN=on сделать? Точно новые, запакованые в ленту. Прям голову уже сломал ...  Есть ещё версия - если при подаче питания нет строгого "нуля" на RESET (ведь буфер в программаторе жрёт мизер и может подпитываться от LPT-линий данных) - может ли МК подвиснуть намертво ? Ток при этом он жрёт около 4 мА, что согласно даташиту, соответствует " 4 MHz standby ".
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Mar 6 2009, 06:47
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Вот оно что ! Ситуация начинает проясняться. Что касается AT90S2343 - оказывается, часть микросхем поставляется с выключенным внутренним RC-генератором (RCEN=1), а часть - с включенным (RCEN=0), и об этом написано в даташите мелким шрифтом в рубрике "Ordering information" (кстати, там же ошибочно указано, что изменить RCEN-бит можно с помощью высоковольтного программирования, на самом деле он перешивается и по низковольтному SPI). У меня AT90S2343-10SI, а он как раз поставляется с выключенным внутренним RC. Вобщем, подав внешний клок (в AVReal опция -o0), AT90S2343 удалось запустить, однако, как я уже писал, для ATtiny13 внешний клок не помогает. Поэтому скорее всего - имеющиеся у меня тиньки 10 шт. либо дохлые, либо поддаются только высоковольтному программированию, хотя на этот счёт в даташите ничего не сказано - как раз там написано, что все МК поставляются с включенным внутренним генератором 9,6 МГц и делителем на 8. Вобщем, попробую прикупить tiny13 в другом месте и посмотрю, будет ли она программироваться ... Кстати, никто не знает, можно ли "на коленке", не имея высоковольтного программатора, буквально подавая вручную сигналы на ноги МК, проверить, откликается ли МК при подаче на RESET 12В ?
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Mar 7 2009, 13:41
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Ситуация ясна - на ATtiny13 фьюзы были установлены так: CKSEL0,1=0; SUT0,1=0, остальные фьюзы, в т. ч. SPIEN, разрешающий низковольтное программирование, были равны 1, т. е. неактивны. Выяснил это, подав 12 В на RESET и передав вручную команду "Read Fuses", по сути высоковольтным программированием. Соответственно, установив FUSE-bits как должно, всё заработало и по обычному SPI. Почему FUSE-биты так были установлены, и что за программа была залита во флэш-память - остается загадкой. Возможно, под видом новых были проданы МК с предустановленной при производстве программой.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|