USB-программатор для микроконтроллеров AVR на базе FT232 (APU-2)

AVR
Похожие программаторы:

APU-2N (Narrow),
APU-2M (Module USB),
APU-2MM (Module Mini-USB)

Поделюсь с общественностью еще одним вариантом USB программатора микроконтроллеров AVR на базе чипа FT232RL. Сразу отмечу, что данная разновидность программаторов (т.е. основанная на «тупой» логике FT232RL) является идеальным вариантом для людей, только начинающих осваивать микроконтроллеры AVR, поскольку не требует программатора, чтобы прошить программатор для того, чтобы начать прошивать микроконтроллер (вот так вот всё сложно).





В преддверии 8 Марта благополучно издохла материнка. Само собой, пришлось тащиться за новой, ибо для жены без игр на Мэйл.ру и праздник – не праздник. Ну и естественно, что про LPT-порт на борту матери я как-то позабыл, поскольку на старой он присутствовал, и был само собой разумеющимся. Обнаружился сей прискорбный факт только ближе к весне, когда понадобилось доработать некий дывайс с работы в домашних условиях.

Приношу домой, пытаюсь воткнуть STK200 в LPT-порт, а он не лезет, ибо некуда. И COM-порта тоже нет, ага. На следующий день приволок AVR910, который хоть как-то, хоть с жутчайшими глюками, но шил камни на рабочих относительно древних компах. Новый же электронный друг работать с этим программатором отказался – не видит его шьющий софт, и всё.

Впрочем, я даже не огорчился. Уже давно назрела потребность в новом, более прогрессивном программаторе. И, поскольку с FT232RL я был год-полтора знаком, в башке прочно засела мысль – народные умельцы уж точно ее как-то смогли прикрутить к задаче программирования микроконтроллеров. Однако, посмотреть примеры и смастерить себе подобный программатор всё как-то руки не доходили.

И вот – прекрасный повод! Поматерившись для виду, начал лазать в Интернете. Забил в гугл «USB программатор AVR FT232RL», начал изучать ссылки. Первой попалась ссылка на статью DiHalt’а. Вывод, который я сделал из этой статьи – благодаря битбангу программатор на FT232RL должен получиться дубовый и шустрый. В принципе, поиски можно было прекращать, ибо сам принцип работы программатора не предполагает существования другой схемы с какими-либо серьезными отличиями (ну, разве что сигналы MOSI, MISO, SCK и RESET будут сниматься с других ног FT232RL). Однако, не радовало наличие кнопок «RUN» и «PROG». Хотелось, чтобы всё получалось автоматически, как в STK200. Решил поискать еще – и точно! Народные умельцы допилили дудку, теперь она может дергать еще одну из ног FT232RL в то время, пока шьется камень. Ну, думаю, теперь точно всё, можно делать дывайс.

При создании программатора мне хотелось чтобы:

— дывайс был как можно меньше, чтоб таскать его в кармане как флэшку;
— дывайс можно было совать прямо в порт USB (обратно, как и флэшку), ибо количество проводов на рабочем столе и так ужасает;
— был доступ ко всем возможностям FT232RL, не использующимся непосредственно для функций программирования (это чтобы не городить отдельные железяки для USB-UART, исследования работы битбанга, использования «штатных» возможностей шины CBUS и т.д.);
— для прошивки можно было использовать старый шлейф от STK200;
— дывайс не сиял, как новогодняя елка, но была возможность проконтролировать хотя бы начало и конец прошивания камня;
— ну и желательно чтобы количество слоев меди равнялось одному.

Вот схема того, что получилось (фото собранного программатора приведены в начале заметки):



Ничего нового здесь не придумано, никаких Америк не открыто. Описание работы схемы неоднократно приводились в Интернете. В принципе, здесь и описывать-то особо нечего. Данная схема просто направляет сигналы MOSI, MISO, SCK и RESET, которые формируются на выводах DCD, DTR, RTS и DSR микросхемы DD1 (FT232RL) соответственно, на нужные выводы прошиваемого микроконтроллера. Причем, делает это только в момент программирования камня, в остальные моменты времени программатор отключен от прошиваемой платы за счет 4-х буферных элементов микросхемы DD2 (74HC125D). Состояние линий MOSI, MISO, SCK и RESET устанавливается/считывается прошивающим софтом на компьютере. Передача данных между компом и микросхемой FT232RL идет по шине USB (от которой еще и получает питание программатор).

Светодиод HL2 («PWR») сигнализирует о подаче на программатор напряжения питания с шины USB. Светодиод HL1 («PROG») индицирует процесс прошивки микроконтроллера (горит только во время прошивки). Вот, в принципе, и все описание собственно схемы электрической принципиальной.

Печатная плата (TOP View):



Печатная плата (BOTTOM View):



Ориентировочные габаритные размеры программатора:



Фото печатной платы:



Чтобы не делать заметку громоздкой, я здесь не буду описывать установку дров для программатора и описание прошивающего софта (я шью дудкой вкупе с SinaProg). В архивах в конце заметки есть файл краткого описания программатора, в котором рассказано об этом (с картинками). Или можно посмотреть освещение данных вопросов на бескрайних просторах Интернета. Отмечу лишь, что для рассматриваемого дывайса в файл avrdude.conf нужно добавить следующий текст:

programmer
id = «APU_2»;
desc = «FT232R Synchronous BitBang»;
type = ft245r;
miso = 4;
sck = 2;
mosi = 6;
reset = 5;
gates = 3;
;

UPDATE: для тех, кто сидит на Линуксе — вот тут камрад rimsleur рассказывает, как сделать так, чтобы программатор отваливался от таргет платы по окончании процесса программирования.

Вот, собственно, и всё. Удачной работы с микроконтроллерами!

Примечание: все вопросы лучше валить в камменты после заметки, так как не факт, что я смогу на них на все ответить. А вот шансы на то, что в сообществе найдется более прошаренный человек по твоей теме — довольно хорошие. Но уж если зарегистрироваться на сайте совсем никак — можно воспользоваться возможностями электрической почты: podkassetnik@yandex.ru

Содержание архивов:

APU-2_Hardware.zip:
APU-2_SCH.pdf — схема электрическая принципиальная;
APU-2_ЛУТ.lay — печатная плата для «утюжников» (SL v5.0);
APU-2_ФР.lay — печатная плата для «шаблонщиков» (SL v5.0).

APU-2_Software.zip:
SinaProg — программа-прошивальщик с поправленными файлами конфигурации.

APU-2_Describe.zip:
APU-2_Описание.pdf – краткое описание программатора и работы с ним.
Файлы в топике: APU-2_Describe.zip, APU-2_Hardware.zip

Комментарии (267)

RSS свернуть / развернуть
Акуратненько так :)
+3
А есть ограничение на размер заливаемых на сайт файлов? А то у меня архив с синапрогой никак не загрузится:)
0
Вроде было. А архив с синой грузить нинада, он 40 метров весит. Нафига мне такой балласт.
0
ок, закинул на яндыкс (8,9М)
0
красота да и только, глаз радуется
0
заунывный голос из преисподней: КААТТТттт!!!
-1
блин, я б с радостью!!! а вот как его сделать? выделяю кусище текста, жму на ножницы, вроде добавляется тэг cut. а на предпросмотре — первый абзац с катом трансформируется в лаконичный символ "]", а в конце текста добавляется ">. а заветной надписи «Читать дальше» так и не появляется:) прашу памагат новичку!!!
0
ничего не выделяя, просто в месте, где он нужен, жмешь ножницы.
0
в месте, где он нужен
должен стоять курсор.
0
О! сильно лучше.
0
Приятно глазу, просмотрел пост, к вечеру прибавилось оптимизму=) От меня за аккуратность и усердие +1
0
А из чего маска на плате? Лак?
0
  • avatar
  • ploop
  • 04 октября 2012, 00:24
Обычный пленочный фоторезист ПНФ-ВЩ. Он, конечно, придуман для переноса рисунка токопроводящего слоя с фотошаблона на плату, но и температуру паяльника тоже держит.
0
Я думал, они все синие :)
0
этот по умолчанию какой-то сине-фиолетовый. но в процессе изготовления платы ужЕ начинает обесцвечиваться. а от нахождения в окружающей среде (особенно на слонце) — еще больше «прозрачневеет». и чем дальше — тем больше:)!!!
0
Весьма хорошее исполнение. И статья хорошо оформлена.
Разве что светодиоды было бы логичней поменять местами — поставить светодиод PROG рядом с разъемом, к которому он и относится. А PWR — где-нить рядом с USB, тогда и перемычка бы не потребовалась.
0
  • avatar
  • Vga
  • 04 октября 2012, 00:42
