|
Пропатчить ДУДКУ?, Для БитБанг тестера |
|
|
|
Nov 8 2010, 10:03
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 3-09-10
Пользователь №: 59 263

|
Уважаемые товарищи программисты софта! Я ищу желающих и умеющих внести некоторые изменения в (глубоко уважаемую) AVRDUDE. Практически, требуется: 1) разобраться с существующим ключом -i
2) добавить режим "зацикливания посылки"
Сейчас поясню, что это нам даст. Мы все любим время от времени сделать-купить новый программатор. Его первый запуск - это проверка и железки, и программы (все ли там дрова стоят, все ли пучком мы задали и т.д.), и соединений между компом и программатором, между программатором и таргет-девайсом... Всегда ли все с первого раза чики-пики? Смею утверждать, что чаще не с первого... А ведь мы еще иногда усугубляем задачу одновременным запуском и таргет-платы! Тады уж полный капец - не знаешь, где же та причина, по которой комп матерится или просто огоньки, блин, не бегают по положенным дорожкам  Посмотрите по форуму - такие ситуации часто-густо! А добавьте еще одну программаторско-порожденную засаду: "умершие" МК. У каждого, небось, уже кладбище таких чипов. Что с ними не так? Часто не знаем. Шилось-шилось, не зашилось. И "бездыханность" не всегда признак летальности. Может его еще и можно оживить, да только как? Уже высоковольтный программатор искать али где? Вот такие ситуации и сподвигнули меня на поиски способа творить с МК некоторые шаманские действия, причем именно те, которые ХОЧИЦЦА, на которые хватило фантазии, со скоростью, которую я сам выбираю. Тут вариантов немеряно. Но я нафантазировал вот что. Берем простой безмозглый битбанговый программатор. Или с мозгами, но они в этом случае только заменяют FT232, т.е. последовательности импульсов на ногах программирования определяются полностью софтом компа. Обычно в таком программаторе с помощью стандартного софта, скажем любимой ДУДКИ, ноги RESET, SCK, MOSI дрыгаются для создания стандартных ISP-посылок на МК, а в ответ наблюдается нога MISO. Все прекрасно. Но вот, когда что-то не так, мы и начинаем ломать голову, искать неконтакты, задавать вопросы недоумения и т.д. А теперь представьте, что мы ничего не отключаем, аппаратно точненько все так подключено, но у ДУДКИ есть вот именно тот дополнительный режим, который я называю БитБанг тестер. В этом режиме на назначенные ноги СОМ-порта мы можем подать любую последовательность и в любом темпе (хоть до постоянного тока) и любое количество раз. А еще бы и режим пошаговой выдачи SPI-посылки (это уже перевыполнение мечт). Это ж какой класс! Можно проверить тестером, что доходит до МК, можно зациклить посылку и рассмотреть осциллоскопом. Можно навеситься кучей светодиодов на сигналы SPI-программирования и детям в школе рассказывать, как работает SPI  Как это сделать? Да фиг его знает! Знал бы - сделал. Думаю, что среди нас есть много ребят, которым такая задача по плечу. Во всяком случае, я обращался к одному из авторов ДУДКИ, товарищу Йоргу Вуншу - так он сказал, что дело плевое, исходники открыты, ваяй! Кто готов наваять? И последнее. Ключ -i очень нужен в таких тестер-применениях. У меня лично как-то не видно, чтобы он работал. Не удлиняются посылки. Йорг молчит по этому поводу. Может быть, им никто не пользуется. а он просто глючный? Или это только у меня такая нескладуха? Вот отсюда другая часть моего вопроса - разобраться с ключом.
|
|
|
|
|
 |
Ответов
|
Nov 8 2010, 10:45
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
для произвольного "ручного" дрыгания ножками LPT или COM, т.е. эмуляции бит-банговых последовательностей, существуют вполне простые и доступные независимые утилитки TCOM и LPTtestдля некоторой автоматизации ногодрыгания портами можно использовать Hardware Controlнаделять avrdude несвойственными ему функциями как-то странно...
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Nov 8 2010, 11:08
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 3-09-10
Пользователь №: 59 263

|
Цитата(ARV @ Nov 8 2010, 13:45)  для произвольного "ручного" дрыгания ножками LPT или COM, т.е. эмуляции бит-банговых последовательностей, существуют вполне простые и доступные независимые утилитки Если ты их знаешь, то можешь сказать, какая из них удобна для задачи, описанной мною? Дрыгнуть ногу вверх с помощью нескольких кликов, потом другую ногу - еще несколькими кликами... Нет уж, уволь, затрахаешься. Это я пробовал. Возьми последовательность длиной 1 байт и выдай РЕСЕТ, КЛОК, МОСИ вручную. И не забудь вовремя считывать и зарисовывать в тетрадку МИСО... Есть среди них такая утилитка, чтобы "скушала" заданную последовательность комбинаций состояний выводов - и затем выдавала мне циклически или по шагам? Если нет, то Цитата(ARV @ Nov 8 2010, 13:45)  наделять avrdude несвойственными ему функциями как-то странно... наделять ДУДКУ функциями, тесно связанными с ее основной задачей - очень даже природно. То есть, главное, что я хочу сказать: я достаточно уверен в актуальности задачи. Я готов рассмотреть варианты ее решения без ДУДКи. Решения, в котором эмбеддеру (даже начинающему) будет тепло и уютно  понятно и удобно найти причину не работы программатора и-или контроллера. Но, как автор темы, не принимаю заявлений типа "а на фига?".
|
|
|
|
|
Nov 8 2010, 13:09
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(drvlas @ Nov 8 2010, 14:08)  Нет уж, уволь, затрахаешься. Это я пробовал. Возьми последовательность длиной 1 байт и выдай РЕСЕТ, КЛОК, МОСИ вручную. И не забудь вовремя считывать и зарисовывать в тетрадку МИСО... в свое время так и делал - до сих пор жив. обычно надо добиться передачи/приема только одного байта, а остальное идет как по маслу без ногодрыганья вручную  Цитата(drvlas @ Nov 8 2010, 14:08)  Есть среди них такая утилитка, чтобы "скушала" заданную последовательность комбинаций состояний выводов - и затем выдавала мне циклически или по шагам? есть - Hardware Control позволит выдать на 12 линий LPT порта любую последовательность различным циклированием и, в том числе, в пошаговом режиме. правда на ввод битов она не способна...
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Nov 11 2010, 20:10
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 3-09-10
Пользователь №: 59 263

|
Цитата(ARV @ Nov 8 2010, 16:09)  есть - Hardware Control позволит выдать на 12 линий LPT порта ... LPT становится экзотикой. Может еще чего знаешь? По сабжу. Побродил по тамошней тусовке, посмотрел патчи. В одном из них, № 5708 предложено повторять команду синхронизации многократно (конкретно 10 раз). Там и файл показан, в котором это делается - stk500.c. НО мне это не много дало, т.к. не ясно, в этом ди файле на самом деле нужно изменять что-то, если мы рабоатем с битбангом. Да и сам процесс получения сборки ДУДКИ мне представляется чем-то чудовищным. И все же, ДУДКУ пропатчить можно. Или, на худой конец, написать некую прогу-ТЕСТЕР, которая позволит, в случае проблем с конкретным битбанговым программатором или МК, выдавать в цикле на линиии программирования заданную последовательность, заодно и принимать ответ по линии MISO. Важно иметь возможность устанавливать ей частоту импульсов как угодно низкую (тогда и тестером можно посмотреть или светодиодами) и повторять посылку сколь угодно долго.
|
|
|
|
|
Nov 12 2010, 10:31
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(drvlas @ Nov 11 2010, 23:10)  LPT становится экзотикой. Может еще чего знаешь? для Hardware Control я делал плагин СОМ-порта, т.е. теоретически можно дрыгать ножками точно так же, как PonyProg и иже с ним, только медленнее и, как уже было сказано, без ввода битов обратно. а вообще проблема мне непонятна: ногодрыгание через любой порт компа отлаживается один раз, что можно сделать даже вручную, после чего код тупо используется и ни на какие другие алгоритмы не влияет. для чего надо "дудеть" медленно или с кучей повторов - не врубаюсь. Цитата(drvlas @ Nov 11 2010, 23:10)  на худой конец, написать некую прогу-ТЕСТЕР, которая позволит... вот именно
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Nov 12 2010, 11:06
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 3-09-10
Пользователь №: 59 263

|
Цитата(ARV @ Nov 12 2010, 13:31)  а вообще проблема мне непонятна: ногодрыгание через любой порт компа отлаживается один раз, что можно сделать даже вручную, после чего код тупо используется и ни на какие другие алгоритмы не влияет. для чего надо "дудеть" медленно или с кучей повторов - не врубаюсь. Не внимательно читал мой постановочный пост. "Один раз" - это когда ты имеешь в виду? Когда заускаешь новый программатор, когда одеваешь новый шлейф, когда то и другое становятся не новыми и могут начать выбрыкивать, когда начинаешь программировать новую плату (или опять-таки, старую, но со своими новыми проблемами), когда вставляешь следующий МК для программирования? Когда меняешь комп и что-то с дровами может вылезть? Когда при всем исправном оборудовании и программе МК вдруг не хочет шиться именно здесь и сейчас - а на другой комбинации "комп-программа-программатор" ВНЕЗАПНО прошивается, а ты думаешь: Блин, а что же у меня не шилось? Что выбрасывать нах? У весьма опытных людей читаю высказывания ТИПА "да, у меня что-то тинька 13 на ДУДКЕ на прошивалась". Потом эти люди берут другой программатор и шьют. Да, вопрос решился. А что там было не в порядке? Может исследовать можно? Можно, но нужна ДУДКА, которая чуть-чуть умнее, чем нужно для "просто шить"... Если у тебя проблем не возникает - рад! Но, скорее всего, возникают и ты их лечишь обычным методом, то есть пер анус. А я не люблю так. И я вижу на форумах достаточно много недоумений (да, чаще всего от начинающих) - почему не шьется? Хочу дать и другим удобный инструмент в руки. Ведь и делов-то здесь - гулькин хер. Программатор можно брать любой битбанговый (хотя у меня есть вариант, наиболее полно использующий замедление и зацикливание - но он ждет патча). ДУДКУ грамотный программист пропатчит быстрее, чем мы тут разберемся с актуальностью темы. Так что за спор? Со всем уважением
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|