Перейти к содержанию
    

Программатор Dimoniprog (USB, STK500v2 совместимый, c изоляцией, ПУ, питанием target)

Сразу запамятовал написать, что я не проверял работу программатора с контроллерами, имеющими более 64К памяти (таких не имею в своих запасах). Так что если кто-то попробует, было бы интересно узнать результат (это тёмное место протокола и как себя ведёт студия на "стыке" перехода границы 64К точно неизвестно, так что без проверки утверждать правильность работы невозможно).

 

-------------------------------------------------------

 

Пока руки не дошли до разводки платы и сборки нового варианта программатора, решил положить тут хотя бы новую схему.

Кардинальное отличие в питании. Теперь контроллер программатора питается от такого же напряжения питания, как и целевой контроллер. Для этого есть перемычки для установки этого напряжения из вариантов: 5, 3.6, 3.3, 3, 2.7, 1.8 Вольт. Для реализации этой идеи надо поменять контроллер на Мегу88V. Софт под неё пока тоже не переделал, впрочем это не сложно. Т.к. в новом контроллере АЦП измеряет при другом референсе (питание же может быть 1.8 В), то делители с цепей питания изменены. Это тоже надо учесть в софте. Как и раньше, можно запитать целевую схему с программатора, но уже не только 5 Вольтами, но и всеми остальными вариантами напряжений.

Преобразователи уровней теперь другие и перенесены в новое место - между развязкой и контроллером программатора. Так что контроллер программатора теперь напрямую выведен на разъём ISP (ну, разве что через резисторы).

На дополнительный разъём выведен интерфейс RS-232 в уровнях логики (тоже в уровнях выбранного напряжения питания), причём после развязки. Его можно использовать, например, для прошивания ARM-ов.

Кроме того, с микросхемы FT232RL выведен на разъём интерфейс аналогичный интерфейсу PonyProg (ранее просто тупо выводил все концы, что наверное не очень нужно). Надеюсь, что в этом новом варианте схемы (т.к. контроллер напрямую подключён к ISP) можно будет таки запрограммировать этот программатор без другого программатора, прямо с компьютера программой PonyProg (соединив соответствующие цепи с этого разъёма и разъёма ISP).

Поскольку питание программатора теперь может быть разным, то светодиоды, которые включает контроллер, подключены на 5В неизменных (с DC/DC), чтобы яркость была постоянной, а чтобы управлять светодиодами при низких питаниях контроллера (чтобы он не погорел), добавлены внешние ключевые транзисторы.

В качестве кнопки SB1 я поставил т.н. тактовую кнопку (Switronic IT 1181). Кнопка SB2 с фиксацией, небольшая такая вертикальная, есть такие в магазине (Switronic MPS 580), но можно поставить и простые джамперы, как и XT2, XT3. Дело вкуса.

Кварц 3.6864МГц (а то на схеме не написано).

Индуктивность L2 прежняя, а L1 решил поставить попроще - в корпусе 1206 т.н. ferrite bead.

Цепь, ранее называемую PULSE, переименовал в более подходящий CLK.

6-пиновые разъёмы решил вообще выкинуть, так что оставил 10-пиновые, но с разным шагом. Всё-таки переход с 10 на 6 пин сделать плоским кабелем не сложно (по сравнению с переходом с одного шага на другой).

Dimoniprog_M.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наконец-то решился, развёл плату, заказал её и собрал программатор Dimoniprog-M по последней схеме. Переделал софт под Мегу88 как самого программатора, так и AES-Boot загрузчика (его под Мегу88 нет, но это, оказалось, не главная проблема). Вчера бился именно с загрузчиком. Не думал, что будет такая подстава от Атмела. Пришлось вникать и разбираться с их кодом (AVR231 - AES Bootloader). Посмотрев его, возникает ощущение, что всякие подобные "советы" производителя готовятся какими-нибудь студентами, практикантами и т.п. Ну как можно было вставить запуск ватчдога в цикл прошивальщика, надеясь на него в качестве выхода из цикла прошивания, и так и оставить ватчдог в "свободном плавании" уже после этого "запланированного" сброса? Я не понимаю. Да и вообще нахрен он там нужен по большому счёту? Только чтобы в итоге выйти из самими вставленного бесконечного цикла по окончанию прошивания? Ну это ж бред! Можно было выйти и простым return. Кто-то, видимо, именно практиковался...

Аналогичные мысли о практикантах и студентах ещё возникают, например, когда смотришь на реализацию платы АВР-Дракона (разводка DC/DC), которую я чуть было не купил в своё время, но вовремя опомнился. В общем, как известно, на других надейся, а сам не плошай.