Они ж и так разного цвета:)!!! А какая перемычка? J1?
0
Ну, цвет одно, а логика расположения — совсем другое! Перемычка = не помню, есть у тя там перемычка. Хотя, она и на второй СИД питание подает.
0
Ну, цвет одно, а логика расположения — совсем другое!

ну это да, тут не поспоришь
0
Красивая платка. А в чем рисовали?
0
  • avatar
  • Bonio
  • 04 октября 2012, 00:51
В Sprint Layout v5.0. Бесплатную гляделку можно взять на сайте разработчика (в самом низу страницы).
0
аккуратно сделано. Но для себя я бы еще сделал возможность выбора напряжения питания IO портов FT232 между 5 и 3.3 вольт. Или от прошиваемой платы, или от внутреннего стабилизатора микрухи.
0
Или от прошиваемой платы, или от внутреннего стабилизатора микрухи

в смысле — сделать возможность питать программатор от прошиваемой платы (вместо шины USB)? у меня на старом AVR910 была предусмотрена такая возможность. не приходилось пользоваться ей ни разу:) а вот наоборот — в экстренной ситуации запитать прошиваемую плату от USB через программатор бывало нужно. так что мне такая фича показалась не особо нужной. но, конечно, у каждого человека и потребности/требования к программеру свои.

что до +3,3В — для «согласования уровней» поставил резисторы R4-R7. поскольку речь идет о прошивке AVR-овских камней, у которых к каждую линию порта ввода/вывода встроен защитный диод на «плюс» питания, этого хватает. а пускать +3,3В на питание портов ввода/вывода FT232 — меня жаба душит:)
0
Красота. До 100% не хватает только корпуса.
Новичок решивший сделать такой программатор навсегда избавится от боязни корпусов с мелкими выводами, освоит ЛУТ да ещё и получит инструмент для подчинения своей воле отличного микроконтроллера. Этакий курс молодого бойца в миниатюре.
0
не хватает только корпуса

прозрачная термоусадка рулит!!!
0
Хочется сделать так, чтобы весь функционал был доступен без доработки напильником :). PLS-термоусадкой закроется, при необходимости вскрывать надо будет. Красоту портить придется.
Предлагаю PLS заменить на SCSL, после чего таки в термоусадку и заворачивать. В случае необходимости ткнуть один раз шилом (или чем другим похожим по вкусу и цвету) не проблема.
0
ну, это уж на любителя. мне и в ОЕМ, так сказать, исполнении вроде ничего. чтобы в кармане не сломался — таскаю его в пластиковой коробочке от ЗИПа какого-то древнего советского осциллоскопа. в аккурат размер пришелся:)
0
ЗЫ. а про термоусадку в качестве одёжи для дываса в таком исполнении — это, конечно же, шутка
0
:)
0
совсем не шутка. очень удобный вариант. и внутренности-светики видны, и минимально возможные габариты, и… да и просто прикольно выглядит.
а толстая термоусадка по итогу весьма жесткая после усадки. (мнда. тавтология.)

ну и «дЫвайс» как-то уж сильно непривычно звучит.
0
шутка в том смысле, что если одеть на программатор (в том виде, что он представлен на фото) термоусадку — то от загнутого PLS не будет никакого толка. а так — да, не раз видел даже на «фирменных» (покупных то есть) дывайсах снаружи термоусадка. дешево и сердито плюс рельеф платы виден.

дЫвайс — чисто в ироничном/издевательском ключе. если сильно раздражает — учту
0
я в таких случаях усаживаю частично, надрезаю и вытаскиваю все штыри, и усаживаю окончательно. получается вполне цивильно.

ну, просто глаз режет.
да, еще где-то у тебя видел «даташЫт»…
0
даташыт вообще мощнейшее слово. подходит хоть к микросхеме, хоть к холодильнику, хоть к фумигатору (если в коробку не забыли положить).

а как надо писАть это слово? без подколов/поддёвок, просто интересно
0
ну, устоялось даташИт.
вообще, сочетание шЫ (как и жЫ) в русском языке вне закона…
0
по правилам — да, естественно. в какой-либо официальной переписке — безусловно. но вообще (по моему мнению), слова типа даташит, джип (особняком стоИт мегаслово «Мега») — они очень смешные. ну попробуй честно прочитать джип — ведь дурость. то ли дело — джып. тут тебе сразу и мощность авто (жы-ы-ы-ы), и серьезность и т.д. И еще вопрос, что за люди эти правила придумали:) как это — говорим «шы», а пишем «ши»? говорим «чя», а пишем «ча»? но, конечно, ча и ща далеко не такие смешные, как жи и ши.

естественно, со своим уставом я в чужой монастырь лезть не собираюсь. раз здесь так устоялось — буду учитывать. да и использовал-то эти слова сходу потому, что за шесть-семь лет первый раз кто-то заострил на них внимание
0
естественно, со своим уставом я в чужой монастырь лезть не собираюсь.
да это как раз не «здесь устоялось», это везде так. такую интерпретацию вообще первый раз вижу.
это обычные правила русского языка. которые проходятся в начальной школе…
0
как это — говорим «шы», а пишем «ши»? говорим «чя», а пишем «ча»? но, конечно, ча и ща далеко не такие смешные, как жи и ши.
ЕМНИП, это какое-то наследие древности. Но подробностей не помню. Как бы то ни было, на сейчас правильно «жи-ши». Через «ы» — это уже олбанске.
0
Даже сказать нечего — это 5!
0
Есть у меня универсальный переходник на 232, но с синой его так и не удалось подружить.
0
А автору +5 за аккуратность. У самого два «свистка» STK500 от протоса в таком исполнении.
0
Протосс же вроде не STK500 сделал, а AVR910?
0
не, там еще годзилла на сайте у него фигурирует
0
Ага, помню. А она разве STK500-м прикидывается? Меня она не особо заинтересовала — хотя бы потому, что нету режима HVSP.
0
не собирал, врать не буду. но вот AVR910 синапрогом упорно определяется как AVR ISP. хотя выбираешь в списке программаторов AVR910.
0
Это, по видимому, примерно одно и то же. AVR910 описывает, как собрать дешевый ISP-адаптер, на AT90S2313 (или даже 1200 ли, не помню) и простом UART-COM согласователе на одном-двух транзистиорах. А протокол оно юзает общий — AVR ISP. У совместимых с AvrProg бутлоадеров, кстати, тоже этот же протокол. И вроде у ардуино.
0
Это, по видимому, примерно одно и то же

А протокол оно юзает общий — AVR ISP

придерживаюсь того же мнения.
0
у него на базе его дров есть проша с протоколом stk500. сей час под ней сижу. проша только на форуме поддержки есть. еще есть под эту схему 3 альтернативных прошивки
0
Порт AVRdoper'а, чтоли? Так то не протоссов программатор, а ob-dev'ов.
0
Порт дропера это альтернативная прошивка. есть от автора самого прошивка еще.
0
Линк?
0
Мда, похоже дрова протосовского прогера тоже на базе обдева запилен.
Вот последняя известная мне прошивка от автора.
Вот альтернативные прошивки от Ink'а
0
Вопрос к админам. В какой блог лучше постить сообщения типа «Отдам в хорошие руки»? Есть какой-то блог (я не нашел)? Или постить их в свой персональный блог?
0
Очень аккуратно и красиво!
Сразу захотелось спаять что-нибудь такое же компактное и аккуратное.
0
Автор определенно молодец! Большое спасибо за статью!
но у конструкции есть мелкий недостаток — ширина платы. Если в ноуте USB разъемы распологаются близко друг к другу, то в соседнее USB гнездо уже ничего не воткнешь. Лечится конечно удлинителями.
0
это да, есть такое. и вариантов тут два: первый — удлинитель, второй — выкидываем с платы разъем PLS-10R (это который XP3 «MISC»), светодиоды, чуть сдвигаем резисторы — и вроде всё должно убраться.
0
если я правильно Вас понял, то вы предлагаете выровнить USB разъем по одной из сторон. так?
0
или просто сузить плату?
0
ну так одно другому не мешает:) если сдвинуть вверх USB разъем и разъем для программирования (а светодиоды и штыри выкинуть), вроде должно получиться сузить плату почти до ширины USB разъема.
0
да, сейчас выбросил всё «ненужное» чтобы оценить возможные размеры — плату можно и впрямь сделать шириной почти с USB разъем. чуть шире — потому что shield USB разъема (железную «крышку») тоже надо к плате припаивать => примерно по 2мм с каждой стороны shield'a всё равно плата будет выступать. но не по 6мм, как сейчас:)
0
ok, понял. Но все же я повторю Вашу конструкцию без изменений и улучшений. во-первых лучшее враг хорошего. а во-вторых можно без проблем использовать и кабель, зато сэкономлю время на повторении конструкции. Еще раз спасибо!
0
да самомУ интересно стало. если терпит — до утра понедельника выложу чертежи (в смысле — файлы) кастрированного программатора.
0
а зачем выбрасывать лишнее? :) есть и smd-светодиоды. и разъемы тоже чуть миниатюрнее существуют. Я уверен, что вы сможете улучшить ее без урезания функциональности. Удачи Вам!
0
Я уверен, что вы сможете улучшить ее без урезания функциональности

это вряд ли:) во всяком случае быстро не получится. там, во-первых, точно будет два слоя меди. а во-вторых — это ж фактически новый прожект с точки хрения конструктора
0
Если взять текстолит нужной толщины, то разъем можно делать из платы=) Толщину точно не помню, но я как-то так делал. Вроде ничего…
0
делают так, да:) но ведь там самая фича в железке!!!:) иначе, наверное, будет болтаться
0
[чешет репу] хотя… вроде есть флэшки — кнопочку нажал, а оттуда как разъем вылезет! и безо всяких жэлезок. надо взять на заметку.

зы. и чего ж я раньше-то про эти флэшки не вспомнил?:)
0
у джима было про флешку-выкидуху…
0
2 мм. В принципе, достаточно заглянуть в спеку USB, там все размеры приведены.
Из платы разъем делают часто. Правда, обычно плата имеет толщину порядка 0.5 мм и оставшиеся 1.5 используются для размещения с обратной стороны деталек. А внешние обводы доводятся до требуемых 2.0 мм корпусом.
0
доводятся до требуемых 2.0 мм корпусом

вот! я ж говорю — вся фича в железке разъема. если глянуть в морду разъема USB A (тому, который «вилка на плату») — там есть пластмасска толщиной аккурат в 1,6мм. а поверх нее — еще железка разъема (в районе 0,3мм). 1,6+0,3=1,9мм, т.е. просто плату из обычного (1,5мм) текстолита в качестве разъема «в лоб» ужЕ не применишь. надо колдовать. как по мне — проще в таком случае поставить готовый разъем.

ЗЫ. сейчас специально запихал в USB-порт на компе кусок текстолита 1,5мм. он не то, что болтается — он вываливается. два куска сразу (соответственно, 3,0мм) — изгибают железку USB разъема в компе.
0
ну и, конечно, железка в сечении — это прямоугольник с хитро подобранными размерами, которые и позволяют разъемам плотно «держать» друг друга
0
Железки у таких разъемов очень часто нет вообще. Главное — толщина 2.0мм. Есть текстолит такой толщины, из него вилка получается нормально без всяких железок. На более тонкий можно наклеить прокладки. 1.0 — вдвое склеить, на 1.5 — добавить 0.5мм. Еще желательно сделать на обратной стороне выемки под защелки разъема.
0
не-не, я не говорил, что невозможно сделать разъем USB из платы без железки:) я про танцы с бубном. например, в эксперименте с двумя кусками текстолита по 1,5мм (в сумме — 3,0мм) текстолит в разъеме держится — мама не горюй, болтается намного меньше, чем та же флэшка (ширина кусков подогнана под ширину дырки в разъеме). чтобы железка компового разъема не изгибалась, нужно просто из 1,5мм подложки сделать 2,0мм с помощью прокладок и двухстороннего скотча (к примеру). но если просто поставить готовый разъем — это быстрее. вот только это я и хотел сказать.
0
Текстолит толщиной 2мм есть в продаже. И не надо ничего шаманить и стучать в бубен=)
0
конечно, есть:) только лично у меня такого нет:) а ты где закупаешься? у нас, например, на рынке весь текстолит 1,5мм (или сейчас не так? земляки, отзовитесь!) речь же сейчас не идет про массовое производство, где одним листом больше, одним меньше:)
0
Минск рр Ждановичи
0
блин, приколько у вас:) а 3,0мм есть? я раз видел/щупал плату из такого матерьялу. вообще не гнется.
0
Неа не видел. Хотя может и есть, но мне за ненадобностью было не интересно его искать:)
0
А FT232 нормально определяется на ПК? а то чегото проблеммы последнее время с ней… Устройство не опознано. Пинцетом RST на землю коротнул — после чего нормально все.
Пришлось допиливать, чтобы МК, при появлении питания от USB отпускал RST FT-шки через секунду-две… Проблемма исчезла, но… вот эта лишняя дорожка от ФТ-хи до МК мне покоя не дает :)
0
[в недоумении] да хрен знает… пожалуй, FT232RL — единственный чип, который мне ни разу не встретился с глюками. в даташыте сказано: «RESET# — Active low reset pin. This can be used by an external device to reset the FT232R. If not required can be left unconnected, or pulled up to VCC.» т.е., если тебе не надо дрессировать FT232 — подвесь его на плюс. я вообще его никогда никуда не подключаю.
0
[подумав] а какая FT232? Rx или Bx? и еще — если лечится коротцом на массу — просто подвесь резет на плюс через резистор, а к массе тот же резет привяжи конденсатором.
0
FT232RL

Да я уже перепробовал массу вариантов, и конденсатор ставил 100мкФ при 100ком резюке на +, чтобы уж ооочень большую задержку установки ресета сделать… и оставлял висячим, и просто резистором к +. и +5В заводил.

Мои устройства не серийные (до 50 щтук). но пользуются весьма активно. И могут подключатся и отключатся с ПК раз в 2 минуты. И неопознавание ФТ-хи случается иногда до 8-ми раз из 10ти. То на старых версиях платы пришлось руками допиливать кнопку, чтобы ресет на землю коротить, после чего она опознавалась без проблем, а в новых платах завел на МК, и теперь ресетом управляю програмно в зависимости от наличия питания от ЮСБ.

Еще, столкнулся однажды, нужно было по USB-хосту прицепится к планшету, то оказалось дров на андроидах нету под эту микруху. А под ПээЛьку (PL-2303XA) есть… Если не там смотрел — ткните носом пожлст.
0
судя по их сайту, на андроид дрова есть. но если пройти дальше (VCP или D2XX) — оказывается, что для VCP вообще дров нету, а для прямого доступа — только бета. наверное, еще время не пришло:)
0
а не пробовал резистор на «плюс» до 1кОм уменьшить? ну или хотя бы до 10кОм? я, конечно, понимаю, что микросхема не такая уж и древняя, да и в даташыте некоторые параметры гарантированы только если входы подтянуты через 200кОм. но, с другой стороны, вход резет такой загадочный: про него вообще почти ничего не написано — ни времени срабатывания, ни тока утечки, ни… и т.д.
0
я и коротил ресет на питание, и через 100 ом заводил, и через 5,6к… последний вариант был самый стабильный, но проблему не решал.

По андроиду, тоже на сайт зашел, заметил апноут, как подключить ФТ к андроиду, надо покурить. Чет не замечал этой пдф-ины раншье.
0
я и коротил ресет на питание, и через 100 ом заводил, и через 5,6к

это при 100мкФ на массу? если да, поставь вместо электролита керамику в районе 0,1мкФ. например, связка 10кОм на «плюс» и 0,1мкФ на массу даст время заряда конденсатора до 1,3В (мин. порог) около 300мкс (это если питание +5,0В; если питание +3,3В — тогда 500мкс). если этого времени ей недостаточно — тогда даже и не знаю, это ж кошмар!!!:) а у электролитов утечка охеренная по отношению к керамике. и еще — общая емкость электролитов по питанию какая? для USB максимально допустимая (по документам) — 10мкФ (если не ошибаюсь). может из-за большой суммарной емкости блокировочных проблема?

