|
|
  |
Программатор RS232, своими руками |
|
|
|
Jul 10 2005, 05:55
|

Местный
  
Группа: Свой
Сообщений: 396
Регистрация: 22-10-04
Из: Воронеж
Пользователь №: 962

|
Цитата Ребята, можно, я прерву? Я не сомневаюсь, что все это останется в памяти благодарных потомков в виде весьма продолжительной, увлекательной и на редкость познавательной светской беседы. За те полторы недели, что народ блещет эрудицией, два просто технически грамотных человека - один по вехнему уровню, другой по нижнему (можно обойтись и одним), основываясь на открытых протоколах, сделали бы программатор, работающий со всеми кристаллами AVR, на которые есть описания, и его себестоимость была бы рублей 100 (простенькая мега, что-то типа 232 макса, кварц, десяток резисторов-кондеров, разъемs DRB-9 и IDC-10). А я уже схемку - то и спаял (правда на 52- м т.к. если бы у меня были средства программирования AVR - зачем мне программатор. А PonyProg я брезгую) и потихоньку пишу софт. Правда в принципе получается девайс не такой скорострельный (ATmega128 думаю будет программироваться за 1.5 минуты  ) - больше будет времени подумать. Потом, наверное заменю проц на AVR, перепишу макросы работы с железом... Управляющая же программа от этого не изменится. Цитата Можно, наверное, сделать очень дешево и сердито - поставить последовательно два резистора по 1К, а между ними стабилитрон на 3,3 на землю smile.gif. И уровни туда и обратно через эту цепь всегда будут приводиться к 3,3 вольта, что для 5-вольтовой логики вполне приемлимо smile.gif Вот даташит. Никакой самодеятельности не нужно
--------------------
всё можно наладить, если достаточно долго вертеть в руках /Законы Мерфи/
|
|
|
|
|
Jul 11 2005, 15:01
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
"Не надо только в штыки воспринимать"  , но Цитата(yung @ Jul 10 2005, 00:00) За те полторы недели, что народ блещет эрудицией, два просто технически грамотных человека - один по вехнему уровню, другой по нижнему (можно обойтись и одним), основываясь на открытых протоколах, сделали бы программатор, Может новые опросы соорудим? "кто готов оплатить 2*1,5 человеко-недели и выложить это бесплатно?" и "кто родился сразу профи и ему не надо было начинать с чего-то дешёвого?" Цитата(yung @ Jul 10 2005, 00:00) работающий со всеми кристаллами AVR, на которые есть описания, и его А кто сказал, что оно будет только для AVR? А кто сказал, что оно будет только программатором и не будет какой-то AVRjtag эмулировать? А это для начинающего уже совсем другой расклад по деньгам будет. Скольким начинающим реально помогли стать на эту дорожку существующие бесплатные инструменты? А что касается комплектации, то FT232/FT245 уже достаточно массовые, например, в Киеве даже на кардачах есть (хоть это и не самое дешёвое место по ним), думаю, в Харькове без проблем, значит, достать можно. И гонца сгонять, и поездом/автобусом передать.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jul 12 2005, 10:50
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(yung @ Jul 11 2005, 23:56) Да не о том разговор. Если есть время, желание, единомышленники - конечно можно и нужно сделать все, что душе угодно . Просто на мой взгляд намного актуальней простой и дешевый программатор - аналог ПОНИ. Короче, НОВАЯ ТЕМА. А зачем нужен новый аналог Пони? Любой может себе спаять STK300/ByteBlaster/Xilinx/AVR910, взять AVRstudio/Пони/avreal/avrdude или любую из появляющихся софтин - и шить AVR сколько душа пожелает. Разработка такой фиговины - не актуальна. Зачем изобретать ещё одну? Дешевле не будет. Проще в повторнии - не будет. Совсем простых и дешёвых программаторов AVR уже и так в каждом уважающем себя городе и/или институте понаразработано ("у меня курсовой - программатор АВР, у меня вопрос" - года два назад в моей почте типичное письмо). На мой взгляд - тема о другом. А именно - о на новом уровне дешёвом и лёгком для повторения программаторе поначалу AVR, а потом - всего, что шьётся последовательно - SPI, JTAG, I2C, близкое к MICROWIRE (те же PIC). И - изначально на USB, по мере возможности - максимально выбрать скорость. Но - в целях совместимости с существующим софтом железо должно уметь через USB прикидываться COM-ом (но не обязано этим всегда пользоваться  ). А вот чтобы не думать о согласовании скоростей втихую от существующего софта работать с этим софтом на максимальной частоте - я и предлагаю FT245.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jul 12 2005, 11:05
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Alexey_N @ Jul 9 2005, 14:22) Меня смущает в этом решении потеря универсальности ног на выходном разъёме. А я - не понимаю разговоров о двунаправленности (универсальности) всех ног. Чтобы ещё и одной колодкой поддержать все возможные цоколёвки шлейфа? Так тогда на каждую ногу ещё и по паре хороших полевиков надо - GND да VCC изображать. Надо составить список интерфейсов и посмотреть типичные ноги. JTAG и SPI - практически одно и то же. Хуже с I2C (две двунаправленных линии с ОК) и с 3-проводным интерфейсом типа PIC. Но на I2C надо вывести аппаратные ноги процессора и считать, что не будет работы с устройствами, запитанными от менее 3.3В. Или сразу заложить два полевичка согласователями уровней. Но это можно решить сделав жёстко пару таких ног и успокоиться на шлейфах-переходниках или на платках, перебрасывающих ноги с единой 16..20-контактной колодки на нужную для данной системы. Ну в крайнем случае одну 74HC4053 возле процессора поставить, программно перекидывать какие-то буфера на входные ноги процессора - всё равно программатор останется простым в повторении и дешёвым. А вот морочить себе голову об полную универсальность всех ног на колодке я не вижу. Тогда надо и MOSI/MISO/SCK на любую уметь перебрасывать (программные SPI/I2C не предлагать!).
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jul 13 2005, 05:54
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225

|
Да вот он Извиняюсь это протокол mkII
Прикрепленные файлы
AVR067.pdf ( 349.19 килобайт )
Кол-во скачиваний: 136
AVR067.zip ( 1.83 килобайт )
Кол-во скачиваний: 64
|
|
|
|
|
Jul 13 2005, 08:43
|
Местный
  
Группа: Свой
Сообщений: 308
Регистрация: 12-05-05
Из: мск
Пользователь №: 4 943

|
Цитата(ReAl @ Jul 12 2005, 15:05) А я - не понимаю разговоров о двунаправленности (универсальности) всех ног. Чтобы ещё и одной колодкой поддержать все возможные цоколёвки шлейфа? Так тогда на каждую ногу ещё и по паре хороших полевиков надо - GND да VCC изображать. Надо составить список интерфейсов и посмотреть типичные ноги. JTAG и SPI - практически одно и то же. Хуже с I2C (две двунаправленных линии с ОК) и с 3-проводным интерфейсом типа PIC. Но на I2C надо вывести аппаратные ноги процессора и считать, что не будет работы с устройствами, запитанными от менее 3.3В. Или сразу заложить два полевичка согласователями уровней. Но это можно решить сделав жёстко пару таких ног и успокоиться на шлейфах-переходниках или на платках, перебрасывающих ноги с единой 16..20-контактной колодки на нужную для данной системы. Ну в крайнем случае одну 74HC4053 возле процессора поставить, программно перекидывать какие-то буфера на входные ноги процессора - всё равно программатор останется простым в повторении и дешёвым. А вот морочить себе голову об полную универсальность всех ног на колодке я не вижу. Тогда надо и MOSI/MISO/SCK на любую уметь перебрасывать (программные SPI/I2C не предлагать!). 1. Я встречался с такими программаторами, которые были предназначены для шитья микросхем, вставляемых в колодку. Так там колодка была универсальная, и действительно все ноги могли быть чем угодно - вход, выход, питание, земля. Нам же такое, определенно ни к чему, т.к. у нас ISP - программатор. Поэтому разговор об универсальности ног - от апориорного незнания ВСЕХ протоколов, по которым эта хрень ныне шьется и по которым она БУДЕТ шиться в будущем. Я предполагаю худшее, поэтому и предполагаю заранее не связываться определенными ограничениями, которые, на мой взгляд, не являются необходимыми. Кстати Вы тут же подтвердили мои опасения, приведя пример с I2C (который мне самому почему-то в голову не пришел). 2.Согласен, уже пора (!) составить список интерфейсов. И положить табличку в Вики. 3. 74HC4053. Ну хорошо, три ноги мы обустроили, а остальные? Бросаем, авось прокатит? Согласен, в обозримом будущем прокатит. Но, некрасивое решение, ещё одна микруха, некие программные довороты по её переключению... мне почему-то не нравится. Более склоняюсь к варианту согласовать питание меги с питанием программируемого контроллера. Тогда все ноги - наши! И аппаратные SPI и I2C и USART, и всё, что мы потом напридумаем. ЕДИНСТВЕННЫЕ грабли при таком подходе - переключение кварцевых разонаторов. И вот, что я подумал - а может надо быть проще, приземленнее, что-ли  ? А давайте просто оставим на плате место для двух (трех) кварцев, и ежели кому-то будет уж сильно невтерпёж прошивать попеременно то 5-вольтовые, то 1,8-вольтовые микрухи, - ну дык перетыкать тогда джамперами (или ВДМ-ками) нужный кварц, и все дела! Достоинства - предельная простота, и полная универсальность. Недостатки: шевеление руками джампера, и ограничение по скорости при питании меньше 3В. (От 5В до 3В, я думаю переключать скорость не придется, впрочем это надо будет проверить.)
|
|
|
|
|
Jul 13 2005, 09:16
|

Профессионал
    
Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072

|
Цитата(Alexey_N @ Jul 13 2005, 11:43) А давайте просто оставим на плате место для двух (трех) кварцев, и ежели кому-то будет уж сильно невтерпёж прошивать попеременно то 5-вольтовые, то 1,8-вольтовые микрухи, - ну дык перетыкать тогда джамперами (или ВДМ-ками) нужный кварц, и все дела! Рулить таким хозяйством будет тяжело: процессор должен знать на какой частоте его завели в данный момент, вся тактируемая периферия потребует отдельных настроек, также потребуется несколько вариантов кода который привязывается к длительности такта. ИМХО, наличие буфера вполне приемлемо. А что касается 100% универсальности, то она не очень и нужна: обычный БайтБластер подходит для значительного количества последовательных интерфейсов (кроме i2c), а ведь в нем самый обычный hc244. Наличие дополнительных переходников не должно быть проблемой - IDC10 не поставишь абсолютно во все устройства.
|
|
|
|
|
Jul 13 2005, 12:00
|

Участник

Группа: Свой
Сообщений: 73
Регистрация: 13-07-05
Пользователь №: 6 757

|
Привет ВСЕМ! Я уже несколько дней наблюдаю за ходом вашего диалога, и он мне все больше напоминает детектив с закрученым сюжетом, который с удовольствием читаешь и спрашиваешь себя, что-же будет дальше? Это было так, отступление... Как я понял, вы люди с опытом, и я хотел-бы задать вам такой вопрос: Раньше я писал под PIC16 (мелочь всякую) и решил перейти на более серьезные PIC18 или Atmel'ы, но мой програматор ничего толком не поддерживает (у меня старый ComPic). Посоветуйте, какой программатор лучше собрать (хотелось бы поуниверсальнее, а покупать не хочеться). Напишите на мыло (alfredalf@mail.ru) или в форуме. Заранее благодарен.
|
|
|
|
|
Jul 13 2005, 13:49
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(_Alfred_ @ Jul 13 2005, 16:00) Привет ВСЕМ! Я уже несколько дней наблюдаю за ходом вашего диалога, и он мне все больше напоминает детектив с закрученым сюжетом, который с удовольствием читаешь и спрашиваешь себя, что-же будет дальше? Это было так, отступление... Как я понял, вы люди с опытом, и я хотел-бы задать вам такой вопрос: Раньше я писал под PIC16 (мелочь всякую) и решил перейти на более серьезные PIC18 или Atmel'ы, но мой програматор ничего толком не поддерживает (у меня старый ComPic). Посоветуйте, какой программатор лучше собрать (хотелось бы поуниверсальнее, а покупать не хочеться). Напишите на мыло (alfredalf@mail.ru) или в форуме. Заранее благодарен. Если не боишься LPT-порта, одна из наиболее развиваемых самоделок - Willem http://evm.wallst.ru/main/willem/ - русский http://willem.org - оригинальный сайт А совсем "универсального" не бывает  У моего приятеля что-то вроде ALL-11 (боюсь соврать, но список поддерживаемых микросхем там страницы на 4) - так вот ему не хватает!!!
--------------------
WBR, ROC.
|
|
|
|
|
Jul 13 2005, 21:02
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Alexey_N @ Jul 13 2005, 11:43) Цитата(ReAl @ Jul 12 2005, 15:05) А я - не понимаю разговоров о двунаправленности (универсальности) всех ног. Чтобы ещё и одной колодкой поддержать все возможные цоколёвки шлейфа? Так тогда на каждую ногу ещё и по паре хороших полевиков надо - GND да VCC изображать. у нас ISP - программатор. Поэтому разговор об универсальности ног - от апориорного незнания ВСЕХ протоколов, по которым эта хрень ныне шьется и по которым она БУДЕТ шиться в будущем. Я предполагаю худшее, поэтому и предполагаю заранее не связываться определенными ограничениями, которые, на мой взгляд, не являются необходимыми. Кстати Вы тут же подтвердили мои опасения, приведя пример с I2C 2.Согласен, уже пора (!) составить список интерфейсов. Две поправочки - не всех, а 1) разумного максимума (согласен, звучит расплывчато) и 2) последовательных. Берём два ну очень разных последовательных протокола. JTAG и 8-ногих tinyAVR "высоковольтный". И видим, что они практически одинаковые. И там, и там - два выхода информации (TDO,TMS и datao, cmdo), один выход такта и один вход информации. Только для AVR ещё нужен выход управления сбросом. Где тут нужны универсальные ноги? Цитата(Alexey_N @ Jul 13 2005, 11:43) 3. 74HC4053. Ну хорошо, три ноги мы обустроили, а остальные? Бросаем, авось прокатит? Согласен, в обозримом будущем прокатит. Но, некрасивое решение, ещё одна микруха, некие программные довороты по её переключению... мне почему-то не нравится. Более склоняюсь к варианту согласовать питание меги с питанием программируемого контроллера. Тогда все ноги - наши! И аппаратные SPI и I2C и USART, и всё, что мы потом напридумаем. Как ни крути - MOSI и SCK процессора всегда будут выходами, MISO - входом. Сигнал сброса процессора - всегда выход. Сигнал тактировки для него (XTAL1) - тоже выход. Ну ещё какой-то выход для дополнительного управления питанием и пара входов на всякий случай. Я же говорю - аппаратные ноги I2C процессора вывести наружу через согласователи уровней на полевичках. Для I2C-устройств (включая не помню какой процессор, заливающийся по I2C) - этого достаточно. Для перевода того процессора в режим программирования выходов хватит (MOSI,SCK, собственно сброс для AVR). Для SPI/JTAG-программирования - эти две ноги станут универсальными, как запрограммировать, так и будет. Вывести это всё хором на колодку и все вопросы "какие сигналы нужны" и "какая цоколёвка нужна" решать на уровне переходников-шлейфов. Максимум, что может понадобиться в таком переходнике - это пара резисторов/транзисторов/диодов, ну может что-то типа 74hc125. Что ещё может вылезти - это UART. Ну может оказаться нужным. Ну и отлично, два варианта решения: 1) выводим на ту колодку UART процессора - ещё один всегда выход и ещё один всегда вход. Всё равно за 16..20-штыревую колодку мы ещё не вылезли. Будут в пуле резервных ног. 2) воспользоваться USART-ом mega88/168 - он может как UART, а может как SPI. 4053 - это уже вообще на такой крайний случай... 1/3 4053 может понадобиться для переброса MOSI на вход команды 8-ногой тини - это немного ускорит работу (но надо ли оно для таких мелких кристаллов?). И то это уже для относительной экзотики - использования ножки reset как IO. ещё 1/3 - ну не знаю... ну на XTAL1 подавать то с какого-то OC0 (частоты от Fosc/2 и ниже), то с CLKO (ну совсем чтобы быстро). ещё 1/3 - сейчас даже не придумаю. Что может стоит сделать сразу - это на выход MOSI отдельный буфер с 3-мя состояниями, чтобы его независимо переводить в hi-Z. Тогда путём объединения в шлейфе MOSI и MISO начинаем работать с 93Cxx и pic16. Но "на шару" это можно сделать резистором в пару килоом между MOSI и MISO и на двунаправленную ногу программируемой микросхемы подать MISO. Какая-то DS1302 у меня таким образом на меге103 на SPI висела рядом с именно SPI-устройствами, почти мегагерц на этом SPI был. Так что и это решается примитивным резистором, обтянутым термоусадкой в шлейфе. Цитата(Alexey_N @ Jul 13 2005, 11:43) ЕДИНСТВЕННЫЕ грабли при таком подходе - переключение кварцевых разонаторов. И вот, что я подумал - а может надо быть проще, приземленнее, что-ли  ? А давайте просто оставим на плате место для двух (трех) кварцев, и ежели кому-то будет уж сильно невтерпёж прошивать попеременно то 5-вольтовые, то 1,8-вольтовые микрухи, - ну дык перетыкать тогда джамперами (или ВДМ-ками) нужный кварц, и все дела! Ну так эта... точно так же можно джамперами поменять смысл тех пары ног, которые не вписываются в MOSI/MISO/SCK...
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|