Короче, дело было уже ночью, когда я внёс нужные правки в этот долбаный (весь вечер угробил) AES Bootloader и всё стало нормально загружаться и работать. Помимо ватчдога (оставил его, хэ с ним, но добавил код, чтобы он "расслабился") пришлось добавить включение подтяжки на вход, к которому подключена кнопка перехода на загрузку, иначе контроллер независимо от состояния кнопки всегда входил в режим загрузки (в родном железе STK500, на котором тренировались загрузчико-писатели, видимо, эта подтяжка есть, иначе я не понимаю...).

Сегодня ещё софт погоняю, потом отпишусь.

 

Прискорбно, но по результатам вчерашних разборок пришлось сделать такой вывод:

Первая схема программатора Dimoniprog, использущая ПУ ADG330x, не рекомендуется для повторения!

Analog Devices меня сильно огорчил. Тоже получается подстава, не ожидал от них. ADG330x - это ещё тот девайс. Возможно, его тоже разработали студенты-практиканты.

Траблы полезли когда я попытался прошивать новый программатор (Dimoniprog-M) старым (Dimoniprog). При том, что контроллер нового варианта "сидит" прямо на разъёме, прошить старым программатором его не удалось. Когда я посмотрел (на работу притащил) осциллографом сигналы, то удивился как такое вообще может быть: наличие подтяжки на входе сброса целевого кристалла (Меги88В в новом программаторе) приводило к тому, что сигнал на выходе ADG330x был в каком-то промежуточном состоянии, не нуль, не единица, а хрен знает что, при этом формируемый сигнал сброса, точнее его снятие на некоторое время, выглядело как импульс над этим непонятным промежуточным уровнем. В общем, нуля на сбросе я так и не увидел. По другим выходам сигналы шли вроде нормально. Я сделал вывод, что ADG330x, являясь двунаправленным ПУ с "автоопределением" направления "передачи" (в этом, видимо, сабака и зарыта) во многих ситуациях "не понимает" что он должен делать и в каком сотоянии "держаться", толи держать выходы, толи считать эти же пины входами. Так что область применения ADG330x имхо ограничена только ситуациями, когда с обеих сторон от ПУ всё заранее определено и однозначно (подтяжки, уровни, питание и т.д.). И в качестве "оконечного" интерфейса программатора явно не годится. Именно по причине таких траблов я и не рекомендую повторять первый вариант схемы программатора.

 

Напротив, второй вариант получился свободным от таких траблов, поскольку ПУ там стоят "внутри" схемы, да к тому же они теперь другие, в которых направление передачи фиксировано подачей нужного уровня на управляющий вход. Не говоря уже о других преимуществах новой схемы: можно питать target на выбор разными напряжениями или просто запитать контроллерную часть программатора внешним питанием от target, не думая о совместимости уровней (если просто снять перемычку выбора питания XT2, о чём на схеме я забыл упомянуть в описании функций перемычек).

Новый программатор (Dimoniprog-M), в отличие от старого, спокойно прошивается программой PonyProg2000 (для Меги88 надо скачать последнюю версию). Я на работе как раз ей и воспользовался (т.к. на работе никаких других программаторов не было, а мой старый вариант не шил). Так что никакого программатора не нужно. Сделал проводки, соединил разъёмы и вперёд. Но эта затея, конечно, не быстрая. Прошивка только загрузчика (2 КБ) занимала более 10 минут, а прошивка понипрогом самой программы программатора заняла более 30 минут (точно не засекал, не дождавшись конца шития, пошёл обедать). Что там с софтом пони-прога намудрил итальянец, не знаю. Видимо "исторически" как сложилось, так и осталось. Я бегло глянул сигналы, там получался такт что-то не менее 5 мс на бит! Так что с другого программатора всё же быстрее :) Правда, он ещё должен быть. Однако при использовании бут-загрузчика эта процедура начального программирования нужна только один раз, поэтому подождать 10-15 минут пока прошивается бут-загрузчик не обременительно. А дальше уже самим бут-загрузчиком заливать прошивку, это быстро, секунды 4-5.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Куул! Есть ли лишние платы на продажу ? Можно ли замениить FTDI на Prolific ?

Изменено пользователем Огурцов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Покрутил немного вечером новый вариант в работе, вроде работает без проблем, не то что старый, который кабенился в некоторых ситуациях. И на более длинном ISP кабеле, на котором старый не работал, этот работает. Завтра ещё покручу, посмотрю.

Оказалоь, что VREF имеет достаточный разброс (по даташиту от 1 до 1.2 В), так что измеряемое напряжение питания с АЦП получалось с ошибкой в 60 мВ (при 5В). Так что "выбрал" отклонение референса через коррекцию величины сопротивлений делителей, благо такую фичу встроил.

 

Куул! Есть ли лишние платы на продажу ? Можно ли замениить FTDI на Prolific ?

Я заказывал 5 плат, сделали 6. Но мне самому то столько не надо. Себе может ещё один соберу для подстраховки. Да и платы же повторно заказать можно. За подготовку производства берут деньги только в первый раз, так что теперь не так накладно.

 

А зачем Prolific? Это же тупиковый вариант. С драйверами под новые и некоторые операционки проблемы - их нет (под Висту, например). Причём делать их производители не собираются, перекладывая драйвера на плечи тех, кто использует их микрухи. Даже откровенно посылают нах.

Так что если не нравится FTDI, то тогда уж менять на SiLabs, они драйвера делают для всего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу комплектующих: у меня запаса практически нет, почти всё ушло на эти образцы :(

То, чего у меня не было, я покупал в Мегаэлектронике (прошу не считать рекламой). По-моему там можно всё что нужно купить. Вроде и выслать они тоже берутся. Резисторы и электролиты брал в Микронике. Но не знаю, будут ли они высылать. Изоляторы и DC/DC покупал в Элтехе. Разъёмы, кнопки, светодиоды брал у нас на "толчке" (Юнона).

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

 

Вечером выложу перечень деталюх для нового варианта. Заодно посчитаю во что выливается закупка в розницу всех деталюх. Цены как-то незаметно для меня подросли. Например, раньше (правда, давненько уже) резисторы покупал по 20коп, а в этот раз уже по 1руб.

 

По поводу рассылки плат с оплатой WM. В принципе это возможно, WM имеется. Если понадобится платы изготовить, то это неделя максимум (Резонит). Сколько стоит сама плата, я дома посмотрю (запамятовал) и вечером скажу.

Я вот только уже сто лет ничего не посылал, ни почтой, ни курьерами. Всё только получал :)

Вот и думаю, как эту плату высылать проще? Тем более за пределы (в Киев тот же; эх, неделей бы раньше, я бы с шефом отправил, он туда уехал в командировку). Хотелось бы так, чтобы расходы по пересылке оплачивал получатель при получении, а то хрен знает сколько это куда стоит. Это в наше время возможно? Просветите, плз, кто в этом деле знаток. А то на нашу почту ходить и узнавать, прямо скажу, - желания нет, да и толком там ничего не узнаешь. Они там делают очень большое одолжение для нас, что за гроши выходят на работу, так что отношение соответствующее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Покупатель может отправить к Вам курьера, а саму посылку оплатить при получении. Т.е. от Вас просто понадобится встретиться с курьером и всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вечером запаял ещё один образец. Заработало всё на ура. Зашил его первым образцом тоже на ура. Во втором варианте поставил светодиоды 0805 (вместо 1206).

 

Выкладываю схему с перечнем:

 

Dimoniprog_M.rar

В схеме исправил только поясняющий текст. В перечне приведены замены имея в виду мою плату (в соответствующих корпусах). Если кто будет свою плату делать, то вариантов замен намного больше.

 

Софт позже выложу, с пояснениями. Сейчас времени нет.

 

На счёт стоимости платы. Не знаю, ну, пусть будет пока 150р. Пока, т.к. не знаю сколько запросят за платы при повторном заказе. У Резонита есть калькулятор, но что-то там у них непонятно с ценами, пока не выяснил у них что по чём. А то в калькуляторе одно, а счёт присылают с другой суммой...

 

----------------------------------------

 

Тут на работе появилась потребность для производства упростить программирование моих плат контроллеров гигабитного эзернета с Xilinx Platform Flash - памятью. Вот я и подумал сделать на этом программаторе проигрыватель SVF (XSVF) файлов, т.е. шить по JTAG интерфейсу флеша (ISP соединить с JTAG). Для этого надо будет либо дополнить текущую прошивку, либо отдельную сделать под это дело. Что-то типа режима трансляции состояний JTAG линий интерфейса с компьютера. По идее тогда можно много чего другого шить, что имеет JTAG интерфейс.

 

Покупатель может отправить к Вам курьера, а саму посылку оплатить при получении. Т.е. от Вас просто понадобится встретиться с курьером и всё.

Ну, мне то такой вариант нравится, но может такая доставка будет накладна?

А как же гарантия оплаты? Вдруг покупатель не заплатит? Они что, готовы рисковать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посчитал по розничным ценам (там где я покупал) во что выливается закупка деталей. Оказалось примерно 800р на девайс. Мне показалось, что DC/DC за последние пару недель успели подорожать чуть ли не на 50р.

