Задать вопрос
@Ivanwithmustaches

Как познать сокрытое программатором?

В последнее время очень увлёкся МК, и нашёл у себя под столом маленький avr at mega. Начал шерстить Интернет в надежде найти способ его подключения к компьютеру - вышел на программатор. И тут у меня возникает первый вопрос: а как он собран? Продолжаю искать ответ уже на этот вопрос, но всё безрезультатно, поскольку везде где USB, там просто "припаяйте эту микросхему к этому резистору" Или "купите готовый на Али". А там, где com - " Купите 10 резисторов и 5 диодов, получится программатор Громова". При этом объяснений о принципе работы никто не даёт. Какие книжки/ресурсы изучить, чтобы понять как компьютер передаёт через rs232 или USB информацию и суметь самому собрать такой программатор? Харрисов читал " Схемотехнику и архитектуру", Рудольфа Свореня читал. Как транзисторы, последовательная/комбинационнная логика работает - знаю.
  • Вопрос задан
  • 473 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия DevOps-инженер + ИИ
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 6
opium
@opium
Просто люблю качественно работать
AVR ISP-программирование крутится вокруг SPI: 4 линии MOSI, MISO, SCK, RESET. COM-программаторы типа Громова никакой RS232-протокол на уровне данных не используют: bit-bangом дёргают управляющими сигналами порта (RTS, DTR, CTS) как GPIO и формируют SPI-импульсы на ножках МК. USB-программатор (USBasp и прочие) — отдельный МК с USB, который получает команды от ПК и гонит тот же SPI. Начни с datasheet на твой ATmega, раздел "SPI Serial Programming", там всё нарисовано, потом "Make: AVR Programming" Эллиота Уильямса для практики.
Ответ написан
Комментировать
15432
@15432
Системный программист ^_^
Для микроконтроллеров есть документация, в которой может быть описан протокол программирования. Обычно это некоторый набор простых команд (стереть / считать / записать), направляемый небольшому загрузчику внутри чипа, который уже руководит записью прошивки через аппаратные регистры микроконтроллера, точно так же, как вы можете взаимодействовать с флеш-памятью из своего кода для этого же МК, поэтому никакого таинства тут нет

в вашей ситуации стоит обратить внимание на готовые проекты на github, реализующие протокол программирования, например, вот
https://github.com/coder-KO/Programming-ATmega328P...

из кода можно разобраться, что происходит и как это повторить.

если же кода нет, всегда можно подключить логический анализатор к контактам для программирования, пока программатор шевелит лапками и досконально записать происходящее, а потом разбираться с командами и задержками
Ответ написан
@pfg21
ex-турист
если ты все читал, то значит надо переходить к следующему этапу - прикладному применению знаний.
тэория должна превратиться в понимание.
схема из набора черточек и точек превратится в живой организм по которому ходят сигналы и каждый элемент живет своей жизнью.
возьми любую простую схемку, обычно для цифровой логики начинают с элементов логики и триггеров, и "погоняй по ней сигналы" :) потом посложнее.
а то так и будет пять резисторов и три транзистора а шо там нипанятна :)
Ответ написан
Комментировать
@Zerg89
чтобы понять как компьютер передаёт через rs232 или USB информацию

Читать стандарты протоколов ieee rs232 для usb ieee uart
Ответ написан
Комментировать
@evgeniy_lm
AVR контроллеры программируются по SPI-интерфейсу. Как это происходит физически подробно написано в даташит на конкретный контроллер. Вообще, изучение МК необходимо начинать именно с изучения даташит. Чтобы собрать программатор не нужно особо вникать как это работает и изобретать велосипед, схем более чем достаточно, правда номальный программатор в своей схеме содержит микроконтроллер, разумеется, для его прошивки тоже нужен программатор. Программатор Громова не фонтан, но впролне себе работает, для примитивных эксперементов сгодится.
Можно пойти более простым путем - начать с Arduino. Изначально Arduino разработывался для изучения микроконтроллеров людьми очень далекими от электроники по этому порог входа почти нуливой. С другой стороны это все тот же МК AVR, но более удобный в использовании.
Ответ написан
Комментировать
nava2002
@nava2002
Инженер
Сам контроллер AVR все получает по PCI шине. Программатор это тоже контроллер + прошивка.
Самому это делать не рационально по определению. В Китае свисток (USBASP USBISP AVR Programmer) стоит копейки.
Но там тоже контроллер и в нем прошивка потому никакие "2 резистора, 3 транзистора" не решат задачу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы