AVR. Учебный курс. Трактат о программаторах

Программа для микроконтроллера пишется на любом удобном языке программирования, компилируется в бинарный файл (или файл формата intel HEX) и заливается в микроконтроллер посредством программатора.
 

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

Что же представляет из себя это устройство?
В простейшем случае программатор это девайс который связывает микроконтроллер и компьютер, позволяя с компа залить файл прошивки в память контроллера. Также нужна прошивающая программа, которая по специальному протоколу загонит данные в микроконтроллер.
 

Программаторы бывают разные под разные семейства контроллеров существуют свои программаторы. Впрочем, бывают и универсальные. Более того, даже ту же простейшую AVR’ку можно прошить несколькими способами:
 

Внутрисхемное программирование (ISP)
Самый популярный способ прошивать современные контроллеры. Внутрисхемным данный метод называется потому, что микроконтроллер в этот момент находится в схеме целевого устройства — он может быть даже наглухо туда впаян. Для нужд программатора в этом случае выделяется несколько выводов контроллера (обычно 3..5 в зависимости от контроллера).


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

  • MISO — данные идущие от контроллера (Master-Input/Slave-Output)
  • MOSI — данные идущие в контроллер (Master-Output/Slave-Input)
  • SCK — тактовые импульсы интерфейса SPI
  • RESET — сигналом на RESET программатор вводит контроллер в режим программирования
  • GND — земля

Сам же разъем внутрисхемного программирования представляет собой всего лишь несколько штырьков. Лишь бы на него было удобно надеть разъем. Конфигурация его может быть любой, как тебе удобней.
Однако все же есть один популярный стандарт:

 

Для внутрисхемной прошивки контроллеров AVR существует не один десяток разнообразных программаторов. Отличаются они в первую очередь по скорости работы и типу подключения к компьютеру (COM/LPT/USB). А также бывают безмозглыми или со своим управляющим контроллером.
 

Безмозглые программаторы, как правило, дешевые, очень простые в изготовлении и наладке. Но при этом обычно работают исключительно через архаичные COM или LPT порты. Которые найти в современном компьютере целая проблема. А еще требуют прямого доступа к портам, что уже в Windows XP может быть проблемой. Плюс бывает зависимость от тактовой частоты процессора компьютера.
 

Так что твой 3ГГЦ-овый десятиядерный монстр может пролететь, как фанера над Парижем.
 

Идеальный компьютер для работы с такими программаторами это какой-нибудь PIII-800Mhz с Windows98…XP.
Вот очень краткая подборка проверенных лично безмозглых программаторов:
 

  • Программатор Громова.
    Простейшая схема, работает через оболочку UniProf(удобнейшая вещь!!!), но имеет ряд проблем. В частности тут COM порт используется нетрадиционно и на некоторых материнках может не заработать. А еще на быстрых компах часто не работает. Да, через адаптер USB-COM эта схема работать не будет. По причине извратности подхода :)
  • STK200
    Надежная и дубовая, как кувалда, схема. Работает через LPT порт. Поддерживается многими программами, например avrdude. Требует прямого доступа к порту со стороны операционной системы и наличие LPT порта.
  • FTBB-PROG.
    Очень надежный и быстрый программатор работающий через USB, причем безо всяких извратов. C драйверами под разные операционные системы. И мощной оболочкой avrdude. Недостаток один — содержит редкую и дорогую микросхему FTDI, да в таком мелком корпусе, что запаять ее без меткого глаза, твердой руки и большого опыта пайки весьма сложно. Шаг выводов около 0.3мм. Данный программатор встроен в демоплаты Pinboard

Программаторы с управляющим контроллером лишены многих проблем безмозглых. Они без особых проблем работают через USB. А если собраны на COM порт, то без извращенских методик работы с данными — как честный COM порт. Так что адаптеры COM-USB работают на ура. И детали подобрать можно покрупней, чтобы легче было паять. Но у этих программаторов есть другая проблема — для того чтобы сделать такой программатор нужен другой программатор, чтобы прошить ему управляющий контроллер. Проблема курицы и яйца. Широко получили распространение такие программаторы как:

  • USBASP
  • AVRDOPER
  • AVR910 Protoss

Внутрисхемное программирование, несмотря на все его удобства, имеет ряд ограничений.
Микроконтроллер должен быть запущен, иначе он не сможет ответить на сигнал программатора. Поэтому если неправильно выставить биты конфигурации (FUSE), например, переключить на внешний кварцевый резонатор, а сам кварц не поставить. То контроллер не сможет запуститься и прошить его внутрисхемно будет уже нельзя. По крайней мере до тех пор пока МК не будет запущен.
Также в битах конфигурации можно отключить режим внутрисхемной прошивки или преваратить вывод RESET в обычный порт ввода-вывода (это справедливо для малых МК, у которых RESET совмещен с портом). Такое действо тоже обрубает программирование по ISP.
 

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

Параллельное программирование во много раз быстрей последовательного (ISP), но требует подачи на RESET напряжения в 12 вольт. А также для параллельной зашивки требуется уже не 3 линии данных, а восемь + линии управления. Для программирования в этом режиме микроконтроллер вставляется в панельку программатора, а после прошивки переставляется в целевое устройство.
 

Для радиолюбительской практики он особо не нужен, т.к. ISP программатор решает 99% насущных задач, но тем не менее параллельный программатор может пригодиться. Например, если в результате ошибочных действий были неправильно выставлены FUSE биты и был отрублен режим ISP. Параллельному программатору на настройку FUSE плевать с высокой колокольни. Плюс некоторые старые модели микроконтроллеров могут прошиваться только высоковольтным программатором.
Из параллельных программаторов для AVR на ум приходит только:

  • HVProg от ElmChan
  • Paraprog
  • DerHammer

 

А также есть универсальные вроде TurboProg 6, BeeProg, ChipProg++, Fiton которые могут прошивать огромное количество разных микроконтроллеров, но и стоят неслабо. Тысяч по 10-15. Нужны в основном только ремонтникам, т.к. когда не знаешь что тебе завтра притащат на ремонт надо быть готовым ко всему.
 

Прошивка через JTAG
Вообще JTAG это отладочный интерфейс. Он позволяет пошагово выполнять твою программу прям в кристалле. Но с его помощью можно и программу прошить, или FUSE биты вставить. К сожалению JTAG доступен далеко не во всех микроконтроллерах, только в старших моделях в 40ногих микроконтроллерах. Начиная с Atmega16.
 

Компания AVR продает фирменный комплект JTAG ICEII для работы с микроконтроллерами по JTAG, но стоит он (как и любой профессиональный инструмент) недешево. Около 10-15тыр. Также есть первая модель JTAG ICE. Ее можно легко изготовить самому, а еще она встроена в мою демоплату Pinboard.

 

Прошивка через Bootloader
Многие микроконтроллеры AVR имеют режим самопрошивки. Т.е. в микроконтроллер изначально, любым указанным выше способом, зашивается спец программка — bootloader. Дальше для перешивки программатор не нужен. Достаточно выполнить сброс микроконтроллера и подать ему специальный сигнал. После чего он входит в режим программирования и через обычный последовательный интерфейс в него заливается прошивка. Подробней описано в статье посвященной бутлоадеру.
Достоинство этого метода еще и в том, что работая через бутлоадер очень сложно закосячить микроконтроллер настолько, что он не будет отвечать вообще. Т.к. настройки FUSE для бутлоадера недоступны.
 

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

Pinboard II
Прошивка AVR с помощью демоплаты Pinboard II (для Pinboard 1.1 все похоже)

 

81 thoughts on “AVR. Учебный курс. Трактат о программаторах”

  1. А что это делает в учебном курсе? чего не на главной странице?
    Здарова, Артем, вот я и зашел, чего то не мог зайти долго…

    1. Я постепенно правлю и переписываю старые статьи, чтобы привести их в более стройный и завершенный вид.

    1. Эта ни про что. Она новая. Но ее явно тут не хватало. Если ты не заметил, я выбросил из учебного курса «шаг первый — программатор» Переименовав ее в «Программатор Громова» и вынес ее в Готовые устройства.

  2. Да, заметил. Люблю изменения на этом сайте)))
    Кстати, как сделать, чтобы мне на другое мыло пароль высылался, да и сообщение от сайта об оповещении, что, мол, «сообщение пришло, тебе ответили»)))?

  3. Привет всем, есть вопрос по всем этим программаторским делам.
    Есть к примеру рабочий программатор AVR910 Protoss (он указан в статье).
    Есть header плата с контроллером AT90CAN128 от фирмы OLIMEX. Так вот на ней кроме JTAG
    разьема есть еще и резьем, который называется ICSP(In-Circut Serial Programming). Как
    оказалось у этого рзьема немного другое подключение, а именно вместо стандартного ISP
    подключения
    Программатор Контроллер
    VCC——————VCC
    RES——————RESET
    MISO—————-MISO
    MOSI—————-MOSI
    SCK——————SCK
    GND——————GND
    У него вот такое(ICSP подключение):
    Программатор Контроллер
    VCC——————VCC
    RES——————RESET
    MISO—————-TXDO
    MOSI—————-RXDO
    SCK——————SCK
    GND——————GND
    В инете не так много и нашел по ICSP,кроме того что это доработанная ISP. Так вот вопрос сможет ли программатор AVR910 Protoss или любой другой ISP программатор запрограммировать контроллер через разьем ICSP?
    Буду благодарен за любые мысли по этому поводу. Спасибо.

    1. Все правильно. У Мега128 разьем программирования отличается по подключению от классического тем, что ноги идут не на выводы моси мисо на тхдо рхдо.

      Прошить сможешь.

  4. всем привет. есть вопрос такой. работаю щас с 90S2313. пробовал на нем несколько программаторов: Громова, «пять проводков» и USB на FT232RL. USB-программатор никак не хочет с ним работать, при том, что с программатором Громова и «пятью проводками» работает на ура — и пишет и читает.

    avrdude.exe -p 2313 -c ftbb -P ft0 -U flash:w:2313.hex:a — это команда для avrdude.

    получаю:

    avrdude.exe: BitBang OK
    avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
    avrdude.exe: drain OK

    ft245r: bitclk 230400 -> ft baud 115200
    avrdude.exe: ft245r_program_enable: failed
    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude.exe done. Thank you.

    Даю команду с -F:
    avrdude.exe -p 2313 -c ftbb -P ft0 -F -U flash:w:2313.hex:a

    Получаю

    avrdude.exe: BitBang OK
    avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
    avrdude.exe: drain OK

    ft245r: bitclk 230400 -> ft baud 115200
    avrdude.exe: ft245r_program_enable: failed
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading |#######################################################| 100%
    avrdude.exe: Device signature =0x000000
    avrdude.exe: Invalid device signature
    avrdude.exe: Expected signature for AT90S2313 is 1E 91 01
    avrdude.exe: safemode: Verify error — unable to read fuse properly. Programmer may not be reliable.

    И Это при том, что я установил ключ -F, который должен отключать верификацию сигнатуры. И другие программаторы прекрасно работают с этим микроконтроллером. Добавлю, что он уже несколько раз был перепрограммирован, то есть не «с завода».

    У кого были такие проблемы и что с этим делать?

    1. Хм. А другие типы контроллеров шьет?

      Судя по логу у тебя дудка нашла программатор, но не смогла подключиться к контроллеру.

      1. Удалось проверить седня еще один 2313. Такие же проблемы. А мегу16 вчера шил без проблем и читал тоже.
        Но самое интересное, что другие то программаторы работают с этими 2313.

      2. мегу8 тоже шьет.
        Видел в теме про USB-программатор у Antoniy тоже были проблемы с 2313. потом он купил новый 2313 и сразу же подключил его к USB-программатору и, судя по логу, он у него заработал, только он видимо при чтении формат выходного файла не указал. Так может быть дело в том, что мои 2313 уже залочены? и тогда вопрос: как их «разлочить»? ISP наверное не поможет.

  5. Такой вопрос:

    «STK200
    Надежная и дубовая, как кувалда, схема. Работает через LPT порт. Поддерживается многими программами, например avrdude. Требует прямого доступа к порту со стороны операционной системы и наличие LPT порта.»

    Прямой доступ к порту это какой режим LPT потра Normal, EEP или ECP?

  6. не могу вкурить как правильно сделать,
    ресет программатора напрямую запаивать на ресет контроллера:

    +———+
    |tn2313 |
    ISP_reset]———-[|reset |
    +———+

    или на резистор 10к, который подключен к ресету мк?
    +———+
    R 10k |tn2313 |
    ISP_reset]———-[==]- [|reset |
    +———+

  7. У меня сейчас 3 компа
    1)коре i5 750 2.66 Ггц 4 ядра ,нет ни лпт ни ком
    2)Атлон64 с частотой 2 Ггц
    3)пеньтиум 2 400Мгц
    Заработает ли какой либо програмаматор на первом компе?
    особо интересует заработает ли STK200 или вариант Громова на атлоне
    или мой единственный выход старый пентиум 2?

      1. т.е. скорее да чем нет это ответ на вопрос что stk200 или громов заработает на атлоне?
        я соберу тогда громова для атлона и отпишусь сюда заработает или нет

        1. Недавно собрал нечто похожее на классический stk200/300, на моём атлоне3500 с упоротой материнкой работает без проблем;)

  8. Привет!
    Поясни пожалуста: если я использую внутрисхемное программирование (ISP), то получается, что я отбираю 4 порта у МК? Если в схеме на этих ногах постоянно сидят входы или выходы логики, или просто светодиоды, то повлияет ли это на процесс прошивки? или повлияет ли процесс прошивки на перефирию (особенно если порт подключён к выходу логики)?

    1. Смотря как сделать. Выводы логики подключаются на этих выводах к МК через резисторы в 300ом. На работу логики этот резюк не повлияет. А выводы программатора подключаются к МК напрямую, до резюка на логику. Тогда логика не повлияет на прошивку.

      Но прошивка будет влиять на логику, ведь там уровни меняются. Поэтому логику, если это критично, на период прошивки надо выключать. Иначе она сойдет с ума и будет чудить во время прошивки. Или выключать исполнительное устройство, чтобы оно бед не наделало.

  9. Выручай, комрад ДИ! Извиняй, если не в той теме пишу. Не получается завести мегу168 от внешнего тактового генератора. Уже не знаю, что не так делаю. Фузы CKSEL3..0 прошиты как «0000». Импульсы поступают на ногу XTAL1 меги с порта другого МК с частотой ок. 1 МГц. Есть ли какие-нибудь подводные камни во внешнем тактировании? Что я мог упустить? Заранее благодарен.

      1. Шил через USBasp с граф. оболочкой. Галочки битов CKSEL3..0 были установлены. То есть, не перепутал. Ладно, спасибо за ответ. Буду проверять всё остальное.

  10. Добрый день. Скажите пожалуйста, программатором можно воспользоваться для считывания ROM, EEPROM из МК? Какие программы нужны для этого? Что вообще нужно для того, чтобы после некоторого времени работы МК я смог подключить его к компу и считать EEPROM или ROM? Нужно ли в таком случае писать в МК код, срабатывающий по прерыванию и выдающий на MOSI\MISO данные?
    Заранее спасибо

    1. Пожалуй любым. Любой AVR программатор умеет читать и епром и флеш. Никакой софт для МК писать не нужно.

      Правда и флеш и епром могут быть заблокированы автором прошивки изнутри (95% всех коммерческих девайсов). Тодга ты обломаешься.

      1. Спасибо, автором прошивки собираюсь быть я: думаю, пару месяцев эмулирования МК мне достаточно, пора переходить на железо. То есть, обычным ПониПрог или АВРДуде можно не только загружать, но и считывать информацию с контроллера? Ни разу не прошивал МК, и даже не видел, как это делают, поэтому такие вопросы.

  11. Здравствуйте. Начал изучать микроконтроллеры. Хочу приобрести программатор из набора мастер-кит NM9211. В описании написано, что он предназначен для программирования микроконтроллеров серии AT89S/AT90S. Можно ли его использовать для ATmega-16, ATmega-8, и если нет, то какие посоветуете программаторы «из той же оперы»? Заранее благодарю.

  12. Скажите пожалуйста если подключать ISP програматор к ATtiny 2313 то вывод sck програматора нужно подключать к USCK или XCK.

  13. здрасте подскажите пожалуйста если не трудно в чем прикол, прошил тини 2313 вот этим)) http://easyelectronics.ru/repository.php?act=view&id=45 и после она перестала определяться синои прог , в прошивке задействованы в обмене i2c выводы внутрисхемного прог isp, но вроде как косяк будет если только вывод ножки ресет на выход определить.
    Заранее спасибо.

    1. Если фузы не трогал, то программатору пофиг какой там код стоит. Другое дело, что сама схема может влиять на программатор. Например подтягивающие резисторы висящие на его линиях.

      1. да в том то и дело что не фузы не трогал, линии свободные, с другои прошивкой все ок. если в http://easyelectronics.ru/repository.php?act=view&id=45 вот эту часть кода убираешь:

        reset_cam:
        CBI portb, 7
        delay_ms 0.2
        SBI portb, 7
        delay_ms 3
        RET

        то все нормально, а если с ней то все прошил и потоп уже все не определяет.
        ну да ладно спасибо за помощь, вечером погенерю еще мож найду в чем дело.

        1. магия прям какая то б.. , тактируется мк от внешнего сигнала(вторая тинька генерит 10мгц), линии ISP чистые, программатор AVR USB наFT232RL местного разлива, оболочка сина прог, прошивка вышеупомянутая, если выставляю фузы на 4,1мс или 65мс задержки после сброса то все нормально потом сина определяет тиньку, но если выставляю 0мс то все неопределяет, пару раз получилось определить если «повозюкать пальцем» по обратной стороне платы в районе дорожек ISP, скорость разную перепробовал в сине. Мне так кажется что дело во временных задержках «протокола» начального соеденения сины с МК, что короче большое ХЗ, никто случаино не сталкивался с подобным. Спасибо заранее.
          а то все тиньки «залочил»(штук 8))))

          1. А может дело в том, что он запускается как то странно? Хотя тактовый внешний.

            Вход в режим программирования идет по ресету. Тут должно быть пофигу на время старта.

            1. на в вешнем кварце такая же беда(от внутреннего RC генератора не успел проверить закончились МК ), все нормуль заливалось до этои прошивки, все прошивалось на ура.
              на программаторе кондер отпаялся(без корпуса он) и я его с дуру припаял не туда перепутал, ft232 начала греться сразу не заметил мож повредил там что и к примеру не хватает «мощей», пробило там что нибудь утечка по току например или ХЗ.

    1. Система внутрисхемной прошивки у атмеля зовется ISP, а протокол по которому все данные идут SPI
      причем у некоторых мк (мега128/мега64) выводы ISP не совпадают с выводами SPI хотя для прошивки используется те же SPI сигналы.

  14. Очень прошу помощи, сломал весь моск.
    Есть камень ATMega644PA, хочу его прошить через ISP. Есть ISP программатор типа STK200/300, которым полгода назад прошивал через ISP ATMega16. Тогда прошивал понипрогом, им же пробую и сейчас, на том же компе (OS WinXP) (комп правда не мой, а мамин, у меня свой, на нем лпт нету, система там не переставлялась, но возможно что-то не так с драйверами). В биосе режим ECP, адрес 378. ISP втыкаю в плату, подаю на нее питание, PWR на прогере загорается. Втыкаю в лпт, запускаю комп, горят помимо PWR еще и READ и WRITE. КОгда винда заканчивает загрузку, Read и write гаснут. Отключаю каспер, отключаю менеджер принтера (вообще принтер Samsung ml2510 подключен через usb). Запускаю поньку, запускаю калибровку, ОК. Настройки порта — Parallel, AVR I/O, LPT1 — он единственный доступен для выбора. Probe — test failed. В настройках порта пробовал любые режимы прерываний, перетыкал все что мог, нифига. Останавливал/запускал драйвер DLportio (где надо еще включать показ скрытых устройств). Попробовал с помощью AVRrude — не может открыть порт LPT1.
    Попробовал запустить ICProg. Сначала тоже ругался, privileged instruction. Потом скачал драйвер icprog.sys, провел некоторые махинации, icprog ругаться перестаю. Прогер правда при запущенном ICProg светится всеми лампочками. Тест программатора успешный — по крайней мере когда в испроге нажимаю в окне теста порта флажок invert VCC, лампочки READ и WRITE гаснут и загораются. Все бы хорошо, но испрог АВР не поддерживает.
    Понька и дудка все равно не захотели работать. Может им какой-то свой драйвер нужен?

    1. Для avrdude вроде тоже какой то io.sys может понадобиться на случай работы в битбанге через LPT. Точно не знаю, т.к. на XP через LPT никогда не шил. А через COM UniProf подключился на раз.

      Ты еще посмотри у Атмега644 возможно пины программирования другие. У Мега128 и 64 они точно отличаются, т.е. не совпадают с SPI

      1. Поставил винавр какой-то, целиком. Там был в комплекте аврруде, не такой каким пробовал. Он на отсутствие доступа не ругался. Но там не было АТМега644, была только АТмега64, ее и выбрал. Но так нельзя ведь?
        Эт еще ладно. Прошивка весит 2.5+кб, этот аврруде увидел только 736 байт, их и записал, еще и радостно сообщил что верификация окей. Еще и прошивка заняла около секунды, это еще и с верификацией.
        МК делает какую-то совершенно непонятную фигню. Но хотя бы работает))))
        Насчет пинов программирования. Схему делал в протеусе, там пины в соостветствии с даташитом. Печатку делал в нем же, симуляцию тоже. В симуляции все равботает (пришлось конечно поотлаживать). Так что по идее прошивка должна быть рабочая, но с зашивкой программы видимо задница.
        И вот блин нифига не могу вспомнить, как прошил полгода назад этим же программатором мегу-16. Соответствие линий и пинов ессно проверял и привел в соответствие для меги64.
        Через ком кстати другим программатором тоже все идеально, тиньку раз 50 прошил.

        1. ВОт такой подлости я не ожидал. Специально чтобы прошить нашел старый комп с 98-ой виндой, поставил туда программаторов, поставил dlportio, и блин абсолютно та же хрень, что и на ХР.

          1. Итак, надо подумать логически. Имеем цепочку:
            ATmega664 — разъем на плате — шлейф — программатор (микросхема К555АП5) — ЛПТ порт — драйвер — программа прошивки.
            Атмега как то что-то делала, поэтому считаем что работает. Впрочем, на Test Failed понипрога это никак не влияет.
            Разъем на плате — пины программирования все сверил, все подходит правильно, контакт есть.
            шлейф — контакт от платы к плате есть.
            Раз диоды меняют свое состояние по командам ICProg’a, значит микросхема не дохлая, контакты везде есть.
            ЛПТ порт тоже работает, к тому же проверено на разных компах.
            Драйвер и программы тоже работают одинаково на разных компах.
            То есть под подозрением, как мне кажется, 2 момента — странная смерть микросхемы программатора или не тот драйвер ЛПТ. Может еще что-то может быть?

            1. С Test Failed разобрался. Перемычек не было. И в прошлый раз прошивал AVReal’ом, ему на это было пофиг.
              Но теперь Device missing говорит, гадина.

              1. Где-то прочитал, что понька может ругаться 24-ой ошибкой от нефиг делать, и надо нажимать ignore. Попробовал. С первого раза чуть криво записалась и прочиталась, со второго зато нормально. Фьюзы также, через кнопку Ignore.
                Жалко пока проверить работоспособность не могу, плата расширения в другом месте. Но неоднократные прочтения вроде подтверждают целостность записанной прошивки.
                Кстати, нормально ли что при этих махинациях мега чуточку нагрелась? Ну на ощупь теплая немного. Насколько я помню, с 16-ой мегой такого не было, хотя могу ошибаться.
                Блин, хочу нормальный программатор, ЛПТ извлек. Или хотя бы разобраться с бутлоадером.

  15. Приветствую!

    Немного путано, честно говоря, с этими программаторами у меня в голове все нарисовалось, поэтому спрошу вот какой вопрос:

    Хотелось бы иметь программатор (и прогу под винду для него), которым можно было бы шить как AVR, так и всякую память по SPI.

    Хотелось бы чтобы для обоих целей была как одна схема, так и одна прога. Как я понимаю, схема подойдет любая. На выходе то все равно SPI, разница лишь в связи программатора с компом, верно?

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

    1. Теретически железо подойдет любое. А вот чтобы шить память по спи… я даже не знаю есть ли вообще софт такой, чтобы через имеющиеся программаторы это реализовать. Разве что через FTDI битбангом. Но я не встречал. Обычно все же более узкозаточенные.

      1. Про имеющиеся программаторы не знаю, но знаю что по системе прямого подключения проводков через резисторы и какой-то консольной проги я уже успешно шил память.

        PonyProg, как я понимаю, может шить и память.

        Вот только не знаю, какие программаторы поддерживает.

  16. Господа, подскажите пожалуйста начинающему, есть ли какие-то ограничения по встраиванию в свои изделия разъема ISP? Как я понял, ноги контроллера, идущие на ISP могут быть использованы для функционирования самого устройства, но уже натыкался на то, что МК не виден программатору из-за того что на этих ногах висит какая-то обвязка. Есть ли какие-то общепринятые схемотехнические практики для обеспечения возможности внутрисхемного программирования?

    1. Конечно есть ограничения. Но это зависит от обвязки. Обычно достаточно отделить обвязку от МК резистором на 1-10кОм, а программатор вешать прям на ноги МК, до резисторов. Тогда он передавит уровень обвязки и прошьет. Но учти, что на обвязку пойдет левая каша с программатора, смотри, чтобы она у тебя с ума не сошла.

  17. DI HALT, подскажи, пожалуйста, какой из программаторов работает с Mac OS или хотя бы Linux? Купил BM9010 от МастерКит и что-то не пашет, виртуалка c Windows просто его не видит :(

    1. Понятия не имею. Я юзаю винду :) Вообще должен работать usbasp, гарантированно работает ftbitbang на FT232 надо только дудку патченую иметь.

        1. Он самый. Такой же стоит на Pinboard всех версий и у линухом с ним проблем не было. Правда я не знаю как там чо, но на форуме было описание работы с ним под линем. Ну и аврдудка работает под маком тоже.

          1. Ок, собрал, работает! :) Собрать дудку с патчами для FT232 под мак правда не удалось, но за-то все прекрасно работает в виртуалке с виндой.
            Это был первый опыт травления платы и пайки smd, так что наебался вдоволь, особенно с ft232 ))

            1. Аааа ручки поди тряслись! Ничо ничо, запаяешь штук 100 резисторов и рука будет твердой как манипулятор робота.

  18. Я себе слепил AvrUsb500 by Petka.
    Начало: http://electronix.ru/forum/index.php?showtopic=42679
    Продолжение: http://electronix.ru/forum/index.php?showtopic=68372
    Обязательно читать тему до конца, я вот поторопился и потом вкрячивал в готовую плату конденсатор на вход АЦП… Вот он, мой: http://electronix.ru/forum/index.php?showtopic=68372&view=findpost&p=1133060 :)
    Преимущества:
    1. Решена проблема курицы и яйца: встроенный контроллер шьётся сначала битбангом от встроенной же FTDI, а потом работает по USB.
    2. Работает по USB — не нужно подбирать комп постарше :) Сейчас у меня макбук, под виртуалкой XP — работает.
    3. Притворяется STK500, а значит совместим со всеми мыслимыми программами — от «дудки» до АВР-Студии и Code Vision.
    Недостаток: надо сделать плату под FTDI и запаять её :)

    По поводу параллельного программирования. Есть проект Atmega fusebit doctor: http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/ Это не программатор, а «распрограмматор» :) Т.е. устройство для восстановления МК, убиенных неправильной установкой фузов. Устройство позволяет вернуть МК к заводским установкам. Я себе пока не паял, вот наберу пяток залоченных МК, тогда сляпаю :)

    1. Я обычно останавливаюсь на голой FTDI и шью все битбангом. Все эти гуи нафиг не нужны. А там где нужны спасает Sina Prog.

      З.Ы.
      А читать 65 страниц темы до конца ради того чтобы собрать программатор… да ты юморист :)

      1. На мой взгляд, есть плюсы в том чтобы шить прямо из Студии (или другой среды разработки). Особенно когда только изучаешь тему: написал — промоделировал — зашил — потестил — исправил и т.д. Слишком много итераций чтобы прыгать из программы в программу. Потом в Студии трудно ошибиться с фузами, даже не надо запоминать «галка снята/поставлена» (больная тема, верно?) — достаточно внимательно читать: студия что твой форум, подробно коментит твои действия — к чему именно приведёт то или иное _действие_ с фузами.
        Тема про программатор там да, жирная. Но вся масса сообщений — типа «ой, не работает, ой, непропай/залипуха, ой, а можно заменить то на это? ой, а как зашить, а чо фузы» и т.п. Конечно, основное автор вынес в первое сообщение, но не всё. К примеру, с тем конденсатором на АЦП, который нужен для МК с индексом «А» — упоминание есть только в тексте… Можно, конечно сразу писать комент «ААА ВСЁПРОПАЛО!!!!», а можно сначала почитать про чужие грабли :))

  19. На ubuntu, avrdude, проводками через ltp порт возникает проблема. Нужно самостоятельно вытыкать ножку reset. Иначе контроллер постоянно сбрасывается, как можно решить эту проблему?

  20. Парни, объясните подробно как с помощью Pinboard программировать PIC и AVR. Если это будет ещё и в картинках то вообще уважуха.

  21. Спасибо, занимательная видяшка. Теперь надо заточить под PIC. Pinboard очень удобный конструктор для идей.

  22. Где можно скачать AVRDUDE SHELL который представлен на видео? Я так понимаю, что ставится сначала AVRDUDE, а потом патч SHELL ?

  23. Уважаемый DI HALT! Я приобрел готовый модуль преобразователя USB-UART FT232RL, http://radiomart.org/index.php?id_product=267&controller=product&search_query=Preobrazovatel%D1%8C+USB-UART+na+FTDI+FT232RL&results=1, можно ли его приспособить как программатор, если да, то, что нужно сделать? Если не затруднит, объясните на пальцах какие выводы модуля должны идти к МК, какая объвязка и если уж совсем не трудно нарисуйте пожалуйста схему. Спасибо.

    1. Точно не уверен, не помню раскладку выводов FT232RL по GPIO, но дается мне что нет — слишком мало выводов.
      Прочитай очень внимательно вот эту статью:
      http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html

      Там есть таблица расположения Bitbang выводов. Если наскребешь по ней себе хотя бы 4 вывода (смотри схему на твой модуль, что там выведено на гребенку, вроде бы DTR не умеет битбанг). То только сконфигурировать надо будет (читай там же в статье).

      А потенциально можно, если подпаяться к выводам.

  24. Паяльная станция с феном есть, видеоролики о выпайке микросхем из плат в сети есть, так-что думаю справлюсь. В комментариях к статье о программаторе говорили, что микросхема термоустойчивая, поэтому попробую.

  25. Привет, DI HALT.
    Сразу не стал заморачиваться и собрал FTTB по вашей схеме. Win7 его определила, драйвер встал, все гуд. Но вот у меня сомнения, как эта версия AVR Dude будет работать с новыми моделями МК. Она, к примеру, не знает ATMega16A, который пришел на замену 16, да и вообще куча камней новых с тех пор вышла. А новые дудки под FTBB вроде как не пропатчены, или я не прав? Заранее благодарен за ответ.

    1. Ну я с проблемами не сталкивался. Если что просто можно дописать новые секции в ини файл. А 16 от 16А отличается только энергопотреблением и все. Шьется она точно также. Вот с хМега будут проблемы. Там другой интерфейс программирования.

      1. Попробовал с Mega16A — fuses читаются/пишутся, flash пишется и читается (в том числе в файл), и через гуй и непосредственно батником. Но есть проблемка с eeprom. Писать-то она пишется, но вот чтение дампа в файл не пашет. Образуется пустой файл с единственной строчкой типа :0000FF… Пробовал заливать в eeprom что-то осмысленное, но на выходе пустой файлик. Есть уверенность, что пишет правильно, но иногда же нужно прочитать, что там прога насохраняла, а тут такая бага… Просмотрел чудовищную портянку комментов в статье про FTBB, судя по всему не только у меня были такие проблемы. Решения так и нет?

      2. Раскопал на форуме вашу ссылку на экзешник рабочей дудки, и всё встало на места. Спасибо!) Если не сложно, то поместите его в архив для скачивания под статьей о FTBB, чтобы люди об лед не бились, если кто еще забредёт на сайт))

Добавить комментарий

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha