Прошивка микроконтроллеров AVR

В этой статье мы рассмотрим самую базовую вещь: прошивку контроллеров Atmel AVR.

Чем будем шить? — SWD, FPI, ICE? Неет… Это вам не 32-ух битные черти, это скромные и добрые 8-ми битные существа с SPI интерфейсом внутрисхемного программирования. 🙂 Также их можно программировать через JTAG, но сейчас не об этом.

Для работы SPI интерфейсы необходимы линии:

  • SCK — тактовый сигнал
  • MOSI (Master Out Slave In) — линия данных от ведущего устройства к ведомому
  • MISO (Master In Slave Out) — линия данных от ведомого устройства к ведущему
  • RESET — сброс, при программировании должен прижат к земле

К примеру, взяв контроллер Atmega32, линии интерфейсы будут там:

ATmega32

 

Теперь нам нужно что-то вроде преобразователя: ПК->SPI->MK. Один добрый человек, Громов, сделал простой программатор для AVR, работающий от COM порта ПК.

2a9878

 

Почему не LPT? — LPT порт уже редкость, которую можно легко спалить, а COM еще доживает свое и обладает крайней живучестью. В итоге получается небольшая конструкция, которую можно реализовать навесным монтажом. 🙂

5c3ef6

Далее нам необходимо обзавестись программой, которая собственно будет прошивать. Это Uniprof, разработка Николаева. Она проста в использовании, позволяет читать/писать флеш-память МК, EEPROM, а также изменять фьюзы.

Ashampoo_Snap_2014.03.20_22h40m43s_001_Программатор AVR универсальный -C-NML 08-Jun-2010

 

Проверьте драйвер вашего COM порта. Желательно установить внешний на ваш МК.

Итак, подаем питание на МК, подключаем его к программатору, затем ищем соответтвующий порт в Uniprof. Программа сама определит какой у вас МК. Если тактовая частота МК < 16MHz, то ставим галочку ТОРМОЗ. Uniprof принимает .hex файлы, при прошивке не требуется наличие какого-либо загрузчика.

Теперь мы можем читать/писать/стирать. :mrgreen: После прошивки необходимо отключить МК от программатора. (иначе он будет в reset-те)

Поддерживаемые контроллеры:

  1. 1200
  2. 2313
  3. 2323
  4. 2333
  5. 2343
  6. 4414
  7. 4433
  8. 8515
  9. 8535
  10. mega103
  11. mega128
  12. mega1280
  13. mega1281
  14. mega16
  15. mega161
  16. mega162
  17. mega163
  18. mega165
  19. mega168
  20. mega169
  21. mega2560
  22. mega2561
  23. mega32
  24. mega324
  25. mega325
  26. mega3250
  27. mega48
  28. mega603
  29. mega64
  30. mega640
  31. mega645
  32. mega6450
  33. mega8
  34. mega8515
  35. mega8535
  36. mega88
  37. pwm23
  38. tiny12
  39. tiny15
  40. tiny13 
  41. tiny2313
  42. tiny24
  43. tiny25
  44. tiny26
  45. tiny45
  46. tiny44
  47. tiny85
  48. tiny84

Файлы:

Вы можите оставить комментарий, или поставить трэкбек со своего сайта.

10 комментариев к “Прошивка микроконтроллеров AVR”

  1. Дмитрий:

    Спасибо за статью! Как выбирать частоту кварца и номинал конденсаторов?

    • О каких кварце и конденсаторах Вы говорите? Если на микроконтроллере, то конденсаторы по 10-20pf, кварц — определяет тактовую частоту микроконтроллера, и в моем случае на 16MHz.

      • Дмитрий:

        Спасибо за подсказку!

        В некоторых изделиях рекламируют выбор кварца (чуть больше 7 МГц)для надежной работы с RS-232.

        Полагаю, в нашем случае цепь SCK обеспечивает синхронный режим работы порта, поэтому нет проблем с частотой.

        Были ли проблемы с USB-RS232 кабелем?

        • Извините что так долго, глюки сайта. Насчет USB-RS232 — не пробовал.

        • Цитата: В некоторых изделиях рекламируют выбор кварца (чуть больше 7 МГц)для надежной работы с RS-232.

          Вы говорите немного не о том. В указанном программаторе COM — порт ПК эмулирует интерфейс SPI, посредством которого, «заливается» прошивка в МК. А перечень номиналов кварцов для различных скоростей работы UART (именно в контроллере) приведён в даташитах на МК. Здесь http://www.embed.com.ua/mikrokontrollernyiy-konstruktor/rabota-s-uart/ можете почитать подробнее.

          Цитата: Полагаю, в нашем случае цепь SCK обеспечивает синхронный режим работы порта, поэтому нет проблем с частотой.

          Да, именно этот сигнал и есть синхроимпульсы интерфейса SPI.

          Цитата: Были ли проблемы с USB-RS232 кабелем?

          В статье по указанной выше ссылке есть информация о таком преобразователе.
          Удачи!

  2. sae74:

    Подскажите, как установить фьюзы для atmega32 с кварцем 16Мгц?

  3. sae74:

    Спасибо, все вышло.

Написать комментарий к Дмитрий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bug Report
Локализовано: шаблоны Wordpress