vul 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба Здравствуйте! Не могли бы вы помочь со следующей проблемкой. В серийном производстве плат, на которых установлена AtMega128, мы долгое время использовали as2 (обычный, старый, не m) из-за того, что разработчики предоставили нам именно его. Сейчас мы закупили для другой цели несколько AVRISP mkII, в связи с чем я решил попробовать использовать один из них для прошивки тех плат. Нужно мне это из-за давней мечты о программировании из командной строки, раздражает меня программа as2isp. Так вот, проблема в следующем. Перепробовал несколько плат, стабильно avrisp работает только на одной, на остальных даже сигнатура не читается, Entering programming mode.. FAILED и все, причем выдает сообщение о том, что на SCK возможно КЗ. Хотя бывали моменты правильного чтения сигнатуры на этих платах, но это единичные случаи. С as2 те же самые платы работают без проблем, сигнатура сходу читается на частотах SPI вплоть до 115 кГц. С avrisp пробовал понижать частоту вплоть до 6 кГц, пробовал вроде и ниже на отдельных платах - не хотят и все. Возможно, проблема может быть в следующем: 1) На плате по SPI подключен еще и сигнальный процессор TMS, они с АтМегой иногда конфликтуют в случае неправильной прошивки, но в данном случае дело явно не в этом - на as2 все нормально. Может быть, линии слишком нагружены? 2) На линии RESET стоит микросхемина TPS3801L30, которая генерит низкий уровень ресета или из внешнего сигнала сброса (с разъема SPI), или из-за недостаточного напряжения питания (начальная инициализация). Я так понимаю, это стандартно, но вдруг именно она вносит какие-то искажения? 3) Может быть, влияет длина проводников? Плата подключается к программатору через контактные площадки (ложе гвоздей), потом идет на программатор, общая длина проводников для avrisp сантиметров 30-40, не больше, у as2 явно длиннее, там чуть ли не метр, так что это вряд ли. Думаю, понятно, что с первыми двумя пунктами я ничего поделать не могу, если только для интереса что-то выпаять, так как плата уже разведена так, а не иначе. Но если кто сможет помочь (например, поменять что-то в самом avrisp), буду очень признателен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NullPointer 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба Осциллоскопом посмотрите что на PDO\PDI\SCK\RESET в момент поптыки программирования. Найдите отличия м\у работой программаторов. Да и потом, у as2 10-контактный разъем ISP, а у mkII 6-контактный. Правильно подключили? PS: as2isp тоже умеет с командной строки; однако, сам не проверял... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vul 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба Осциллоскопом посмотрите что на PDO\PDI\SCK\RESET в момент поптыки программирования. Найдите отличия м\у работой программаторов. Да и потом, у as2 10-контактный разъем ISP, а у mkII 6-контактный. Правильно подключили? PS: as2isp тоже умеет с командной строки; однако, сам не проверял... Да, подключил точно правильно, потому что переходник с 6-контектного на 10-контактный работает на другом стенде, при программировании других плат, которые тоже раньше работали через as2. А по поводу командной строки, то как я понял, она работает в новой версии программы, которая для as2m-as3-as4, а со старыми программаторами эта версия проги не работает. Вот, а по поводу осциллографа гляну чуть попозже, под рукой его нет, надо будет тащить к стенду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MDD 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба На счет обычных АВРов не скажу, я их другим программатором программирую (avreal+STK200). А вот при программировании Хмеги через AVR ISP mkII заметил, что этот программатор достаточно щепетильно относится к контакту Vcc на разъеме. Как-то по ошибке подал туда напряжение на доли вольта отличающееся от напряжения питания контроллера. В результате программирование пошло с ошибками. Судя по всему программатор измеряет напряжение на этом пине и по нему выставляет уровни программирующих сигналов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vul 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба На счет обычных АВРов не скажу, я их другим программатором программирую (avreal+STK200). А вот при программировании Хмеги через AVR ISP mkII заметил, что этот программатор достаточно щепетильно относится к контакту Vcc на разъеме. Как-то по ошибке подал туда напряжение на доли вольта отличающееся от напряжения питания контроллера. В результате программирование пошло с ошибками. Судя по всему программатор измеряет напряжение на этом пине и по нему выставляет уровни программирующих сигналов. Проверил прямо по схеме, на разъем идет то же напряжение, что и запитывает контроллер (2.8 В), дело точно не в этом :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vul 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба Пробежался по ножкам, reset идеальный, на хорошей и "плохой" плате не отличаются, а вот на SCK на неработающей с avrisp плате вмечто частоты какой-то мусор, а на хорошей все нормально. Означает ли это, что не хватает нагрузочной способности? Как я и говорил, эта цепь идет еще и на ножку TMS-а, больше никуда. Я ведь правильно понимаю, SCK генерируется программатором, мы же именно им частоту задаем? Может быть можно как-то усилить этот сигнал? Как-нибудь доработав программатор... Ни у кого нет его схемы (avrisp mkII имею в виду)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба Может быть можно как-то усилить этот сигнал? Как-нибудь доработав программатор... Ни у кого нет его схемы (avrisp mkII имею в виду)? Может быть стоит пойти от обратного и убрать лишние рты?. подключить SCK только к SCK, а не к SCK и еще к TMS и еще к какой-то ботве. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vul 0 7 мая, 2009 Опубликовано 7 мая, 2009 · Жалоба Может быть стоит пойти от обратного и убрать лишние рты?. подключить SCK только к SCK, а не к SCK и еще к TMS и еще к какой-то ботве. К сожалению, проблема в том, что даже если это и поможет, пользы никакой не будет - плату то я менять не могу, не выпаивать же для прошивки атмеги BGA-шный TMS на всех сотнях/тысячах плат :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kool 0 7 мая, 2009 Опубликовано 7 мая, 2009 · Жалоба для уменьшения емкостной нагрузки поставьте на SCK последовательно резистор (100+ Ом) последовательно между мегой и TMS. P.S. TMS случаем SCK'ем не пытается управлять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vul 0 8 мая, 2009 Опубликовано 8 мая, 2009 (изменено) · Жалоба для уменьшения емкостной нагрузки поставьте на SCK последовательно резистор (100+ Ом) последовательно между мегой и TMS. P.S. TMS случаем SCK'ем не пытается управлять? Проблема в том, что я не знаю точно, что делает в этот момент TMS, но тем не менее с as2 все работает. Повозился еще с осциллографом, у меня получилось следующее. RESET и на плохих, и на хороших платах одинаковый (под плохими платами понимаю здесь те, на которых не получается считать сигнатуры атмеги с помощью avrisp, но c as2 сигнатура читается). Повесил на SCK подтяжку 5кОм. При этом на хороших платах на SCK после включения питания 2.8 В, а на плохих какое-то страное напряжение, порядка 1.5 В. Так вот, на плохих платах при попытке считать сигнатуру эти 1.5 В поднимаются на долю секунды до 2.8 В, а потом возвращаются к 1.5. Никаких синхроимпульсов там нет. На хороших же идут синхроимпульсы. Если же подключить as2, то там после 1.5 В идут синхроимпульсы с амплитудой 2.8 В, а потом, после чтения сигнатуры, напряжение возвращается к 1.5 В. То есть несмотря на эту подсадку, as2 нормально управляет этим выводом. Пробовал еще по советам повесить резистор 2кОм на RESET между разъемом ISP и супервизором, ничего не изменилось... Прилагаю к сообщению упрощенную схемку системы, может быть, посоветуете, что еще попробовать... К сожалению, допаивать что-то я могу только в разрыв между программатором и разъемом ISP, как, например, упомянутые подтяжка на SCK и 2к на RESET. Изменено 8 мая, 2009 пользователем vul Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vesago 0 8 мая, 2009 Опубликовано 8 мая, 2009 · Жалоба Попробовать на период прошивки меги глушить TMS. Допустим ресет на нем активировать. Еще может мк2 отслеживает SCK и в случае мусора прекращает сеанс => через диод подать, чтобы просадку отсеять, а до диода подтянуть к питанию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Qwertty 0 8 мая, 2009 Опубликовано 8 мая, 2009 · Жалоба К сожалению, допаивать что-то я могу только в разрыв между программатором и разъемом ISP, как, например, упомянутые подтяжка на SCK и 2к на RESET. Ну и впаяйте туда буфер типа нс125. Или вообще одногейтовый только на SCK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vul 0 12 мая, 2009 Опубликовано 12 мая, 2009 · Жалоба Ну и впаяйте туда буфер типа нс125. Или вообще одногейтовый только на SCK. Тут подсказали идею, которая выглядит очень верно, только неясно что с этим делать. Дело в том, что этот супервизор TPS3801 задерживает низкое напряжение на выходе RESET относительно входа MR на 200 мс. Это означает, что avrisp уже давно снял ресет и продолжает формировать последующую временную диаграмму, а атмега еще в ресете. as2, по видимому, дольше выжидает после снятия ресета, поэтому с ним и меньше проблем. Возникает вопрос, нельзя ли найти прошивку, в которой это время увеличено. Все больше подозреваю, что дело все же в этом. Видел информацию о какой-то прошивке клона avrisp mkII, к родному программатору она подходит, никто не знает? И есть ли в этом смысл? А по поводу буфера - может ли это помочь? И как его впаивать? Просто z-буфер, который пропускает информацию в направлении от ISP к атмеге на линии SCK? а открывать его каким сигналом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Qwertty 0 12 мая, 2009 Опубликовано 12 мая, 2009 · Жалоба Все больше подозреваю, что дело все же в этом. Вы думаете что импульсов на SCK нет из за задержки снятия сигнала RESET? А по поводу буфера - может ли это помочь? И как его впаивать? Просто z-буфер, который пропускает информацию в направлении от ISP к атмеге на линии SCK? а открывать его каким сигналом? Пробуйте. Enable - RESET. Который, если буфер не одногейтовый, тоже можно отвязать - вход буфера на землю, выход на резет контроллера, enable на резет с программатора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KVuVkVa 0 21 мая, 2009 Опубликовано 21 мая, 2009 · Жалоба Проблема решается весьма просто ! Подключите выход супервизора ко входу RESET контроллера через резистор, например 1кОм, а программатор непосредственно ко входу RESET. В этом случае супервизор не будет "мешать" программатору Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться