Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AvrUsb500 by Petka
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
cz0
Цитата(Petka @ Feb 19 2008, 18:29) *
В оригинальной схеме ponyser уровни +12в, -12в (RS232) с помошью диодов, резисторов, стабилитронов преобразуются соответственно в +5в и 0в. (а ft232 делает 0в и +5в соответственно ) Отсюда и инверсия.

Можно и через утилиты, но зачем? Не вижу смысла.

Я попробовал зашить mega8 с вашей разводкой (благо есть отладочная плата на FT232RL и ATMega8) - все отлично прошилось. Однако мне никак не удется заставить работать avrdude и uisp. Это странно!
Petka
Цитата(cz0 @ Feb 19 2008, 23:23) *
Я попробовал зашить mega8 с вашей разводкой (благо есть отладочная плата на FT232RL и ATMega8) - все отлично прошилось. Однако мне никак не удется заставить работать avrdude и uisp. Это странно!

Что именно не получилось? Что получилось? Коды ошибок.... подробнее =)
cz0
Цитата(Petka @ Feb 19 2008, 23:40) *
Что именно не получилось? Что получилось? Коды ошибок.... подробнее =)

Что-то косячит именно в GNU/Linux, в винде все отлично зашилось avrdude'ом командой
avrdude -p atmega8 -P com4-c invdasa2 -i 10 -B 10 -b 9600 -U flash:w:display.hex
где в avrdude.conf
#----------------------
programmer
id = "invdasa2";
desc = "dasa2 with inverted rts, dtr and cts lines";
type = serbb;
reset = ~3;
sck = ~7;
mosi = ~4;
miso = ~8;
;
#----------------------
Похоже, проблемы в реализации обмена с USB в GNU/Linux. Версия avrdude таже, все вроде так же - ан нет, не работает.
Кстати, сответую к эксплуатации именно avrdude вмсето PonyProg т.к. заливается в десятки раз быстрее. Буквально 20 - 30 секунд.
cz0
Нда.. все веселее и веселее. Приладил к ft232r 47hc04 дабы аппаратно инвертировать сигналы. Это дало возможность шить контроллер без соотв. галочек - это раз, а в avrdude указать стандартный ponyser/siprog. В виндовзе все великолепно заработало. В GNU/Linux все так же мимо кассы: ioctl("TIOCMGET"): Bad address в avrdude и неизвестный девайс в uisp, хотя программатор в точности dasa2/ponyser/siprog. Забавно. Толи лыжи не едут... толи.. даже не знаю что.
cz0
Нда.. все веселее и веселее. Приладил к ft232r 47hc04 дабы аппаратно инвертировать сигналы. Это дало возможность шить контроллер без соотв. галочек - это раз, а в avrdude указать стандартный ponyser/siprog. В виндовзе все великолепно заработало. В GNU/Linux все так же мимо кассы: ioctl("TIOCMGET"): Bad address в avrdude и неизвестный девайс в uisp, хотя программатор в точности dasa2/ponyser/siprog. Забавно. Толи лыжи не едут... толи.. даже не знаю что. Похоже это баг, буду писать в багтрак avrdude.
Petka
Цитата(cz0 @ Feb 20 2008, 02:23) *
Нда.. все веселее и веселее. Приладил к ft232r 47hc04 дабы аппаратно инвертировать сигналы. Это дало возможность шить контроллер без соотв. галочек - это раз, а в avrdude указать стандартный ponyser/siprog. В виндовзе все великолепно заработало. В GNU/Linux все так же мимо кассы: ioctl("TIOCMGET"): Bad address в avrdude и неизвестный девайс в uisp, хотя программатор в точности dasa2/ponyser/siprog. Забавно. Толи лыжи не едут... толи.. даже не знаю что. Похоже это баг, буду писать в багтрак avrdude.

Скорее всего причина такова: Ponyprog после дёргания DSR, дожидается когда линия ДЕЙСТВИТЕЛЬНО изменит состояние (пони контролирует RTS). И только после этого продолжает работу. Такой механизм гарантирует независимость от задержек по обмену USB и задержек в ОС и драйверах. avrdude не контролирует RTS, поэтому обмен быстрее, но ненадёжнее. (Отсутствует обратная связь по RTS). C avrdude я не разбирался, но вероятно его можно настроить и на более правильный обмен. попробуйте, расскажите.
cz0
Дело в том, что виндовый avrdude тоже нормально шьёт.. К тому же, даже если оторвать DSR от RTS.
Petka
Цитата(cz0 @ Feb 20 2008, 15:11) *
Дело в том, что виндовый avrdude тоже нормально шьёт. К тому же, даже если оторвать DSR от RTS.

Видимо в винде задержки другие. Если вы отрываете DSR от RTS и avrdude работает, значит подтверждается моя гипотеза, что avrdude НЕ контролирует RTS! Научите его контролировать RTS и будет программироваться и под линукс, но медленнее, разумеется =)
Lubitel
Непонятно зачем reset меги подсоединяется к Ft232, как это работает??? blink.gif blink.gif blink.gif
Petka
Цитата(Lubitel @ Feb 20 2008, 16:34) *
Непонятно зачем reset меги подсоединяется к Ft232, как это работает??? blink.gif blink.gif blink.gif

Это очевидно, Ватсон! Что бы программировать мегу через Ft232. Само-собой что после программирования эту связь надо убрать. Читайте внимательно howto.pdf, doc.pdf
Lubitel
Дело в том, что я прочитал этот 20 раз.

12. Remove wire X2 to X3.
13. Make wire from X2 to X4.
14. Programmer «AvrUsb500 by Petka» ready to use!

Т.Е. В конце концов должно быть TXD (FT-шки) На Reset (меги). (судя по схеме.)???
Petka
Цитата(Lubitel @ Feb 20 2008, 16:40) *
Дело в том, что я прочитал этот 20 раз.

12. Remove wire X2 to X3.
13. Make wire from X2 to X4.
14. Programmer «AvrUsb500 by Petka» ready to use!

Т.Е. В конце концов должно быть TXD (FT-шки) На Reset (меги). (судя по схеме.)???

Да, это ошибка. X3 и X4 перепутал в документации. На днях поправлю. Спасибо за указание ошибки.
Lubitel
На схеме (на выходном разъеме) Обозначение Jtag сигналов. Планируется ли его реализовать?
Petka
Цитата(Lubitel @ Feb 20 2008, 16:59) *
На схеме (на выходном разъеме) Обозначение Jtag сигналов. Планируется ли его реализовать?

У меня в планах нет, может кто-нибудь другой попробует?
Carbon
Достаточно-ли для работы вашего программатора двух проводков Rx и Tx с FTDI-ки? Именно для работы, так как саму мегу мы заранее можем запрограммировать другим программатором.
Petka
Цитата(Carbon @ Feb 20 2008, 17:26) *
Достаточно-ли для работы вашего программатора двух проводков Rx и Tx с FTDI-ки? Именно для работы, так как саму мегу мы заранее можем запрограммировать другим программатором.

Достаточно.
Carbon
Цитата(Petka @ Feb 20 2008, 17:41) *
Достаточно.

Странно... С прошивкой от tuxgrafix программатор действительно виден, а с Вашей прошивкой нет. Пробую с кварцем 14,7456 , Mega8. Это только у меня так?
Petka
Цитата(Carbon @ Feb 20 2008, 17:48) *
Странно... С прошивкой от tuxgrafix программатор действительно виден, а с Вашей прошивкой нет. Пробую с кварцем 14,7456 , Mega8. Это только у меня так?

Программатор подключен к программируемому чипу? Каким софтом пользуетесь?
И по какой схеме собран ваш программатор?
Carbon
Цитата(Petka @ Feb 20 2008, 17:59) *
Программатор подключен к программируемому чипу? Каким софтом пользуетесь?
И по какой схеме собран ваш программатор?

К программируемому чипу программатор не подключен. По схеме от tuxgrafix первой версии - то-есть совсем ничего лишнего - только rx и tx к меге, разъем для программирования висит в воздухе. Пробую с кварцем 3,6864 прошивку от tuxgr и 14,7... в Вашей. Пробую из AVR студии и CVAVR. FTDI-ка видна как COM6.
Petka
Цитата(Carbon @ Feb 20 2008, 18:16) *
К программируемому чипу программатор не подключен. По схеме от tuxgrafix первой версии - то-есть совсем ничего лишнего - только rx и tx к меге, разъем для программирования висит в воздухе. Пробую с кварцем 3,6864 прошивку от tuxgr и 14,7... в Вашей. Пробую из AVR студии и CVAVR. FTDI-ка видна как COM6.

Прошивка сделана для моей схемы (схема отличается от tuxgraphics). как минимум не совпадает разпиновка на разъём программирования.
Carbon
Цитата(Petka @ Feb 20 2008, 18:19) *
Прошивка сделана для моей схемы (схема отличается от tuxgraphics). как минимум не совпадает разпиновка на разъём программирования.

