Jump to content
    

ATtiny13 не программируется

Есть самодельный программатор на 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, куплена в другое время в другом месте. Подпаял её - та же история.

Куда копать - ума уже не приложу.

Может, кто что посоветует ?

Share this post


Link to post
Share on other sites

На прошлой неделе программировал такую обычным stk200 всё было ок.

Может питание на программатор не попадает?

Или мега битая.

У вас на выводвх программирования ничего не висит что может сбивать сам процесс программирования?

Share this post


Link to post
Share on other sites

На прошлой неделе программировал такую обычным 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) - не помогает.

А вот высоковольтного программатора у меня, к сожалению, нет.

Share this post


Link to post
Share on other sites

Есть самодельный программатор на LPT-порт, собранный на базе буферного элемента 74HC245 с распиновкой STK200

 

Распиновка правильная

А почему у вас 74HC245?

У меня stk200 сделан на 74HC244D

Нормально программирует как 5-вольтовые так и 3.3-вольтовые платы

Попробуйте программатор из CVAVR - он поддерживает stk200, там можно попробовать прочитать сигнатуру чипа.

А на саму tiny13 питание поступает? Ещё попробуйте понизить частоту программатора. Может это важно для программатора - tiny13 по умолчанию тактируется от rc-генератора на 9.6 МГц

 

 

Буферный элемент питается от +5В компьютера отдельным проводком

 

Попробуйте взять питание не от lpt а от вашей платы

Share this post


Link to post
Share on other sites

Пробовал программировать с внешним тактовым сигналом (в AVReal опция -o0) - не помогает.
Цоколёвка правильная.

"Нулёвые" тини13 идут с внутренним RC 9.6MHz и CKDIV8=on, т.е. немногим больше мегагерца частота. avreal без ключа -o норовит выдать из рассчёта что-то около 800kHz, с округлением на реальный порт выходит ниже, так что должно шиться.

Но раз даже с ручным тактированием не выходит - частота ни при чём.

 

Это точно "нулёвые" микросхемы? Может, им успели DWEN=on сделать?

Share this post


Link to post
Share on other sites

А почему у вас 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 ".

Share this post


Link to post
Share on other sites

Вспомнил вот ещё что - один раз после перепрошивки tiny13 у неё инвертировался ресет О_о

т.е. она перестала программироваться вообще и сбрасывалась только при подаче на ресет логической 1

 

Вообще похоже у вас бракованная партия тинек попалась :)

Share this post


Link to post
Share on other sites

Вообще похоже у вас бракованная партия тинек попалась :)

Я уже писал, что пробовал также программировать AT90S2343 (SOIC8), которая куплена совсем давно - с ней та же история. Что ж - для чистоты эксперимента придётся купить ещё пару тинек, но в другом месте.

Share this post


Link to post
Share on other sites

Что-то подсказывает, что программирование чистым ЛПТ (даже без резисторов) и с внешним питанием - поможет.

Share this post


Link to post
Share on other sites

Что-то подсказывает, что программирование чистым ЛПТ (даже без резисторов) и с внешним питанием - поможет.

Пробовал подключить AT90S2343 напрямую к LPT-порту (питание внешнее +5В), соединив линии LPT 2-12, 3-11 - не помогло, та же история. Подключал так: RESET - 9, CLK - 6, MOSI - 7, MISO - 10.

Share this post


Link to post
Share on other sites

Вот оно что ! Ситуация начинает проясняться. Что касается AT90S2343 - оказывается, часть микросхем поставляется с выключенным внутренним RC-генератором (RCEN=1), а часть - с включенным (RCEN=0), и об этом написано в даташите мелким шрифтом в рубрике "Ordering information" (кстати, там же ошибочно указано, что изменить RCEN-бит можно с помощью высоковольтного программирования, на самом деле он перешивается и по низковольтному SPI). У меня AT90S2343-10SI, а он как раз поставляется с выключенным внутренним RC.

Вобщем, подав внешний клок (в AVReal опция -o0), AT90S2343 удалось запустить, однако, как я уже писал, для ATtiny13 внешний клок не помогает. Поэтому скорее всего - имеющиеся у меня тиньки 10 шт. либо дохлые, либо поддаются только высоковольтному программированию, хотя на этот счёт в даташите ничего не сказано - как раз там написано, что все МК поставляются с включенным внутренним генератором 9,6 МГц и делителем на 8.

Вобщем, попробую прикупить tiny13 в другом месте и посмотрю, будет ли она программироваться ...

Кстати, никто не знает, можно ли "на коленке", не имея высоковольтного программатора, буквально подавая вручную сигналы на ноги МК, проверить, откликается ли МК при подаче на RESET 12В ?

Share this post


Link to post
Share on other sites

Ситуация ясна - на ATtiny13 фьюзы были установлены так: CKSEL0,1=0; SUT0,1=0, остальные фьюзы, в т. ч. SPIEN, разрешающий низковольтное программирование, были равны 1, т. е. неактивны.

Выяснил это, подав 12 В на RESET и передав вручную команду "Read Fuses", по сути высоковольтным программированием. Соответственно, установив FUSE-bits как должно, всё заработало и по обычному SPI.

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...