Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с ISP через LPT.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Княго
Здравствуйте! У меня схема с ATTiny2313v, питание 3 вольта от дешевых батареек, программирование через lpt напрямую, используя avrdude. При первом чтении мк определился, флеш прочиталась правильно (все ff). Через некоторое время (секунд 30-60) из памяти стали читаться последовательные числа парами (00, 00, 01, 01, 02, 02, 03, 03, 04, 04 ...), еше через некоторое время - мусор, а еще через некоторое - нули. Если отключить питание, то минут через 15 можно всё начать с начала - опять будет то же самое.
В чем причина такого странного поведения? Как заставить его нормально прошиваться?
fmdost
Цитата(Княго @ Oct 2 2009, 23:34) *
В чем причина такого странного поведения? Как заставить его нормально прошиваться?

Поставить алкалиновые батарейки, и параллельно им(по питанию) + электролитический конденсатор микрофарад на 200, ну или больше. И керамический 0,1мф прямо между ножек 10 и 20.
Княго
Цитата(Т.Достоевский @ Oct 2 2009, 23:47) *
Поставить алкалиновые батарейки, и параллельно им(по питанию) + электролитический конденсатор микрофарад на 200, ну или больше. И керамический 0,1мф прямо между ножек 10 и 20.

Поставил по питанию электролитический конденсатор (керамический стоял и до этого), запитал от пяти вольт блока питания - та же херня! Как быть? Почему сначала работает, а потом нет?
AHTOXA
Цитата(Княго @ Oct 3 2009, 01:34) *
В чем причина такого странного поведения?


Наверное в том, что на LPT уровни 5в?

Цитата
Как заставить его нормально прошиваться?


Либо быстренько прошить за 30 секунд, либо собрать минимальный адаптер с буферной микросхемой и питанием её от программируемого устройства.
Княго
Цитата(AHTOXA @ Oct 3 2009, 11:15) *
Наверное в том, что на LPT уровни 5в?

Это отпадает, потому что я запитал его от пяти вольт.

При включенном питании от него приходят те же данные, что на него посылаются. При выключенном приходят нули, при пустом LPT - ff. Как будто MISO и MOSI закорочены, но только при включенном питании.
ReAl
Цитата(Княго @ Oct 3 2009, 11:13) *
При включенном питании от него приходят те же данные, что на него посылаются. При выключенном приходят нули, при пустом LPT - ff. Как будто MISO и MOSI закорочены, но только при включенном питании.
Не совсем те же. При работающем канале SPI программирования, но без входа в программирование (или при случайном выходе из него из-за какого-то сбоя) - по этому каналу идёт задержка в один байт.
При попытке "читать" из кристалла в таком состоянии при чтении флеш и будут читаться байты 00 00 01 01 02 02 и т.д. - младшие байты адресов *слов*, которые шли третьими в командах чтения и вышли из кристалла четвёртыми на месте данных. Так же выходит при залоченном кристалле, когда блокируется считывание.
Из EEPROM при этом читается 00 01 02 03 ...
При паршивых землях/больших наводках бывает, что несколько первых команд проходит нормально, а потом сбивается обмен (проскочил лишний SCK - нарушилась нарезка битового потока на байты, автомат программирования не воспринимает команды чтения и просто выпускает наружу всё, что принял, но оно проходит сквозь внутренний 8-битный сдвиговый регистр и задерживается на байт для программатора).

Если есть время - попробуйте avreal-ом, мне просто интересно, скажет ли он synchronisation lost

Если он так скажет - чистить земли, ставить, как уже советовалось, керамику поближе к контроллеру, врезать последовательные резисторы 30-100 Ом в сигналы (особенно SCK и даже может после резистора пикофарад сто на землю).
Княго
Цитата(ReAl @ Oct 3 2009, 12:56) *
Не совсем те же. При работающем канале SPI программирования, но без входа в программирование (или при случайном выходе из него из-за какого-то сбоя) - по этому каналу идёт задержка в один байт.


Нет, именно те же, причем теперь с самого начала. Он шлет AC 53 00 00 - ответ тоже AC 53 00 00
ReAl
Цитата(Княго @ Oct 3 2009, 13:16) *
Нет, именно те же, причем теперь с самого начала. Он шлет AC 53 00 00 - ответ тоже AC 53 00 00
Те же на раз получаются при висящих проводах программатора за сч'т наводки с MOSI на MISO. Ну или при несброшенном процессоре без программы или с программой, которая оставила ноги MOSI/MISO в высокоимпедансном состоянии - всё зависит от адаптера, кабеля, ...
Княго
Мнда... Щас проверил старый девайс с Mega8535. Хоть разводка и ужасная, никаких резисторов по сигналам нет, конденсаторов по питанию тоже нет, проводки для программирования просто прикручены, но всё прекрасно работает! Почему так? Tiny2313 какой-то особенно капризный к наводкам?
Княго
Переразвел плату - сделал большие полигоны земли повсюду, избавился от петель, сделал дорожки сигналов максимально короткими; сделал "программатор" на 74125, подключил через него - всё заработало! Спасибо всем за помощь, теперь буду серьезней относиться к разводке платы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.