Да, схемы не совпадают. Если не касаться разъема для программирования, т.к. он всё равно пока не подключен к таргету, то в остальном всё также. Клок 1МГц на PC0 всегда присутствует или только при программировании?
cz0
Я поддтверждаю, что версия avrusb500v2-1.2 с туксграфикса полностью работоспособна в плане программирования таргетов, в плане самопрошивки в моем случае возникли косяки, отписал Guido, тот, как обычно, молчит.
Вероятно (если удасться решить проблему с самопрограммированием) я сделаю чуть более расширенную версью с похожим самопрограмматором как у господина Petke, но с возможность управления и защиты внешнего питания (смотрите мой топик про ограничение тока в ветке про аналоговые устройства). Плата будет двухсторонней с USBB-1J и одной перемычкой для переключения режимов. Возможно с еще небольшими доработками если Guido даст на это разрешение (т.к. программатор зарелизен под GPL, то, вероятно, с этим проблем не будет).

Цитата(Petka @ Feb 20 2008, 20:07) *
Клок должен быть всегда, а не только при программировании. Ещё вопрос: мега в ДИПе? Если да, то обратите внимание, что нумерация пинов у меня указана для QFP корпуса, она отличается от DIP.

P.S. Поправил в документации ошибку с X3 X4. Новый вариант:Нажмите для просмотра прикрепленного файла

Я указывал Вам на эту ошибку страницей раньше.
cz0
Теперь самое интересное. Проблема с последовательным портом существет именно с FT232RL (даже не с RQ) и именно в 21, 22 и 23ей версии ядра. Как раз мой случай. Это отняло у меня двое суток непрерывных ковыряний. Сразу после наложения патча на 22ое ядро все заработало так же, как и в винде. Так что моей версии программатора быть.
2 Petke: большое спасибо за то, что указали мне на более красивую реализацию "самопрограммирования" чем оригинальный вариант Guido. siprog/ponyser поддерживается большим количеством программаторов (в частности с avrdude, uisp и понипрогом).
cz0
2 Petke: Да, вот еще что, проверил работу понипрога без соединенного RTS и DSR - зашилось так же, как и при соединенном варианте. Вероятно, понипрог также не проверяет результат.
Carbon
Цитата(Petka @ Feb 20 2008, 20:07) *
Клок должен быть всегда, а не только при программировании. Ещё вопрос: мега в ДИПе? Если да, то обратите внимание, что нумерация пинов у меня указана для QFP корпуса, она отличается от DIP.

Корпус TQFP. Кварц генерит, но клока нет, светодиод при включении пять раз мигает.
Petka
Цитата(Carbon @ Feb 21 2008, 11:33) *
Корпус TQFP. Кварц генерит, но клока нет, светодиод при включении пять раз мигает.

Попробуйте с кварцем 18.432
И какую именно прошивку вы туда загружали? Правильно ли выставили Фузы?
Carbon
Цитата(Petka @ Feb 21 2008, 12:38) *
Попробуйте с кварцем 18.432

Уже попробовал. Пробовал на двух разных мегах, были подозрения на сгоревшый порт, клока не на одной нет.
cz0
Цитата(Carbon @ Feb 21 2008, 12:46) *
Уже попробовал. Пробовал на двух разных мегах, были подозрения на сгоревшый порт, клока не на одной нет.

Попробуйте прошивку с туксграфикс http://tuxgraphics.org/common/src2/article07052/
Carbon
Цитата(Carbon @ Feb 21 2008, 12:46) *
Уже попробовал. Пробовал на двух разных мегах, были подозрения на сгоревшый порт, клока не на одной нет.

Включил в исходнике в функцию clk_start_1 установку направления ножки PC0 на выход DDRC|= (1<<DDC0); Клок появился. Без рукопашного изменения исходкика нога PC0 работает как вход!
Petka
Цитата(Carbon @ Feb 21 2008, 13:13) *
Включил в исходнике в функцию clk_start_1 установку направления ножки PC0 на выход DDRC|= (1<<DDC0); Клок появился. Без рукопашного изменения исходкика нога PC0 работает как вход!

Понял. Поправил исходники: Нажмите для просмотра прикрепленного файла
Carbon
Цитата(cz0 @ Feb 21 2008, 13:13) *
Попробуйте прошивку с туксграфикс http://tuxgraphics.org/common/src2/article07052/

Попробовал залить avrusb500_pre.hex из avrusb500v2-1.2.tar.gz.
Mega8 + 18,432MHz. Клок есть, программатор определяется.

Цитата(Carbon @ Feb 21 2008, 13:52) *
Попробовал залить avrusb500_pre.hex из avrusb500v2-1.2.tar.gz.
Mega8 + 18,432MHz. Клок есть, программатор определяется.

С Вашей прошивкой программатор отвечает в терминале
////////
avrusb500v2-1.2

Enter SW Version Major in hex [2]: 2
Enter SW Version Minor in hex [a]: a
Reset target at connector polarity test(1=on 0=off)[1]: 1

OK, my SW version is now: 2.0a (hex)
Ready. Just close the terminal. No reset needed.
////////
а вот к АВРстудии программатор не коннектится.
CVAVR выдает Communication error.
cz0
Цитата(Carbon @ Feb 21 2008, 14:04) *
Попробовал залить avrusb500_pre.hex из avrusb500v2-1.2.tar.gz.
Mega8 + 18,432MHz. Клок есть, программатор определяется.
С Вашей прошивкой программатор отвечает в терминале
////////
avrusb500v2-1.2

Enter SW Version Major in hex [2]: 2
Enter SW Version Minor in hex [a]: a
Reset target at connector polarity test(1=on 0=off)[1]: 1

OK, my SW version is now: 2.0a (hex)
Ready. Just close the terminal. No reset needed.
////////
а вот к АВРстудии программатор не коннектится.

Попробуйте установить версию 2.0 (на второй вопрос с [a] ответте нулем). Я не пользуюсь AVRStudio и её встроенным программатором, так что не могу утверждать с полной уверенностью. Возможно необходимо поставить последние патчи и сервиспаки для AVRStudio.
Carbon
Цитата(cz0 @ Feb 21 2008, 14:33) *
Попробуйте установить версию 2.0 (на второй вопрос с [a] ответте нулем). Я не пользуюсь AVRStudio и её встроенным программатором, так что не могу утверждать с полной уверенностью. Возможно необходимо поставить последние патчи и сервиспаки для AVRStudio.

Попробовал. Связи так и нет. С другими программаторами, студия, увидев stk500 со старой версией, предлагает его проапдейтить. Тут ситуация другая - она его не видит совсем.
Может условная компиляция проекта под Мегу8 дает не совсем верный код, чего не наблюдается при компиляции под М48?
Petka
Выкладываю обновлённые HEX. (поправлена бага с 1Мгц выходом).
Carbon
Цитата(Petka @ Feb 21 2008, 14:54) *
Выкладываю обновлённые HEX. (поправлена бага с 1Мгц выходом).

Большое спасибо.
Проверил с Mегой8 на разных кварцах, клок есть, терминал работает, связи с AVRstudio и CVAVR нет.

Цитата(Carbon @ Feb 21 2008, 15:10) *
Большое спасибо.
Проверил с Mегой8 на разных кварцах, клок есть, терминал работает, связи с AVRstudio и CVAVR нет.

Спасибо всем за ответы.
Разобрался. Принципиальное значение имеет цепочка резисторов R6, R8, R9, связывающая TARGET_RST с RST_ADC. Без них программатор не определяется ни CVAVR ни AVRстудией.
Petka
Цитата(Carbon @ Feb 21 2008, 15:24) *
Большое спасибо.
Проверил с Mегой8 на разных кварцах, клок есть, терминал работает, связи с AVRstudio и CVAVR нет.
Спасибо всем за ответы.
Разобрался. Принципиальное значение имеет цепочка резисторов R6, R8, R9, связывающая TARGET_RST с RST_ADC. Без них программатор не определяется ни CVAVR ни AVRстудией.

Скорее всего моя недоработка. Вечером поменяю в перечне элементов для меги8 другой номинал резистора.
У вас программатор полностью заработал?
Carbon
Цитата(Petka @ Feb 21 2008, 15:39) *
Скорее всего моя недоработка. Вечером поменяю в перечне элементов для меги8 другой номинал резистора.
У вас программатор полностью заработал?

К таргету пока не подключал. Скоро попробую. smile3046.gif
cz0
Цепочка резисторов R7/R12/R13 (обозначения по оригинальной схеме) играет ключевую роль в определении как таргета (точнее наличия его как такового) так и самого программатора. Если контроллер в программаторе не получает с ADC0 нужного значения, он не хочет общаться с программами, возвращая ошибку. Так он ведет себя не только в AVRStudio но и в avrdude. PC0(ADC0) - вход в любом случае, им микроконтроллер определяет что к нему подключено и как себя вести, клок генерится с PB0 через резистор в 220 Ом.
ХЕРОХ
Автору a14.gif !Но FT232 мин $6 В Киеве,что говорить про отдаленные города?Видел пожожий проект у немцев но без FT232 ttp://www.ullihome.de/index.php?title=USBAVR-ISP-Download&oldid=2392#Software.Никто не пробовал собрать?
Carbon
Перенастроил проект на совместимость с http://www.tuxgraphics.org/common/images2/.../circuit_th.gif скорректировав дефайны для канала АЦП, ног SPI, светодиода и ресета. Всё работает.
Проверил скорость программирования из студии : заливка в Mega16 16кб кода - 15сек. Верификация 12сек. Просто праздник какой-то! Почти как по LPT!
Да, и ещё - в терминале нужно указывать полярность ресета =0.
...
При установке в студии скорости SPI =921,6kHz заливка в Mega16 16кб кода - 11сек. Верификация 7сек.
Carbon
Интересно, можно ли просто подавая на ресет таргета 12 вольт сделать из обсуждаемого программатора HV-программатор? Хочу в своих поделках использовать все ножки контроллера, включая ножку reset, настроенную как порт вв/вывода. Останется ли тогда возможность внутрисхемного программирования? Или такой чип уже никак нельзя будет перепрограммировать? Интересуют в первую очередь 8-ногие тини.
Otvertkin
Может есть у кого макет ПП под стандартный выходной разъем?
Petka
Цитата(Otvertkin @ Feb 26 2008, 21:39) *
Может есть у кого макет ПП под стандартный выходной разъем?

Пожайлуста задайте более развёрнутый вопрос. Что, для чего, как себе вы это видите?
Otvertkin
Hello, Petka! Решил повторить Вашу конструкцию. Мне нужен девайс со стандартным (ISP-10) ну на худой конец ISP-6 выходом а под него нужно переделать печатку либо сооружать переходник, а это не совсем удобно. По сему и интересуюсь нет ли у кого готового решения.
Petka
Цитата(Otvertkin @ Feb 27 2008, 09:31) *
Hello, Petka! Решил повторить Вашу конструкцию. Мне нужен девайс со стандартным (ISP-10) ну на худой конец ISP-6 выходом а под него нужно переделать печатку либо сооружать переходник, а это не совсем удобно. По сему и интересуюсь нет ли у кого готового решения.

Как появится время сделаю вариант для ft232BM и со стандартным ISP разъёмом.
Otvertkin
Нельзя конечно мешать автору, но объясните почему ft232bm? Rl куда как практичнее (меньше обвязки), а так получится велосипед под названием http://www.tuxgraphics.org/common/images2/.../circuit_th.gif
backa
Цитата(ХЕРОХ @ Feb 21 2008, 17:44) *
Автору a14.gif !Но FT232 мин $6 В Киеве,что говорить про отдаленные города?Видел пожожий проект у немцев но без FT232 ttp://www.ullihome.de/index.php?title=USBAVR-ISP-Download&oldid=2392#Software.Никто не пробовал собрать?

я вчерась убил весь вечер - лохотрон - не определяет винда сей девайс с этими прошивами(раньше была залита прошивка игоря USB-COM - всё фурычило) . Так что эти HEX-сы набор цифр от балды 01.gif
жалко вечер потратил в пустую 01.gif
странно а у немцев вроде пашет - не пойму
__//www.mikrocontroller.net/topic/70230
ХЕРОХ
Цитата(backa @ Feb 28 2008, 11:50) *
я вчерась убил весь вечер - лохотрон - не определяет винда сей девайс с этими прошивами(раньше была залита прошивка игоря USB-COM - всё фурычило) . Так что эти HEX-сы набор цифр от балды 01.gif
жалко вечер потратил в пустую 01.gif
странно а у немцев вроде пашет - не пойму
__//www.mikrocontroller.net/topic/70230

Если Вы про немецкий программатор,то у меня Винда его видит!Но под Чипбластером и Кодевижн работать,не хочет!Stk 500 ИЗ студии работает очень не устойчиво 07.gif Из того что я делал пока прог от Протосса самый рабочий
backa
Цитата(ХЕРОХ @ Feb 28 2008, 13:22) *
Если Вы про немецкий программатор,то у меня Винда его видит!Но под Чипбластером и Кодевижн работать,не хочет!Stk 500 ИЗ студии работает очень не устойчиво 07.gif Из того что я делал пока прог от Протосса самый рабочий

а не могли бы вы описать конкретно последовательность действий при прошивке и прикрепить файл для прошики(реально рабочий!) какие фьюзы и как работать с бутлодером(совсем не понятно как прошивать и как потом пользоваться). Буду очень признателен - т.к. есть исходники то в будущем можно переделать по себя сей девайс. Пробовали зашивать I2C шину в чип?
Petka
2backa, ХЕРОХ:


Прошу не оффтопить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.