Правда, когда смотришь на цену похожего девайса от Олимекс (AVR-ISP500-ISO) в 5-6 тысяч рублей (eFind), то затраты в тыщу (с платой) уже не кажутся большими. А разница в наличии памяти "на борту" и возможности прошивать автономно по нажатию кнопки (та идея, что я в теме про BootProg вещал). По идее к моему варианту можно добавить микруху памяти и будет не хуже (кнопка уже имеется :) ), зато сильно дешевле.

Можно сэкономить примерно 300р на изоляции, если не ставить DC/DC и ADUM1201, замкнув соответствующие связи. Но мне кажется это неоправдано, всё же изоляция дело полезное, особенно в целях безопасности компьютера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно сэкономить примерно 300р на изоляции, если не ставить DC/DC и ADUM1201
я оценил важность изоляции когда бабахнула плата управления асинхронником (многие дорожки и детали испарились, ноль отгорел, а варисторы светились еще минут десять), к которой был подключен мой прог. Ноутбук стоимостью 1,5К$ был спасен.

 

еще вопрос - зачем выводить bitbang-isp из ft232, ведь контроллер первый раз можно запрограммировать через выходной разъем (только вывести туда его Reset), а дальше - через бутлоадер ?

 

Вот я и подумал сделать на этом программаторе проигрыватель SVF (XSVF) файлов
вообще назрела необходимость в замене зоопарка Ponyprog/ICprog/Willem/BBlaster/PICprog и т.д. на универсальный с подключением по УСБ, с встроенной памятью для автономной прошивки (массовые производители скажут спасибо), и работой под Win/Lin/Mac. Для быстрого JTAG имхо частотка маловата, наверно нужен более быстрый контроллер. К вашему варианту имхо нужно добавить генератор высокого (для ATTiny, PIC и т.п.), вывести лишние выводы на вых. разъем (для прогр. устройств с параллельной шиной данных (NAND, LPC-flash, AVR parallel)).

Можно добавить разъем micro-sd, на которую писать файлы прошивок и сценарий программирования.

Еще идея - адаптер USB-radio-serial/isp на CC1101 - для прошивки с удаленного компьютера.

Изменено пользователем ukpyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

еще вопрос - зачем выводить bitbang-isp из ft232, ведь контроллер первый раз можно запрограммировать через выходной разъем (только вывести туда его Reset), а дальше - через бутлоадер ?

1. Вывод интерфейса PonyProg сделан, чтобы шить контроллер программатора, не имея другого программатора (не у всех же он есть). Получается, что спаял, подключил к компу и зашил PonyProg-ом бут.

2. Если внимательно читать тему и смотреть схему ;) , то можно увидеть, что Reset через перемычку выведен на ISP интерфейс. Так что программирование программатора через ISP не возбраняется. Я так второй экземпляр и прошивал.

 

вообще назрела необходимость в замене зоопарка Ponyprog/ICprog/Willem/BBlaster/PICprog и т.д. на универсальный с подключением по УСБ, с встроенной памятью для автономной прошивки (массовые производители скажут спасибо), и работой под Win/Lin/Mac. Для быстрого JTAG имхо частотка маловата, наверно нужен более быстрый контроллер.

Автономную прошивку я "сделал" в своей теме про BootProg. К сожалению, эта мысль пришла уже после того, как я сделал программатор Dimoniprog. Так что автономность тогда не предусматривал.

По поводу быстрого JTAG, может тоже буду делать. Пока попробую небыстрый сделать на этом же железе (Dimoniprog-M). А дальше видно будет, как раз дойдёт дело до продаж моста нового поколения от FTDI под hi-speed USB (FT2232H, FT4232H), там уже под JTAG заточено плюс высокая скорость.

 

К вашему варианту имхо нужно добавить генератор высокого (для ATTiny, PIC и т.п.), вывести лишние выводы на вых. разъем (для прогр. устройств с параллельной шиной данных (NAND, LPC-flash, AVR parallel)).

Можно добавить разъем micro-sd, на которую писать файлы прошивок и сценарий программирования.

Ну, конечно, много чего можно. Но есть ли нужда? Я железо делал изначально под себя, а у меня таких нужд нет. А выложил сюда в качестве примера реализации железа (программатора) под софт, реализующий протокол STK500v2. Взяв софт, можно (с небольшими доработками, а может и большими?) "завести" с его помощью железо любой навороченности (в пределах разумности).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Dimonira, а софт выложишь?

Уперся я, млин, в AES бутлоадер невовремя - надо другим заниматься, а эта штука не работает, и разбираться неинтересно - собаку вроде поправил, так теперь CRC не проходит при старте - хочется взять рабочее и не отвлекаться от основной задачи - устал сегодня.

Насчет FT2232H - поможет-ли? Разве в пропускной канала проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...