Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Странная проблема с доступом к МК через ISP
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
_lukash_
Впервые столкнулся с такой проблемой - если подсоединить ISP шнур программирования к микроконтроллеру (в данном случае AT90PWM3B) и попытаться связаться с ним, к примеру считать фюзы, то первые 3-4 раза все проходит нормально ,а потом микроконтроллер выдает неверный ID и любую другую информацию по фюзам...

Если с первого раза пытаться его прошить - он прошивается корректно (даже проверка содержимого флєши после записи проходит успешно) - но прошитая программа в нем не работает.

Пробовал 2-мя разными программаторами - AVREAL с LPT шнуром и AVRISP - результат одинаков.

До этого микроконтроллер корректно шился и работал несколько часов - сбой случился после очередного программирования...

Может кто сталкивался с такой проблемой и смог ее решить, подскажите плз
ARV
я сталкивался с похожей проблемой дважды, оба раза с STK500: когда случайно зафигачил кварц 22 мГц вместо 11 и когда использовал частоту ISP выше, чем рекомендовано (минимум в 4 раза ниже тактовой МК). лечение очевидно - нормализовать частоты smile.gif как правило после прошивки фьюзов и начинаются проблемы...
_lukash_
Фюзы я не менял...
Тактирование от внутреннего 8МГц RC установлено было
С частотой ISP поэкспериментирую, но кажется не в этом дело - я ее тоже не менял...
bloodden
Если шили из CVAVR - то запросто могли фузы прошить. Он там сам по-умолчанию их пишет.
_lukash_
Нет, шью через AVRStudio4
С фюзами вроде как все в порядке - ведь первые несколько раз они читаются именно такими, какими должны быть...
А уже потом вся информация с ошибками вычитывается...