ну и не забываем о таком геморрое, как сами форточки. чего там в них творится при инициализации USB устройства — хрен его знает:)
0
Не, то вообще без электролита, или с емкостью 0,1мкф.
На питании от юсб стоит CLC с емкостями по 0.1мкф, дроссель — BLM21.
А МК ждет не менее 2с после появления питания от ЮСБ, и потом ставит лог.1 на RST.
0
ждет не менее 2с

я вот именно про это. 2с — откуда такая цифра? из экспериментов? или просто первая попавшаяся?:) есть ли возможность сокращать это время (ну, путем перешивки камня), чтобы узнать минимально возможное? тогда бы и цепочку можно было выбирать не от балды, а просто рассчитать
0
Время, пока МК расчехлится (~1,5с +/- трамвайная остановка) + пол секунды от балды. Чтобы наверняка. Время не критичное. Пользователю проблем не добавляет, он эту задержку даже не ощущает. FT опознается стабильно. За 2 недели — используя 10 утсройтств, не опозналось 1 раз по проблемам связаным с питанием USB (плохой контакт) а не с ресетом. Передернув кабель — все стало чотко. Как-то так.

Решение, думаю, временное, т.к. это подключение к МК мне не нравится. Сейчас коллега занимается этим вопросом, а меня отвлекли на программирование. Думаю, сообразит что-то стоящее. Все рассчитает, и я его себе в схемы заложу.

Я хочу еще попробовать формировать ресет транзистором. чтобы уровень устанавливался с задержкой сразу в лог. 1, а е плавно нарастал пока, кондер заряжается.
0
Может, просто поставить супервизор питания с POR?
0
быстро ты пишешь!!!
0
Если же длины импульса с супервизора не хватит — можно его запитать через RCD-фильтр (диод — для быстрого разряда кондера при снятии питания). Тогда он не так скоро перейдет в состояние power good.
0
если устройство не массового производства, посоветовал бы поставить супервизор питания а-ля MCP131 (ну, или мешка аналогов).
0
и еще — а управляющий МК какую задержку вырабатывает для резета? есть ли возможность узнать минимальное время, за которое FT232 успевает «отрезетиться»?
0
Как сделаны надписи на плате?
0
скорее так же как и дорожки при лут. я потом еще акриловым лаком прохожусь для черноты тонера.
0
не совсем ЛУТ. при изготовлении фотошаблонов для плат использую связку «тонер+затемнитель тонера». каким бы ни был старым принтер (типа можно накрутить так, что сыпет тонер килограммами), ни на одном я не сделал действительно хорошего шаблона. и как-то раз наткнулся на такую вот хрень. оказалось — чудесная вещь. не знаю, как он повышает плотность, но после того, как им попшыкать на шаблон, тонер на некоторое короткое время размягчается. ну и вот, надписи делаю так: зеркально печатаю на простой бумаге слой с шелкографией, бумагу приклеиваю на плату двухсторонним скотчем (предварительно совместив слои), затем сую этот бутерброд в горячий ламинатор и по мере того, как ламинатор потихоньку жрет бутер — пшыкаю затемнителем на бумагу (в том месте, где она ужЕ затягивается в ламинатор). пару паз так прокатываю, жду, чтобы бутер чуть-чуть остыл и отрываю бумагу. вот и всё:)
0
фича связки «подложка от оракала + утюг» — в достаточной четкости и черноте надписей. выглядит реально, как заводская краска для маркировки плат. но, увы… только до тех пор, пока не царапнешь плату в этом месте. и еще один момент, который меня всегда бесил — если плата размерами больше чем примерно 60*60см — один из десяти кусков оракала вылезал из принтера с нормальным рисунком медного слоя, на остальных кусках тонер свозился. а если делать так, как я описал выше, рисунок получается не таким четким (все линии хоть чуть-чуть, но расползаются), не таким черным (на отсвет вообще ни хера не видно, все буквы/символы отсвечивают), ну и вообще выглядит не «как с завода». но зато тонер при поливе бутерброда затемнителем впитывается в текстолит. его потом так просто не сцарапнешьь.
0
60*60см

60*60мм, конечно же
0
В Linux будет прошивать? Чем?
0
Дудкой, надо полагать. Собственно, этот программатор только дудкой и поддерживается.
0
вот тут есть кой-чего (в комментариях)
0
смотри прямо по сайту поиском слова «linux». от 13 марта 2011г. пост Михаила. там же ссылка на вражеский первоисточник.
0
не 13 марта, а 13 апреля. и не михаил, а алекс:) в общем, вот ссылка.
0
Я вот решил соорудить на FT232 три в одном и за основу решил взять твое устройство. Именно в этом, а не в следующем варианте, где уже убраны альтернативные функции ФТ-шки.
Но так как совершенно не понимаю, как работает ФТ232, то предварительно хочу уточнить. Вот, представим, что я на твою схему навесил следующее два драйвера, MAX485 для RS485 и MAX213 для RS232. Их входы TD параллельно подключаю к TXD. Их выходы RD через простую логику, переключаемую по джамперу (я выбираю, с каким интерфейсом работать), и через логику, позволяющую блокировать «эхо» от передачи в RS485, подключаю к RXD ФТ-шки. Сигнал CBUS4 управляет отключением драйвера RS232, как описано в даташите на FT232, сигналы CBUS2 и CBUS3 управляют драйвером RS485.
Вроде все. Реально, можно повторить твою платку и буквально навесить на разъем ХР3 такую вот «драйверную» добавочку. И сразу физически кагбэ есть все, чтобы и по SPI шить, и по еще двум популярным последовательным протоколам с внешними устройствами гутарить.
Да ты и имел в виду подобные штучки, когда выводил свободные ноги ФТ-шки на разъем. Просто не говорил о конкретных стандартах, но вот, поговорим о двух сразу.
Теперь внимание, вопрос. Этот весь ГАМУЗ втыкается в один несчастный USB порт и что? Кто и как настраивает ФТ-ку, чтобы она вот тут тебе ногами как марионетка дрыгала, а вот раз, и стала разумной УАРТовской штучкой? Вот та самая ДУДКА и настраивает? А потом другая программа, открывая СОМ-порт, перенастраивает? И как быть с тем, что в режиме УАРТа ФТ-шка может захотеть послушать сигналы CTS, DSR, DCD, а они тут распаяны по-своему… Не могу понять…
А было бы чудно, если бы уважаемый автор вот так взял бы и разработал мезонинку на свою плату :) Вот уж рай для ленивых — повторить бы тупо по буквам, вот и получили функционально богатую плату, для которой уже не возникает вопросов, а нахера там сбоку штыри, мешающие обернуть платку в термоусадку :)
А ведь можно этот мезонин и с гальванической развязкой соорудить! Всего-то 3 сигнала (TXD, RXD и эквивалент RTS) прогнать через оптроны, да DC-DC простенький поставить. Вот уже RS485 и развязан (как-то про него в первую очередь думаю, когда о развязке говорится)
Что скажете?
0
Сигнал CBUS4 управляет отключением драйвера RS232, как описано в даташите на FT232, сигналы CBUS2 и CBUS3 управляют драйвером RS485.
Если все управляется через CBUS, то зачем еще джампер?
Кто и как настраивает ФТ-ку, чтобы она вот тут тебе ногами как марионетка дрыгала, а вот раз, и стала разумной УАРТовской штучкой?
Тут как раз все просто. Кто первый устройство открыл — того и тапки. Если открыть связанный с FT-шкой COM-порт — она переключится в режим ком-порта, если открыть ее саму через библиотеку D2XX — то будет работать в режиме битбанга. Покуда кем-то открыта (не важно, в каком режиме) другие попытки открыть будут получать отлуп «занято».
И как быть с тем, что в режиме УАРТа ФТ-шка может захотеть послушать сигналы CTS, DSR, DCD, а они тут распаяны по-своему… Не могу понять…
Если буфер отключен, то ничем оно мешать не будет. Но поскольку буфер управляется FT-шкой же — с этим проблемы. Придется его отключать опять же джампером (перекидывать NPROG с CTS на единичку). Впрочем, есть вариант — выкинуть буфер, для согласования воспользоваться VCCIO (на него нужно будет подавать питание с таргета) и использовать модифицированную дудку, которая умеет отключать ФТ-шку от схемы без буфера, либо смириться с тем, что для запуска залитой прошивки дудку надо отключать.
0
Спасибо за разъяснение. Действительно, у меня бывали случаи, когда порт открыт в одной проге, я об этом забыл и пробую открыть другой. И да, комп не видит того порта. И об отлупе сообщают по-разному, не сразу и поймешь… Я нервничал :)
Что ж, с переключением всей настройки ФТ232 вроде как ясно. Та программа, что ее открыла, получает над ней деспотическую власть — и настраивает под свои потребности. Как она это делает — не мое собачье дело.
Про отключение буфера. Я не исхожу из умозрительных задач бешенного переключения ФТ-шки из одного режима в другой и обратно. Мне опыта не хватает такое вообразить или, точнее, оценить ситуацию. Поэтому привязываюсь к конкретике: у меня будет задача: прошить АВР (привез на объект новую заливку), отключиться программатором и все. Теперь включаю этот многофункциональный модуль в режим RS232 и прошиваю другой (не АВР-ный) модуль. Потом третий, еще по особому протоколу, но по тому же RS232. А потом, может быть, подключусь уже по RS485 и буду в этом режиме долго херачить инфо в комп. То есть, меня не пружит джамперно-молитвенное переключение функций. Если такое «туды-сюды и часто-часто» нужно — то это отладка довольно сырой проги. Такое я делаю дома, имея все эти прелести параллельно — работая с несколькими девайсами (да и вообще дома железный СОМ-порт на компе).
И более сложная ФТ-шка 2232 мне не нужна. Задача достаточно простая: поочередно юзать одну и ту же платку в трех режимах. Нахрен усложнять?
В общем, с уважаемым авторм мы уже перетерли тему в личке — мне удалось его убедить в интересности такого мезонина. Так что с радостным нетерпением подожду :)
0
FT2232D, применяемая в том модуле, имеет режим MPSSE. Она может с соответствующим модулем прикидываться AVR-JTAG или ARM-JTAG отладчиком, крошивать ПЛИС и прочее. К тому же можно одновременно подключиться к МК по JTAG или SPI ISP и общаться с ним через UART. Единственный минус — она несколько дороже, но ты же сказал, что это не проблема?
А вместо переключения джамперами нужно будет просто сменить мезонин. Это защитит от путаницы с джамперами, ошибка при установке которых может стоить переходнику или девайсу жизни.
0
во! по делу!:)

где же взять эту чудесную дудку?:) ты говорил, что на форуме где-то проскальзывала.
0
Ты все еще не нашел? Тогда потыкай DIHALT'а в личку. Вроде где-то в разделе «пинборд» тема на форуме была.
0
Или ты дал не ту ссылку, или сабж нужно искать в без малого полутора тысячах комментариев.
О нем была тема на форуме.
0
Да все нормально. Из той статьи (перед началом комментариев) картинка

Вот отдельно ссылка из той же статьи:
0
Блин. Вот
0
Насколько я помню, это не та дудка, которая умеет отключаться от контроллера без буфера и кнопок.
0
она даже буфером управлять не может, по-моему:) во всяком случае, когда пытаешься прописать в конфигурации ног программатора 5-й вывод — выдает ошибку
0
Да и хуй с ней
0
Поиском таки найти не сумел. Однако ссылочка завалялась в одной из старых сессий оперы. Лови.
0
P.S. Есть еще базовая плата на FT2232 от DIHALT'а. Она пофункциональней (там более новая версия фт-шки стоит) и двухканальная, плюс изначально ориентирована на превращение мезонинным модулем во что угодно. Единственный момент — я бы микросхему памяти (93C66) тоже перенес на мезонин.
0
Повторил — все отлично. Очень удобный девайс. Спасибо.
0
шей камни на здоровье!:)
0
дык нашился уже по самое небалуйся — ище теперь как шить с удобством. Твой пока выигрывает :)
0
О! Только собрался нарисовать макрос USB разъёма, а уже есть готовое :)
0
  • avatar
  • Dikoy
  • 22 октября 2012, 04:41
Парни, помогите советом!
Задумал прошить Мегу8 через шнурок на FT232, мега установлена на плате программатора USBASP. Распаял согласно схеме из стать, но не через буферы, а напрямую: FT232-Мега8.
Вот такую хрень выдает:
0
  • avatar
  • Flash
  • 11 декабря 2012, 18:56
Шнурок рабочий, работал с ним с мобильником, проверял через терминал. Что за причина может быть? И почему Зинка выдает какую-то странную распиновку, отличную от статьи?
0
синапрога выдает всё правильно. у ней какое-то собственное хитрое соответствие FT232/ISP:

TXD — 0
RXD — 1
RTS — 2
CTS — 3
DTR — 4
DSR — 5
DCD — 6
RI — 7

для APU-2 то, что написано в области сообщений про распиновку — вернО.

а дальше должно быть вот так:



я понятия не имею, как дудка/синапрога работает:) но если сравнить прямо по шагам эту картинку с твоей — можно предположить, что сина спотыкается как раз на том тесте, где она должна начать разговаривать с камнем:

AVR device initialized and ready to accept instructions
Device signature = 0x1e9403 и т.д.

а у тебя она, по-ходу, до микроконтроллера не может достучаться. если учесть, что ты шьешь USBASP — может просто забыл перемычку перекинуть?:)
0
Device signature = 0x1e9403

блин, затупил с сигнатурой, не оттуда скопипастил:) для 8-й меги она будет такая, как на рисунке. но сути дела этого не меняет:)
0
Перемычку self-prog?
и с ней, и без нее — не работает.
Вобще, сначала пробовал по схеме и программой со статьи Ди. Там тоже какой-то глюк был — выдавало ошибку «неверное имя КОМ-порта», хотя все настроено было точно.
0
а другой камень не пробовал прошивать?
0
статье-то Ди вообще года три:) уж наверное за это время все дуркования замечены/пофиксены:)
0
Под рукой только один атмел, раздобуду другой, попробу. Скорее всего да, контроллер битый/лоченый, хотя он был новый и не прошивался.

ПС пользуясь случаем, хочу выразить свое возмущение мудакам-инженерам из атмела, которые сделали так, что при использовании вывода сброса в качестве IO контроллер лочится (для ISP)… идиотизм.
0
Порылся в загашнике, нашел еще одну мегу8. Подключил, нажал search:


Значит, первый контроллер труп? Ладно, жму Flash-Read:


Что за?
0
Нажатие advanced выводит считаные биты нормально.
Еще вопрос, при прошивке в какой последовательности что зашивать: Flash-eeprom-fuses? Или без разницы?

ПС Бля, с пик-ами все намного проще…
0
в какой последовательности что зашивать

я сначала фузы шью, затем флэш, затем еепром
0
я сначала фузы шью, затем флэш, затем еепром
да, читал в описании, переспросил на всяк случай. хз эти атмелы, первый раз с ними работаю.

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

ну, если не знаешь про что фузы, то наверное да — так логичнее
0
ты б для начала синапроге файл указал, куда флэш считывать:)
0
и ВНИМАНИЕ! при считывании данные в указанном файле затрутся новыми!
0
ага, уже разобрался :)
хорошо, что указаный файл не представлял ценности :)
Вобщем, FT232 рулит!
podkassetnik, спасибо за подробнейший талмуд!
0
подробнейший талмуд

это об чем?:) об файле-описании?
0
Да, здоровски расписано, все по пунктам, по шагам. Единственное, чего не хватает — описания возможных проблем и методов их устранения. Был бы бестселлер начинающих прошивателей атмел-ов.
Други писателям стоит поучиться!
0
на здоровье:)
0
Файл с печатко и схемой не открывается, ошибка чтения архива.
0
только что проверил — и с яндекса и с ww.ee нормальные архивы скачиваются, нормально распаковываются
0
(( ни один архив не смог прочитать
0
[думает] ну давай электромыло, персонально вышлю исходники:)
0
jeckdigger[спецсимвол]gmail[тчк]com
0
письмо ушло
0
Спс, все ок.
0
у вас видимо WinRar а у автора видимо 7-zip. Такое бывает :) Поставьте 7-zip и откроется…
0
Архив в .rar переименуй. Хотя они оба RAR с расширением ZIP. Возможно, у тебя он неправильно скачался (бывает, попробуй еще раз или другой браузер) или у тебя старая версия WinRAR (Рошаль периодически меняет формат и архивы, созданные новой версией винрара не открываются старой).
0
У меня Linux, а ему фиолетово какое расширение у файла, он читает заголовок и анализирует его.
0
Насколько я знаю, линуксу не менее фиолетов заголовок. Он откроет тем, чем скажешь. А система ассоциаций в оболочках вроде кед, ЕМНИП, работает на основе расширений (точнее, из расширения выводится MIME-тип, если не доступен из иных источников и уже по нему выбирается обрабатывающая программа).
Опять же, чем ты его открывал? Линукс сам по себе архивы не обрабатывает, для этого есть tar, gzip и прочий софт.
0
Не вижу смысла открывать диспут о решенном вопросе. Архив не открылся только по этому проекту, остальные работают нормально. Автор прислал материалы на почту. Вопрос исчерпан.
0
В принципе да. Просто программистская привычка — увидев ошибку, докопаться до ее причин (и исправить либо сделать выводы на будущее).
0
Запрограммировал с помощью данного программатора и avrdude ATMEGA88PA (ATMEGA88PA — пришлось подправить avrdude.conf). Прошивает вроде нормально. Считываю eeprom с контроллера — :00000001FF каждый раз. Для флеша тоже самое. Помогите, пожалуйста.
0
А в еепроме вообще есть чего-нибудь (в смысле — «полезное»)? Вообще, вроде как :00000001FF — это окончание как файлов *.hex, так и файлов *.eep. И если еепром пустой — может так и должно всё считываться?
0
А верификация во время записи что говорит?
Можно воспользоваться терминальным режимом avrdude. Опция -t командной строки. В этом режиме можно просмотреть(вывести на экран) содержимое ячеек flash или eeprom памяти. Припоминаю что так можно: dump flash 0 1000. Ноль и 1000 это адреса памяти. Если во всех ячейках указанного диапазона будут значения FF, то память кристально чиста.
0
но ведь прошивает-то нормально:) скорей всего в еепроме просто пусто
0
Даже если пусто, это не повод отдавать пустой файл. Дамп должен содержать те же самые FF, а то как предполагается перенос данных с одного контроллера на другой: «эга, тут все ФФ — создаем пустой файл. пишем пустой файл в другой МК — ничего писать не надо, и пофигу что там в еепромке отличные от ФФ значения».
0
ну а я-то тут причем?:) это вопрос к создателям дудки и синапроги.

заинтриговали вы меня, блин, со своими чтениями/проверками:) [кряхтя полез за программатором и каким-нибудь подобием отладочной платы]
0
Дык при копировании целевую еепромку стереть надо, вот и получатся там FF-ки. В hex файлах практически всегда только актуальные данные, а пустое место в конце срезано.
0
Дык при копировании целевую еепромку стереть надо

ты про файл, или про саму память камня?
0
Второе, разумеется.
0
а, блин:) не сразу понял что ты говоришь про процесс именно копирования информации:)
0
А компилер генерих хекс с FF. Идеи?
0
Ни разу такого не видел. Те FF, что посреди сгенерированного кода не в счет, срезается (точнее, даже не генерируется) «хвост».
0
ну вот текст файла для еепрома (занято три байта, скомпилено AVR Studio):

:03000000826ECA43
:00000001FF

где ж тут стадо FF?:)
0
А вы проинициализируйте значением 0xFF и увидите их в итоговом хексе. Я за это говорю: всё, что инициализировано во флеш/еепром, всё попадет. Исключение одно — рам нулем инициализированная — реализуется в рантайме занулением всей области.
А теперь вопрос, как считыватель еепром определит, что 0xFF в еепром не были явно инициализированны в данное значение? Он этого сделать не может и не имеет права, поэтому либо читает всю еепром (в случае просто чтения), либо заданный диаппазон адресов (в случае верификации или явного определения).
0
да я понимаю, что если в исходном проекте принудительно забить все ячейки еепрома значением 255, то они и в файле .eep присутствовать будут, ибо это ужЕ не пустота, а конкретное число:)

мне просто непонятно, почему следующий вопрос мне адресован:

А теперь вопрос, как считыватель еепром определит, что 0xFF в еепром не были явно инициализированны в данное значение?


мне, честно говоря, абсолютно похер, как он это сделает. лично я программатор пользую только для прошивки камней. кнопками «считать» и «проверить» воспользовался первый вчера, чтобы проверить — действительно ли дуркует считывание еепрома или нет:) надо «истинный лик» памяти — это позволяет сделать лошадь. но этот программатор к ней ужЕ не прикрутишь, да:)
0
maximentus пишет, что при считывании flash-памяти в файл так же получается :00000001FF. Тут что-то общее, независимо от типа памяти.
Можно было бы этот переходник(APU-2) для сравнения проверить avreal-ом, но он не поддерживает FT232RL.
0
и впрямь из непустого еепрома читает только строчку :00000001FF

причем, из прошитого флэша читает море какой-то херни (жаль, не помню, что там прошито — не могу проверить корректность считывания херни). по ходу — косяк создателей синапроги, может ключ какой не тот поставили при чтении еепрома
0
А эта версия avrdude самостоятельно, без синапроги не работает?
0
почему? насколько я знаю, дудке вообще до фонаря, откуда ее вызывают
0
Тогда может быть имеет смысл перезалить flash и посмотреть на то что скажет верификация? Avrdude верифицирует без дополнительных указаний и напоминаний.
0
ужЕ попробовал:) флэш верифицируется нормально
0
Осталось проверить eep на запись(с проверкой).
0
более того — сейчас попробовал так:

— залил в еепром данные из файла (условно) file_1_.eep
— выбрал в синапроге в качестве целевого файл (условно) file_2_.eep
— сделал верификацию. синапрога лается:

avrdude: verifying…
avrdude: verification error, first mismatch at byte 0x0000
0x82 != 0xf0
avrdude: verification error; content mismatch

То есть при верификации еепром камня она всё-таки не стирает:)

НО! Если сравнить непустой еепром с файлом, в котором только одна строчка :00000001FF — всё в корне меняется:

avrdude: reading on-chip eeprom data:
avrdude: verifying…
avrdude: 0 bytes of eeprom verified

и пишется Verifying EEPROM… OK

вот такая вот херня, ну это так — для общего развития:)
0
Нет той avrdude под рукой. А при записи только file_1_.eep, в коментариях avrdude не пишет что-то типа eeprom erase прежде чем выполнять запись?

avrdude: 0 bytes of eeprom verified
Т.е. в этом случает проверка вообще не проводилась? Сравнивать то не с чем, данных в файле нет.
0
вот процесс записи в еепром:

avrdude: Device signature = 0x1e910a
avrdude: current erase-rewrite cycle count is -524255232 (if being tracked)
avrdude: reading input file «D:\AVR\ATTiny2313_Projects\V-Pro\CED-4_100_01\CED-4_100_01.eep»
avrdude: input file D:\AVR\ATTiny2313_Projects\V-Pro\CED-4_100_01\CED-4_100_01.eep auto detected as Intel Hex
avrdude: writing eeprom (128 bytes):
avrdude: 128 bytes of eeprom written
avrdude: verifying eeprom memory against D:\AVR\ATTiny2313_Projects\V-Pro\CED-4_100_01\CED-4_100_01.eep:
avrdude: load data eeprom data from input file D:\AVR\ATTiny2313_Projects\V-Pro\CED-4_100_01\CED-4_100_01.eep:
avrdude: input file D:\AVR\ATTiny2313_Projects\V-Pro\CED-4_100_01\CED-4_100_01.eep auto detected as Intel Hex
avrdude: input file D:\AVR\ATTiny2313_Projects\V-Pro\CED-4_100_01\CED-4_100_01.eep contains 128 bytes
avrdude: reading on-chip eeprom data:
avrdude: verifying…
avrdude: 128 bytes of eeprom verified

avrdude: safemode: Fuses OK
RESET… OK

вроде никаких стираний тут нет, сразу запись. хотя хер знает, чего он там шульмует в темноте:)

проверка вообще не проводилась

вот именно:)
0
Для опции командной строки -e в доке avrdude-doc-5.11.pdf говорится:
Note that in order to reprogram EERPOM cells, no explicit prior chip
erase is required since the MCU provides an auto-erase cycle in that case before
programming the cell.
Т.е. MCU автоматически стирает ячейки eep перед их программированием новыми значениями. Если в коментариях avrdude этого нет, то может стоит принудительно указать -e -U eeprom:w:eep.hex
Правда при этом сотрётся всё — flash, eep, lock. А после этой записи посмотреть на результат проверки.
0
Вот оно
avrdude: current erase-rewrite cycle count is -524255232 (if being tracked)
0
Есть вопрос: что будет если я не поставлю буфер на данный программатор — т.е. просто соединю FT232 и МК? Понятно что не будут отключаться линии, но этого не требуется. Просто надо сделать устройство которое можно оперативно перешить…
0
Понятно что не будут отключаться линии

ну вот — сам же и ответил:) если не надо, чтобы программатор постоянно был подключен к устройству, а просто один раз прошить кирпич — ничего страшного, главное, чтобы уровни FT и камня совпадали. буфер просто для удобства стоИт — позволяет автоматически отключать программатор от таргет платы. иными словами — если не влом постоянно вытаскивать программатор из разъема — буфер можно вообще не использовать:)
0
Вот тут собака и порылась — выход MISO МК не выдает нормальных сигналов. Если его не подключать к FT232 то болтается возле земли (1,5-2 Вольта), пытается дрыгаться, но безрезультатно. Если подцепить — то МК не может просадить FT232 с 5 В до земли — получается прыгает в пределах 0.7-0.8 В от 5. И фронты ооочень затянуты.
0
[чешет репу] это что за кирпич такой?
0
ATMega128 — MOSI и MISO подключены к PE
0
МК пробовал менять — подумал что подпалил его, но ничего не изменилось…
0
и кстати — на резете какая картина при этом?
0
Все что выдает FT232 абсолютно нормальное — резет, моси и сцк прыгают как надо с нормальной частотой и фронтами. Резет толи 3 толи 5 раз просаживается.
ОФФТОП: как понизить скорость работы — ключ -b 1200 не помогает — тактовая остается очень высокой.
0
как понизить скорость работы

к сожалению — видимо, никак. на скоростях прошивки 9600 и ниже пишет:

SET=> ft245r: bitclk 4800 -> ft baud 2400

и ниже 2400 не делает. для сравнения — на скорости 115200:

SET=> ft245r: bitclk 76800 -> ft baud 38400
0
Видимо придется пока так… странно что МИСО так себя ведет…
0
погоди, а на нулевом уарте висит чего-нибудь? если да — попробуй отключить. была у меня такая херня на заре использования МК:)
0
подключен к тойже FT как debug… это плохо?
0
Ножки ес-но разные — для программатора RX/TX FT232 не задействованы.
0
не, я про камень. если к ногам РЕ0 и РЕ1 подключена на таргет плате какая-нибудь усартова херовина (GSM, например), попробуй его отключить.

т.е. сделай так, чтобы РЕ0 и РЕ1 только к программатору были подключены, и больше никуда
0
PE0/1 кроме программатора никуда не подключены…
0
ну, не знаю даже тогда. такое чувство, что МИСО в третьем состоянии (или вход). попробуй его принудительно сделать выходом. я понимаю, что совет на грани тупейшей ахинеи:) но ведь и впрямь мисо ведет себя странно.
0
бля:) если программатор не подключается, выходом МИСО не сделаешь…

а с другими программаторами — та же херня?
0
Если внешний цепляю — все ок. Видиться, шьется… мне кажется удаление буфера привело к проблемам типа уровни не те в момент включения, перехода в режим программировани/работа.
0
ну, может и так. а не пробовал МИСО к плюсу подтянуть через 1-10кОм?
0
Пробовал — не просаживается до земли — прыгает около питания (аналогично как будто к FT232 подцепил бы).
0
вообще странно. ибо данный тип программатора изначально вроде как без буфера был? правда, я без буфера делать не пробовал.
0
да вот и я не пробовал — всегда он для меня был внешним программатором — буфер в обязаловку… а тут вот так потребовалось.
0
а откуда питается выходной буфер ФТ?
0
с ЮСБ. МК питается отдельно. Земли связаны. Питать МК от ЮСБ пробовал — ничего не изменилось
0
В любом случае спасибо за помощь — вечером еще поколупаю — может смогу чего сделать — отпишусь.
0
Насчет уровней — в FT232 есть свой собственный транслятор уровней. Попробуй подключить VCCio к питанию МК.
0
не помогает — пробовал.
0
только что провел эксперимент. подключил выводы FT232 напрямую к МК (соединения — точно так же, как в схеме в этом топике). из синапроги камень виден, фузы читаются, флэш тоже, причем на любой скорости. кстати, оказалось, что эта версия дудки сама резет отпускает после программирования, мать её:)

кирпич — мега8А, питание камня — напрямую от ЮСБ (вернее, от 20-й ноги FT232), кварц на 16МГц
0
Ну епта… у меня кривость рук видимо…
Единственное отличие — я пины другие использовал (в avrdude.conf переназначил пины — вечером посмотрю)…
0
а какое соответствие у тебя? мне аж самомУ интересно стало:)
0
Файлы дома… выложу вечером. Спасибо. )))
0
Резет у меня тоже отпускается сам.
0
ну, было бы странно, если б у меня та же программа работала иначе, чем у тебя:) хотя…
0
Если она та же. По разному патченых дудок — дохренища.
0
согласен )))
0
ну я ж специально и оговорил — «та же»:) про количество патченных дудок — это вообще пиздец, пока искал для себя — сильно ругался матом.
0
А можешь (ничего что я на ТЫ? Вроде комрады все...) скинуть ссылочку на твою дудку?
0
так в конце заметки ссылка на архив APU-2_Software.zip:) вот — это моя дудка:)
0
точно — забыл совсем.
0
выклянчил у знакомого плату с мегой128, провел еще один эксперимент. из синапроги камень виден, фузы читаются, флэш тоже (правильно или нет — уж не проверял:)), причем на любой скорости. считанная сигнатура тоже верная (1е9702). питание камня — от ЮСБ, кварц — 16МГц.

так что — с одной стороны всё хорошо, с другой всё плохо:) во всяком случае, сам принцип работает, и самое страшное (хотя и не очень, конечно, приятное) — придется чуть подправить плату (если это вообще серия). но вот найти, почему же такая херня в природе происходит — не факт, что быстро получится.

зы: у меня, кстати, тоже не сразу заработало. и та же ботва была с уровнями сигналов (даже еще хуже — вообще все на уровне 2,5В были в дефолте, а амплитуда импульсов — 0,8В-1,0В). и импульсов-то как таковых практически не было — так, куски затянутых фронтов. дело было в следующем — камень-то я от ЮСБ запитал, а вот на выходной буфер FT подать питание забыл. после подачи питания на выходной буфер всё заработало как часы. ты бы глянул осциллографом — чего там на 4-й ноге ФТ творится. или, может, саму 232-ю еще раз пропаять всю + посмотреть на наличие коротышей. также можешь попробовать соединить ноги МК и ФТ, как у меня на схеме (правда, завтра я и сам смогу проверить, как с твоей конфигурацией работает). ну и на крайняк — поменять FT232 на новую.

а больше даже в башку ничего не лезет:)
0
Вообщем после замены FT232 уровни восстановились. Сейчас воюю с чтением — 4 ножку сейчас проверю.
0
А вот теперь очень странная штука — уровни в норме. Распиновка тоже (поочередно в дудке подключал ножки, каждый раз проверяя что и куда). На 4 ножке 5 вольт есть. Сигнал от МК приходит ПОЧТИ нормальный — присутствует звон. Попытался добавить резистор на 1К в разрыв линии МИСО — не помогает… Подтяжка кверху тоже — звон есть, но уже не пилой, а квадратами…
0
Помогла подтяжка вниз. Еще интересный нюанс — биты бегают но дудка пишет что прочитана сигнатура = 0х00 00 00! Что за нафиг?

Вот конфиг дудки:

programmer
  id    = "B248";
  desc  = "FT232R Synchronous BitBang";
  type  = ft245r;
  miso  = 4;
  sck   = 2;
  mosi  = 6;
  reset = 5;
  gates = 3;


вот схема:


Звон появляется совместно с сигналом SCK но не всегда (т.е. часть периода следования клока звон есть, часть нету) — уже начинаю грешить на производителя платы — маска очень странная. Поставил подтяжку на землю — стало нормально… но не фонтан — за уровни лог сигналов не выпрыгивает…

Почему дудка пишет что сигнатура = 0?
0
Почему дудка пишет что сигнатура = 0

потому что херня считывается. или достучаться до камня толком не может.

картинка вставилась — моё почтение:) вообще ни хера не разберешь:) но уж если отпаянные и перемкнутые между собой rxd и txd не хотят тупо возвращать принятые данные в ЮСБ — это вообще какая-то мистика.

за серийные платы — да, было у меня такое пАру раз. какие-то микро-недотравы видимо оставались — даже на просвет не видны. но сопротивление между дорожками вносили как положено:)
0
Тоже подумал что CRC какой-то неверный.

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

Обидно- сейчас придется оставить все как есть — потому что сроки уже поджимают, а мистика может проявиться в других частях устройства, а там намешано и аналога и цифры… и может быть неприятно очень.
0
да, и еще один коварный вопрос:) как вот это:

Единственное отличие — я пины другие использовал

согласуется с тем, что конфиг дудки у тебя такой же, как и у меня?:) я ж, сцуко, еще вчера почувствовал знакомый набор цыфр, но только сейчас догадался проверить:)
0
:) Не, в плане программинга все также — ЮАРТ же я еще подключил.
0
кусок схемы с ФТ и МК всё же прислал бы.
0
И еще один нюанс — отпаял ножки RX/TX FT232 от платы и соединил их перемычкой… передача идет, а вот обратно ничего не приходит… т.е. как выхода порты работают, а как входы нет?
0
че-то странное у тебя происходит:) ты чипы с флюсом паяешь? может, не промыл нормально?
0
С флюсом — отмыл спирто-бензином…

Иех — хочу попросить проверить одну заморочку — но это может привести к утрате дыма микросхемы. Можешь «перепутать» MISO и MOSI в конфиге дудки, а потом вернуть обратно? Может это приводит к выходу FT из строя?
0
у тебя соответствие линий такое:

miso — DTR
sck — RTS
mosi — DCD
reset — DSR
gates — CTS (зачем он тут, кстати?:)?

если да — попробую щас с таким соответствием проверить сначала. и да — скинь картинку со схемой мне на электропочту: podkassetnik@yandex.ru
0
Дело в том что если я строчку gates удаляю, дудка сама подставляет мне gates = 0 при запуске… чтобы она самостоятельностью не страдала — я поставил так.
0
так соответствие линий-то такое?:)
0
Как у тебя
0
Я добавил RX-TX — их имел ввиду.
0
С флюсом — отмыл спирто-бензином…

еще продуть можно попробовать. но это уж вообще один шанс на тысячу, что поможет
0
попробовал сжечь ФТ232 по твоемУ алгоритму. поменял конфиг дудки так:

miso = 6;
sck = 2;
mosi = 4;
reset = 5;
gates = 3;

ФТ232 сгореть не пожелала. в информационном окне дудка написала именно специально исправленный конфиг для программатора (мисо — 6, моси — 4), потОм ругнулась, что в качестве программатора подключена какая-то хуйня и выдала ошибка. для чистоты эксперимента попробовал связаться с мегой128 ровно 10 раз. потОм поправил конфиг на правильный — всё заработало как раньше.
0
Спасибо большое. Я пока в ступоре.
0
Проблема решилась. Причина — некачественная паяльная маска на плате заводского изготовления. Срезал микру, все промыл, отмыл, отчистил (под микрой оставался флюс). Припаял «насухую» — заработало.

Маска еще на этапе запайки себе показала странно — к ней прилипал припой… ну и видимо свойства проводимости у нее далеки от диэлектрика — пока сухая еще можно терпеть. Смоченная — становится близко к проводнику.

Большое спасибо сообществу и лично podkassetnik за идеи, внимание и потраченное время.
0
к ней прилипал припой…

в смысле — прилипал и ногтём не отковыривался? если да — надо бы тебе заметку в раздел «Осторожно — говно!» написАть:)))
0
Писать не буду — по политическим мотивам — пока попытаемся утрясти дело мирно, натыкать носом — откажутся — сами себе злобные чемоданы.
0
да я ж со смайлом:)

вообще для себя давно ужЕ уяснил — надо заказывать больше плат, чем надо. если изделие штучное — там на фоне подготовки к производству (говорю за отечественных производителей) ценЫ второй/третьей платы и не заметишь:) и уж тем более не будет видно стоимости лишних 10-15 плат на фоне партии из 1000-1500 штук:)
0
Плат 3 штуки — одна размерами более А4. Две другие совсем мелкие… заказано два зкзэмпляра — на обеих косяки. Смысл заказывать три?
0
одна размерами более А4. Две другие совсем мелкие

и заказаны, поди, в одном, так сказать, «наборе»? т.е., без А4 мелких заказать не получитсся?
0
Это так называемый макет — все отладится, напишется ПО, потом уже будет серия с исправленными косяками.
0
на обеих косяки

или имеешь ввиду, что в обоих наборах косяк?
0
да, все платы с косяками — т.е. делались в одном цикле…
0
ну тогда да, это надо у производителя интересоваться — что за магические компоненты в его PCB присутствуют:)
0
Вот и поинтересуемся в понедельник. :)
0
А кто здесь первый сказал «резет»? Должен сказать сасибо — проблевался.
Reset, э?
0
  • avatar
  • EW1UA
  • 08 октября 2013, 19:48
а чего с ним не так?
0
Reset: [ˌriːˈset], там [з] нету, там должно быть [с].
0
там и после «р» «е» нет. надо писАть «рисет»?

зы. слова «сигнатура» и «буфер» не напрягают?
0
Меня и резет не напрягает, и ризет тоже не напрягает, но они вызывают рвотный рефлекс.
0
ответьте на простой вопрос:
как правильно?
рИсет
или
рЕсет
? ;)
0
и да, это вопрос с подколкой ;)
0
правильно — сброс!!!

вообще странно говорить за «правильное написание» тупо жаргонных слов:) одно дело, когда ты на меня шипишь за «даташЫт» — тут грубое нарушение правил написания слов ПО-РУССКИ. и совсем другое — требование писАть «дэйтэшит»:)

да и само слово «транскрипция» — как-то не тово, «неправильное»:)
0
не, «сброс» — совсем-совсем не правильно при общении в секретутками. вот как им объяснить про «сброс», когда над кнопкой написано «RESET»? ;)
вот, ты пытаешься меня пнуть на тему. но дело в том, что даташит — уже вполне себе устоявшееся определение в языке. да, фонетическая калька. наравне с… (вернусь в себя, накидаю вариантов ;) )
0
ты пытаешься меня пнуть на тему

мнение ошибочное:) я ж говорю: «даташЫт» грубейшее нарушение правил. и если бы кроме тебя еще хотя бы пара человек по этому поводу высказались — стал бы писАть «даташит» (хотя, наверное, скорее документация:)), ибо выражение и впрямь устоялось.

ну а за девушек не скажу — по работе практически не общаюсь:)
0
«даташЫт» грубейшее нарушение правил. и если бы кроме тебя еще хотя бы пара человек по этому поводу высказались — стал бы писАть «даташит»
это стандарт де-факто. просто так сложилось.
ну а что пинаю… наверное, остальные просто стесняются. ;)
ну а за девушек не скажу — по работе практически не общаюсь:)
не совсем (точнее совсем-совсем) не понял этот пассаж, но мои соболезнования… ;)
0
не понял этот пассаж

ты про секретуток говорил:)
0
это воспоминание о профессиональной деформации эникейщика.
(эххх… м давно это было...)
0
0
не, «сброс» — совсем-совсем не правильно при общении в секретутками. вот как им объяснить про «сброс», когда над кнопкой написано «RESET»? ;)
Напоминает
— Сбросьте компьютер
*вжууу-бум*
— О_о я имел в виду перезагрузите, а вы что сделали?!
0
угу. я прримерно на такое и намекал.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.