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

Сознаюсь, виноват :) Я посмотрел Вашу схему, достаточно интересно. А есть ли такой режим программирования в avrdude или uisp? Я не проактикую Виндовз так что понипрога у меня нет.

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


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

Сознаюсь, виноват :) Я посмотрел Вашу схему, достаточно интересно. А есть ли такой режим программирования в avrdude или uisp? Я не проактикую Виндовз так что понипрога у меня нет.

Так пони вроде и под *nix есть!

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


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

Так пони вроде и под *nix есть!

Надо будет посмотреть что там к чему. Идея "самопрограммирующегося программатора" мне нравится. Более того, реализация Guido очень интересна, но это все-таки огород, потому что надо патчить uisp для реализации им битбанга. Метод, предложены Вами куда интересней, потому что позволяет шить контроллер штатными средствами без костылей типа битбанга. Если удасться прошить контроллер uisp/avrdude'ом, то, вероятно, переделаю программатор. Бляго, для проверки у меня есть все необходимое: отладочная плата с FT232RL и отладочная плата с mega8/mega88. Остается понять какой режим используется, usip точно умеет инвертировать сигналы, насчет avrdude - не знаю. Буду пробовать.

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


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

Ога! Идея ясна. Ваш вариант - всего лишь разновидность serial bit banging, посмотрев конфигурацию avrdude нашел много различных вариантов, в том числе и тот, что у вас, обзывается sipprog (он же ponyser). Остается вопрос: почему в настройках понипрога Вы инвертируете rts dtr и cts? Потому, что соотв. выходы FT232 инвертированы? Насколько я помню, FT232Rx поддерживают конфигурирование этих линий через утилиту, которая пишет во встроенный EEPROM. Сконфигурировав таким способом FT232Rx можно отвязаться от понипрога и использовать более универсальный avrdude (впроем, его можно использовать в любом случае т.к. он поддерживает индивидальную конфигурацию шин). Однако, реализовав интерфес, называемый dasa можно сделать куба более универсальный самопрограмматор, потому что этот режим штатно поддерживается и avrdude и uisp. Я попробую реализовать именно его.

P.S. Да, и еще, в вашем HOWTO первым шагом написано соединить разъемы X2 и X3, в после программирование разъединить X2 и X3, соединив X2 с X4. Думаю все должно быть с тоночтью до наоборот: во время прошивки самого программатора X2 соединяется (который является его рессетом), а в шататном режиме Х2 соединяется с Х3, который RX микроконтроллера.

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

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


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

Ога! Идея ясна. Ваш вариант - всего лишь разновидность serial bit banging, посмотрев конфигурацию avrdude нашел много различных вариантов, в том числе и тот, что у вас, обзывается sipprog (он же ponyser). Остается вопрос: почему в настройках понипрога Вы инвертируете rts dtr и cts? Потому, что соотв. выходы FT232 инвертированы? Насколько я помню, FT232Rx поддерживают конфигурирование этих линий через утилиту, которая пишет во встроенный EEPROM.

В оригинальной схеме ponyser уровни +12в, -12в (RS232) с помошью диодов, резисторов, стабилитронов преобразуются соответственно в +5в и 0в. (а ft232 делает 0в и +5в соответственно ) Отсюда и инверсия.

 

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

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


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

В оригинальной схеме ponyser уровни +12в, -12в (RS232) с помошью диодов, резисторов, стабилитронов преобразуются соответственно в +5в и 0в. (а ft232 делает 0в и +5в соответственно ) Отсюда и инверсия.

 

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

Я попробовал зашить mega8 с вашей разводкой (благо есть отладочная плата на FT232RL и ATMega8) - все отлично прошилось. Однако мне никак не удется заставить работать avrdude и uisp. Это странно!

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


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

Я попробовал зашить mega8 с вашей разводкой (благо есть отладочная плата на FT232RL и ATMega8) - все отлично прошилось. Однако мне никак не удется заставить работать avrdude и uisp. Это странно!

Что именно не получилось? Что получилось? Коды ошибок.... подробнее =)

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


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

Что именно не получилось? Что получилось? Коды ошибок.... подробнее =)

Что-то косячит именно в 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 секунд.

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


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

Нда.. все веселее и веселее. Приладил к ft232r 47hc04 дабы аппаратно инвертировать сигналы. Это дало возможность шить контроллер без соотв. галочек - это раз, а в avrdude указать стандартный ponyser/siprog. В виндовзе все великолепно заработало. В GNU/Linux все так же мимо кассы: ioctl("TIOCMGET"): Bad address в avrdude и неизвестный девайс в uisp, хотя программатор в точности dasa2/ponyser/siprog. Забавно. Толи лыжи не едут... толи.. даже не знаю что.

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


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

Нда.. все веселее и веселее. Приладил к ft232r 47hc04 дабы аппаратно инвертировать сигналы. Это дало возможность шить контроллер без соотв. галочек - это раз, а в avrdude указать стандартный ponyser/siprog. В виндовзе все великолепно заработало. В GNU/Linux все так же мимо кассы: ioctl("TIOCMGET"): Bad address в avrdude и неизвестный девайс в uisp, хотя программатор в точности dasa2/ponyser/siprog. Забавно. Толи лыжи не едут... толи.. даже не знаю что. Похоже это баг, буду писать в багтрак avrdude.

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

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


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

Нда.. все веселее и веселее. Приладил к 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 я не разбирался, но вероятно его можно настроить и на более правильный обмен. попробуйте, расскажите.

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


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

Дело в том, что виндовый avrdude тоже нормально шьёт.. К тому же, даже если оторвать DSR от RTS.

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


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

Дело в том, что виндовый avrdude тоже нормально шьёт. К тому же, даже если оторвать DSR от RTS.

Видимо в винде задержки другие. Если вы отрываете DSR от RTS и avrdude работает, значит подтверждается моя гипотеза, что avrdude НЕ контролирует RTS! Научите его контролировать RTS и будет программироваться и под линукс, но медленнее, разумеется =)

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


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

Непонятно зачем reset меги подсоединяется к Ft232, как это работает??? :blink: :blink: :blink:

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

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


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

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...