Также проблема в том, что зашитый в МК код не выполняется(
Dimonira
Не ищите одну причину, скорее всего их две или больше.
Так что то, что код не выполняется, может вовсе не связано с программированием. Может сама программа с ошибкой и работает некорректно.
defunct
Очень напоминает ситуацию когда МК не запитан. (и питается от сигналов программатора).
Проверьте, что питание есть на всех выводах VCC/AVCC.
_lukash_
Проверил напряжение на выводах VCC/AVCC - в норме.

Еще что заметил - считал фюзы, потом выставил тактирование от внешнего кварца, получилось зашить фюзы обратно. При этом после подачи питания присутствует соответственный сигнал на ногах XTAL

Зашиваю программу чтоб моргала светодиодом - не работает(раньше она же работала корректно на этом же МК)

При первом считывании по ISP 0x1E, 0x93, 0x83 - корректный ID. Потом ID 0x00, 0x01, 0x02...
Nanobyte
Цитата(_lukash_ @ Nov 28 2008, 18:40) *
...Потом ID 0x00, 0x01, 0x02...

Сильно смахивает на чтение залоченной FLASH или EEPROM.
Dimonira
А другой контроллер имеется? Если этот не жилец, то надо сравнить с предположительно исправным.
_lukash_
Да, запаян на этой же плате
Второй пока работает корректно
Линии питания на них общие
Фюзы зашиты одинаковые
defunct
Цитата(_lukash_ @ Nov 28 2008, 16:40) *
При первом считывании по ISP 0x1E, 0x93, 0x83 - корректный ID. Потом ID 0x00, 0x01, 0x02...

Все еще похоже на проблемы с питанием. Буфер адаптера запитан?
Шлейф у вас какой длины? Чем питаете чип?

Цитата
Сильно смахивает на чтение залоченной FLASH или EEPROM.

не особо то смахивает. особливо в свете того что речь идет о сигнатуре чипа.
_lukash_
Чип питаю через импульсный преобразователь 24->5V
Шлейф короткий - осциллографом смотрю питание - ровное

Можно подробней насчет буфера адаптера?
Petka
Цитата(Nanobyte @ Nov 28 2008, 17:49) *
Сильно смахивает на чтение залоченной FLASH или EEPROM.

Похожий эффект наблюдался, когда поменяли набортный LPT на PCI карту. Лечилось ключом "-5" в avreal.
Nanobyte
Цитата(defunct @ Nov 28 2008, 20:46) *
... не особо то смахивает. особливо в свете того что речь идет о сигнатуре чипа...

У старых AVR, если кристалл залочен, сигнатура также читалась в виде 00,01,02. Для PWM3 не пробовал. У новых сигнатура вроде читается правильно и в залоченном виде.
ИМХО, проблемы с программатором, или MISO/MOSI/SCK нагружены чем-то, может кристалл уже помирает от экспериментов.
defunct
Цитата
Чип питаю через импульсный преобразователь 24->5V
Шлейф короткий - осциллографом смотрю питание - ровное

Все выводы подключены?

Цитата
Можно подробней насчет буфера адаптера?

Разъем ISP предполагает наличие 6 пинов - 4 управляющих, земля и Vtarget. С пина Vtarget берется питающее напряжение для выходного буфера программатора.

Цитата
ИМХО, проблемы с программатором, или MISO/MOSI/SCK нагружены чем-то, может кристалл уже помирает от экспериментов.

Можно было бы согласиться с диагнозом, если бы глючил только 1 программатор, а так автор заявляет что глючит 2, причем разных. Согласен что дело может быть в уровнях, но чип тут не при чем, проблема с подключением - с таргет платой. Напр VCC к Vtarget подведено через 10K резистор или через неадекватный диод, и т.п.

Еще смущает импульсник. Хоть автор и говорит что с ним все ОК, я бы все-таки предложил попробовать запитать чистым батарейным питанием или хотя бы от линейного стабилизатора.
_lukash_
Померял линию Reset - она в 0...
В схеме подтягивающего резистора на Reset небыло - поставил 10кОм - по прежнему в 0.
Если замкнуть ресет на +5В проводником ,микроконтроллер начинает корректно работать! Тестером ток мерял (между 5В и Reset) - 50мВ получается

Т.е. можно просто подтянуть резистором Reset, и так и оставить?
_Pasha
Цитата(defunct @ Nov 29 2008, 03:09) *
Еще смущает импульсник.

Вот-вот-вот! Ресет в +5 - это только следствие того, что у Вас ЭМ несовместимость с компом (если он не ноут от аккумулятора).
Потому что я бы побоялся ISP без гальваноразвязки так просто подключать. Насмотрелся sad.gif
Nanobyte
Цитата(_lukash_ @ Dec 1 2008, 20:20) *
...Померял линию Reset - она в 0...
В схеме подтягивающего резистора на Reset небыло - поставил 10кОм - по прежнему в 0...

А может, плата плохо отмыта после пайки? Здесь, на форуме, уже было несколько тем со схожими проблемами.
И ещё, не используется ли в PWM3 линия RESET ещё для каких-либо целей (DS под рукой нет, посмотреть не могу), может быть FUSE заставили её сменить ориентацию?
_lukash_
Цитата(defunct @ Nov 29 2008, 01:09) *
Разъем ISP предполагает наличие 6 пинов - 4 управляющих, земля и Vtarget. С пина Vtarget берется питающее напряжение для выходного буфера программатора.

У нас на плате разъем ISP состоит из 5 пинов - мы запитываем программатор от блока питания.
Т.е. программатор запитан хорошо - также саму плату запитывал от разных источников питания - проблема та же (при этом второй такой же МК на этой же плате во всех случаях работал нормально)


Цитата(Nanobyte @ Dec 1 2008, 20:48) *
А может, плата плохо отмыта после пайки? Здесь, на форуме, уже было несколько тем со схожими проблемами.
И ещё, не используется ли в PWM3 линия RESET ещё для каких-либо целей (DS под рукой нет, посмотреть не могу), может быть FUSE заставили её сменить ориентацию?


Плата отмыта хорошо. Да и контроллер перешел в это глючное состояние сразу после одной из перепрошивок
Линия RESET ничем больше не задействована.


Пока эту проблему решу подтяжкой к 5В линии RESET - но не уверен что это правильный выход...
(даже килоомный резистор никакого эффекта не дает ,при токе 50мА резистор нужен около 100Ом...)

Если получится как то решить проблему, отпишусь.

Спасибо всем за помощь!
_lukash_
Уф..
Только что второй такой же контроллер сдох(
Опять же - после перепрошивки.
Последствия те же что и у первого МК...
Пока лечится принудительным подтягиванием линии RESET..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.