Программатор микроконтроллеров: Доступ с вашего IP-адреса временно ограничен — Авито

Содержание

РадиоКот :: Программаторы для микроконтроллеров Atmel

РадиоКот >Лаборатория >Цифровые устройства >

Программаторы для микроконтроллеров Atmel

Эта статья — попытка обобщить некоторый разрозненный материал по программаторам для популярных сегодня микроконтроллеров фирмы Atmel. Материал не претендует на полноту, однако основан на личном опыте, в чем и состоит, на мой взгляд, его основная ценность.

Схема программатора Fun-Card

Программатор предназначен для работы под управлением программы ICProg, является функциональным аналогом «5 проводков» (до предела упрощенная схема STK200+/300, о которой ниже) и представляет собой несколько резисторов.
Программатор подключается к LPT-порту. Разъем устанавливается непосредственно на плату программатора, кроме того, на плате предусмотрена кроватка для программирования контроллера AT90S2313, а также выведены сигналы SCK, MOSI/MISO и Reset.

Программируемая микросхема может брать питание с порта LPT, в этом случае, на выводах 2, 3, 4 порта должны быть установлены единицы, а вывод 2 разъёма ISP должет быть подключен к выводу Vcc микросхемы. Некоторые порты могут не потянуть такой нагрузки, в этом случае придётся использовать внешний источник питания (5В).
Источником тактовых импульсов для микросхемы также может служить LPT порт. В этом случае вывод 3 разъёма ISP (LED) должен быть подключен к выводу XTAL 1 программируемой микросхемы.
Естественно, программа программатора на PC должна понимать эти режимы работы (для работы с этой схемой нужно воспользоваться программой IC-Prog, где при выборе типа программатора следует установить «Fun-Card Programmer»).
Печатная плата в формате SL5 – здесь, программа ICProg и драйвер под ХР – здесь.

Схема программатора STK200+/300

Большая часть нижеследующего описания и сама схема взята со странички https://ln.com.ua/~real/avreal/adapters.html, крайне рекомендую посетить ее.

Адаптер получил свое название от комплектующихся им отладочных плат фирмы Atmel для быстрого начала работы с микроконтроллерами At90s8515 и Atmega103. На самом деле приведенная схема соответствует одновременно обоим адаптерам, в ней присутствуют перемычки для определения наличия как адаптера STK200 (выводы 2-12 разъема X1), так и STK300 (выводы 3-11). При необходимости программной генерации тактового сигнала XTAL1 используется линия LED адаптера, исходно предназначенная для включения светодиода (на печатной плате ver.1 установлен только светодиод, сигнал XTAL1 на разъем программирования не заведен, а вот в ver.2 на третьем контакте есть сигнал XTAL1).
Буферизованные адаптеры запитываются от платы с программируемым процессором, т.е. питание подаётся на программируемую плату, а с неё на адаптеры поступает через шлейф.
Адаптер собран на основе шинного формирователя 74HC244 (аналог 1564АП5). Возможно также использование 555АП5 (74LS244) и 1533АП5 (74ALS244) либо, при соответствующем изменении схемы, любые другие неинвертирующие формирователи с тремя состояниями выходов. Применение буфера с третьим (высокоимпедансным) состоянием позволяет по окончании программирования снять сигнал разрешения выходов и, «отключив» адаптер от схемы, не влиять на её работу (за исключением паразитных емкостей между проводами шлейфа от адаптера до платы устройства).
Поскольку разводка рассчитана на установку LPT-разъема непосредственно на плату, для этих адаптеров рекомендуется изготовить удлиннитель порта LPT длиной 1.5-1.8м со всеми линиями (земель не жалеть 🙂 и вывести с программатора шлейф до платы с микроконтроллером длиной 20-25 см.
На плате предусмотрена установка светодиодов «питание» и «программирование» (на схеме не показаны).
Схема работает с программами AVR ISP, CodeVision AVR, WinAVR и другими.
В ряде случаев (например, для программирования нескольких контроллеров одной и той же прошивкой или в случае отсутствия на плате места под ISP-разъем) могут оказаться полезными «платы расширения» для различных контроллеров, содержащие кроватку для установки контроллера и минимально необходимую для работы обвязку. Я сделал такие платы под AT90S2313/ATTiny2313, ATTiny26, ATTiny13, ATMega8 и ATMega16. Кроме того, в версии ver.1 кроватки для ATTiny26 и ATTiny13 есть непосредственно на плате.
Обе версии платы программатора и все «платы расширения» в формате SL5 – здесь.
Вот так выглядит один из моих STK в окружении плат расширения:

Схема программатора AVR910 с универсальным COM/USB интерфейсом

AVR910 – весьма известный аппнот Atmel, давший название целому классу устройств.
Сейчас под AVR910 понимают как правило протокол, по которому происходит обмен данными между компьютером и программатором.

В сети на данный момент можно найти несколько вариантов таких программаторов, различающихся способом реализации интерфейсной части. Традиционно все эти программаторы собираются на основе микроконтроллера AT90S2313 или (в редких случаях, при наличии модифицированной прошивки) ATTiny2313.
На схеме представлен программатор, способный работать как через CОМ, так и через USB.
Переключение типа интерфейса происходит при помощи джампера J1. При работе через USB питание программатора осуществляется непосредственно от этого порта компьютера, причем в этом режиме имеется полная гальваническая развязка программатора (и, соответственно, программируемого устройства) от компьютера, более того, при замыкании перемычки J2 программируемое устройство может питаться от программатора (до 100 мА).
При работе через СОМ-порт развязка отсутствует, а питание программатора осуществляется, как обычно, от программируемого устройства.
Интерфейс USB реализован на микросхеме FT232BM в стандартной схеме включения, в качестве согласователя уровней для СОМ-порта применена MAX232.
Вариант разводки печатной платы, схема и прошивка лежат здесь. Разводка платы не оптимальна, поскольку осуществлялась для конкретного корпуса с заранее заданным расположение разъемов, органов управления и индикации. Кроме того, на плате разведена кнопка для принудительного сброса программируемого МК, реально она не нужна, поскольку сброс корректно осуществляется программным образом. Также на плате присутствует разъем для программирования МК самого программатора.
Для подключения программатора к СОМ-порту служит трехконтактный разъем PLS и потребуется изготовить специальный шнурок.
Замечу, что поскольку здесь используется стандартная разводка шнурка для ISP, с этим программатором можно использовать платы расширения от STK200+/300.
Этот комплект у меня выглядит вот так:

Этот программатор работает у меня под управлением CodeVision AVR 25-ой сборки. Такой выбор обусловлен возможностью регулирования скорости порта непосредственно из программы. Программатору свойственны некоторые особенности в силу применения микросхемы FT232BM, в частности, необходимо выставить минимальную задержку в свойствах соответствующего виртуального СОМ-порта (подробнее смотрите статью USB — RS-232 преобразователи). После этого программирование осуществляется довольно быстро (хотя и чуть медленнее STK200+/300, что, естественно, вызвано последовательным способом передачи данных в программатор).

Схема AVR910-совместимого USB программатора (схема Prottoss»a)

Автором этой конструкции является Рыжков Андрей, известный также под ником PROTTOSS. Описанию этого программатора посвящена одна из страничек его сайта, там же можно найти контакты для связи с автором. Здесь этот материал публикуется с разрешения автора, так что все формальности соблюдены. :)

Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Описание оригинальной схемы программатора можно взять в Application Note AVR910: In-System Programming, а список поддерживаемых команд можно посмотреть в Application Note AVR109: Self Programming
Исходно схема устройсва выглядит следующим образом:

Светодиоды VL1, VL2 сигнализируют о текущих действиях программатора, и, соответственно, обозначают режимы чтения и записи. Светодиод VL3 служит для сигнализации подачи питания на программатор. Резисторы R10 — R14 предназначены для согласования уровней сигналов контроллера программатора и программируемого контроллера. С помощью J3 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом — пониженная. Переключать джампер можно «на ходу», так как управляющая программа МК программматора проверяет состояние линии PB0 при каждом обращении к порту SPI. Не рекомендуется переключать джампер при запущенном процессе записи/чтения программируемого МК, т.к., скорее всего, это приведет к искажению операции записи/чтения. Данный джампер введен для возможности программирования МК AVR, тактированных от внутреннего генератора 128 кГц.

Схема была несколько переработана, в нее внесены следующие изменения.
Питание МК осуществляется от USB, но не через диоды, как в исходной схеме, а через LDO стабилизатор LM1117 на 3.3В. Замечу, что при таких напряжениях питания (как 3.3 В здесь, так и 3.6 В в исходной схеме) и частоте кварца 12 МГц Atmel не гарантирует устойчивую работу своих МК, однако к чести производителя ни один из тестировавшихся микроконтроллеров работать не отказался. Тем не менее, стоит учитывать такую возможность. Еще раз: чем больше напряжение питания (в пределах до 5В, естественно), тем выше вероятность того, что контроллер запустится и будет устойчиво работать, поэтому многие отказываются от LDO в пользу двух диодов. Да, предохранитель тоже отсутствует, но, если добавить, хуже точно не будет.
В обе цепи питания МК (VCC и AVCC) введены дополнительные LC-фильтры в виде SMD-индуктивностей на 10мкГн и конденсаторов 0.1 мкФ (в принципе, дроссель в AVCC можно заменить перемычкой, его установка — совсем уж перестраховка), кроме того, на плате появился дополнительный джампер, позволяющий запитывать целевую плату от программатора напряжением 5В или 3.3 В или, естественно, вообще не питать ее от программатора. В цепь питания целевой платы также включена индуктивность и установлен диод 1N4148, препятствующий попаданию питающего напряжения с целевой платы (если оно там есть) на программатор. Замечу, что поскольку на диоде имеет место падение напряжения, то напряжение питания целевой платы будет меньше заявленного на величину этого самого падения. В зависимости от диода и некоторых других условий теоретически оно может снизиться настолько, что его не хватит для нормального функционирования целевой платы. Для уменьшения эффекта можно использовать в этой цепи диод Шоттки, а вообще, может быть стоит вообще отказаться от такой возможности, решайте сами, насколько оно вам надо… :)
Исчез джампер NORM/MOD, предназначенный для ввода программатора в режим обновления прошивки, вместо этого на плате установлен полноценный разъем для программирования МК программатора (разъем имеет несколько нестандартный вид и представляет собой контактную гребенку PLS-6, на которую выведены следующие сигналы в последовательности MOSI-MISO-SCK-Reset-Vcc-GND. В такой же последовательности эти сигналы расположены на выводах МК ATMega16 в корпусе DIP-40, именно оттуда я ее и «срисовал». Такой разъем занимает меньше места на плате и как правило проще разводится, чем стандартный 10-ти контактный ISP-коннектор, поэтому лично я часто им пользуюсь в своих конструкциях).
Кроме того, уменьшены до 220 Ом последовательные резисторы в линиях программирования (вообще, их номинал — отдельный открытый вопрос) и до 22 Ом в линиях USB.
Все эти изменения можно проследить на печатной плате (кроме изменения номиналов резисторов, в подписях элементов они оставлены прежними), разводку которой можно скачать в конце статьи. Плата получилась односторонняя с парой перемычек и рассчитана на установку МК ATMega8 в кроватке, у которой удалены неиспользуемые выводы. Можно, конечно, и впаять туда Мегу, откусив лишние выводы, но это на ваш страх и риск. Собранный программатор выглядит так:

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

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

Вот еще вариант платы этого программатора на микроконтроллере в корпусе TQFP, делал под конкретный корпус, схема та же, работает не хуже:


При всем уважении к автору не могу не заметить, что среди повторивших эту схему встречаются люди, у которых она работать отказывается. Сложно объективно сказать, с чем это может быть связано, однако лишний раз призову к соблюдению рекомендаций и внимательной сборке устройства. В остальном, из личного опыта, претензий к программатору нет, работает достаточно устойчиво (несколько раз наблюдались сложности при длинных шлейфах к программируемому устройству, другие программаторы в этих же условиях сбоя не давали), скорость приемлемая, но не очень высокая, естественно.
В качестве возможных доработок могу предложить не питать МК программатора пониженным напряжением, а поставить на линии USB стабилитроны, чтобы ограничить напряжение на них. Идея не проверялась.

Лично я свой первый МК AT90S2313 программировал с помощью Fun Card, потом собрал и до сих пор плотно использую несколько вариантов STK200+/300, а с AVR910 работаю в основном в «полевых условиях», когда требуется подключение программатора к ноутбуку без LPT-порта.. Вот такая вот эволюция..

Вопросы, как обычно, складываем тут.

Файлы:

Плата Fun Card в формате SL5
Софт для Fun Card
Платы в формате SL5 для STK200+/300
Схема (RusPlan6), плата (SL5) и прошивка (hex) для AVR910
Плата (SL5), прошивка (hex) и драйвера для USB AVR910 от PROTTOSS»a
Плата (P-CAD 2006) для USB AVR910 от PROTTOSS»a на Atmega8 в корпусе TQFP (SMD вариант)


Как вам эта статья?

Заработало ли это устройство у вас?

Программатор USBASP v2.0 для микроконтроллеров AVR + шлейф

Подключается  к  USB  порту  персонального  компьютера,  имеет  возможность  подачи  питания  на  программируемое  устройство. Может запитать программируемую плату напряжением 3,3В или (имеет встроенный регулятор напряжения 3,3В). Есть возможность  выбора  частоты  программирования,  работоспособен  под  управлением  операционных  систем  Linux,  Mac  OS  X  и  Windows.

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

Список  поддерживаемых  микроконтроллеров:

ATmega серия

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535


Tiny серия

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313


Серия Classic

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535


CAN серия

AT90CAN128


PWM серия

AT90PWM2 AT90PWM3

Использование этого устройства и функции внутрисистемного программирования: SPI — System Programming Input, программирование через персональный компьютер (дословно), даёт возможность быстро и многократно программировать Ваше микропроцессорное устройство в собранном виде, не отключая его питания. При этом процесс отладки программного обеспечения радиолюбительского устройства заметно упрощается, сокращается затрачиваемое на это время.

Технические параметры:

ОС: Windows NT/2000/XP/VISTA/WINDOWS 7 (Linux/MacOS X)

Совместимость: большое количество AVR микроконтроллеров через SPI интерфейс (внутрисхемное программирование ISP)

Подключение: USB (не требуется COM-порт!)
Питание: программатор запитан от USB

Скорость программирования: до 5кБайт/сек

Индикация: светодиоды состояния работы программатора и обмена данными

Потребляемая мощность: не более 2,5 ВА 
Температура окружающей среды: -40…+50С

Разъём программатора:

1 — MOSI
2 — +5V
3 — не используется
4 — GND
5 — RESET
6 — GND
7 — SCK
8 — GND
9 — MISO

 

Xprog-m 5.55 – универсальный программатор микроконтроллеров

Программатор X-Prog M — на сегодняшний день лидер среди программаторов для автомобильной электроники во всем мире. Поддерживает огромное множество микросхем и микроконтроллеров, содержит встроенный помощник по точкам подключения ко всем поддерживаемым микросхемам.

Помимо BMW работает с множеством микросхем применяемых в блоках других производителей. Содержит информацию по точкам подключения к приборным панелям BMW, иммобилайзерам BMW (поддерживает чтение и запись EWS2, EWS3, EWS4, CAS, CAS2, CAS3, CAS4, CAS 4.2), блокам Airbag (включая BMW ACSM4), блокам управления светом (LMA, FRM) и множеству других блоков включая некоторые блоки управления двигателем или раздаточной коробкой BMW. 

Универсальный программатор Xprog 5.55 — это недорогой и качественный программатор для процессоров фирмы MOTOROLA и TEXAS INSTRUMENTS, Infenion, а также для других (в том числе самых современных) микроконроллеров, используемых в авто-промышленности.

Программатор поддерживает программирование всех EEPROM SPI, I2C, Microwire, доступна стирание и запись для микросхем серии M35080.

Программатор работает с новыми процессорами Infenion серии XC и MAC724x и Моторолла, которые устанавливаются в современные блоки SRS множестваавтомобилей.

Программатор соединяется с компьютером посредством USB.

Xprog 5.55 поставляется с большим набором адаптеров для работы с микроконтроллерами и EEPROM в разных корпусах.

Программатор  X-Prog 5.55 может восстанавливать ЭБУ, иммобилайзеры, блоки SRS, автомобильные магнитолы и многое другое.

Предлагаем купить x-prog 5.55 в следующей комплектация:

1. Программное обеспечение.
2. Программатор XPROG M 5.55.
3. EEPROM адаптер для SMD корпусов.
4. Адаптер для EWS-3 BMW.
5. HC(S)12 BDM адаптер (912 и 9S12 серия).
6. TMS374 Адаптер (Микроконтроллеры TMS 374).
7. Адаптер для внутрисхемного программирования TMS374 и NEC uPD78.
8. TMS370 (TMS 370 PLCC28) адаптер.
9. Адаптер программатора TMS370 PLCC44.
10. TMS 370 Адаптер для программирования TMS370 PLCC68.
11. Адаптер для программирования HC11E9/EA9 PLCC52.
12. Переходник для программирования MC68HC05V12.
13. Переходник для программирования микроконтроллеров HC05B серии PLCC52.
14. Программирующий адаптер к программатору HC05B серии с корпусом QFP64.
15. Адаптер для внутрисхемного программирования EEPROM M35080.
16. QFP-64 Адаптер к программатору.
17. Адаптер к программатору для микроконтроллеров в корпусе QFP-28.
18. QFP-112 Адаптер для программатора X-Prog-M для контроллеров QFP112.
19. QFP-80 Адаптер для программирования контроллеров в корпусах QFP80.
20. QFP-144 Адаптер к программатору XPROG-M для программирования MCU QFP144.
21. USB кабель для подключения к компьютеру.

Список поддерживаемых устройств:

  • Serial EEPROMs  24Cxx, 25Cxx, 93Cxx, 95xxx,  MDA2062, NVM3060, M6M800xx, S2100, S24Hxx, TC89xxx, X2444, M35080 .
  • MC68HC05  MC68HC05B6 (0F10V, 3D33J), MC68HC05B8, MC68HC05B16, MC68HC05B32 (0D60J, 3G96A) , MC68HC05X32(0D53J, 0D69J, 1H52A, 1D69J), MC68HC705X32(2D59J), MC68HC705B16(0D28J), MC68HC705B16N, MC68HC705B32, MC68HC05E6(0F82B, 0G72G), MC68HC05h22(0H57A), MC68HC05P3(1E25B),  MC68HC705P3(1F75B) ,  MC68HC05K3(S105078003).
  • MC68HC05(bypass security)  MC68HC05Bxx, MC68HC05Xxx..    
  • MC68HC08  MC68HC08AS32, MC68HC08AZ32, MC68HC08AZ32(0J66D), MC68HC908AZ32(0L72A), MC68HC08AZ32A(1L52H), MC68HC08AZ32A(2L52H), MC68HC08AS60, MC68HC08AS60(8H62A), MC68HC908AS60(3J74Y), MC68HC08AZ60, MC68HC08AZ60(2J74Y), MC68HC08AZ60A, MC68HC08AZ60A(1L87J), MC68HC908AZ60A(3K85K).
  • MC68HC11  MC68HC11A1(C11W), MC68HC11A8(AB95T), MC68HC11E1, MC68HC11E9(4E28B,0F36W), MC68HC11EA9(0D46J,1D47J, 2D47J), MC68HC11F1(2F37E),  MC68HC11F1(E87J), MC68HC11K4, MC68HC11K4(0E75J), MC68HC11K4(1E62H), MC68HC11K4(3E74J), MC68HC11KA4, MC68HC11KA4(0E57S), MC68HC11KS2(1E59B), MC68HC11KS2(0H95B), MC68HC11KW1, MC68HC11L6, MC68HC11P2(3E74J), MC68HC11P2(1E53M), MC68HC11P2(0G10V), MC68HC11PA8, MC68HC11PH8, MC68HC11PH8(3D64J), MC68HC11PH8(0h40R).
  • MC68HC11(bypass sercurity)  MC68HC11A1(C11W), MC68HC11A8(AB95T), MC68HC11E1, MC68HC11E9(4E28B,0F36W), MC68HC11EA9(0D46J,1D47J, 2D47J), MC68HC11F1(2F37E).
  • MC68HC(9)12, MC9S12 + bypass sercurity MC68HC12B32, MC68HC912D60, MC68HC912D60A, MC68HC912Dx128,  MC68HC912Dx128A, MC9S12C64(0M66G), MC9S12HZ128, MC9S12HZ256, MC9S12DT128(1L40K, 3L40K, 4L40K, 0L94R, 1L59W,5L40K), MC9S12DG128 (0L58S), MC9S12DB128B (0L85D), MC9S12DJ64 (0L86D),  MC9S12D64 (1L86D,2L86D), MC9S12DJ64 (3L86D),  MC9S12DJ64  (4L86D,0M89C),  MC9S12DP256  (0K79X, 1K79X, 2K79X), MC9S12DT128  (1L85D),  MC9S12DT256  (0L01Y), MC9S12h356  (1K78X), MC9S12B128 (0L80R, 1L80R, 2L80R, 3L80R ),  MC9S12h356 (2K78X), MC9S12DP512  (0L00M , 1L00M, 2L00M), MC9S12C64 (0M66G)
  • MC9S12C  MC9S12C16, MC9S12C32, MC9S12C64, MC9S12C96MC9S12C128 Supported Masks: 0M66G, 2L09S, 2L45J(AUTH-0024-1)
  • MC9S12C + bypass security MC9S12C64 Supported Masks: 0M66G (AUTH-0024-1)
  • MC9S12HA/HY/P  9S12HA32/48/64(P-FLASH, D-FLASH), 9S12HY32/48/64(P-FLASH, D-FLASH), 9S12P32/64/96/128 (P-FLASH, D-FLASH) (AUTH-0024-4)
  • MC9S12X + bypass sercurity MC9S12XD256, MC9S12XDT384,  MC9S12XDP512 (0L15Y, 1L15Y, 0M84E, 1M84E, 0M42E, 1M42E, 2M42E)
  • MC9S12XHZ  MC9S12XHZ256, MC9S12XHZ384, MC9S12XHZ512
  • MC9S12XE  MC9S12XEG128 (PFLASH, DFLASH, EEPROM), MC9S12XET256 (PFLASH, DFLASH, EEPROM),MC9S12XEQ384 (PFLASH, DFLASH, EEPROM), MC9S12XEQ512 (PFLASH, DFLASH, EEPROM), MC9S12XEP768 (PFLASH, DFLASH, EEPROM),MC9S12XEP100 (PFLASH, DFLASH, EEPROM) Supported Masks: 0M53J, 1M53J, 2M53J, 3M25J, 5M48H1N35H (AUTH-0024-2)
  • MC9S12XE + reset security  MC9S12XEG128 (PFLASH, DFLASH, EEPROM), MC9S12XET256 (PFLASH, DFLASH, EEPROM),MC9S12XEQ384 (PFLASH, DFLASH, EEPROM), MC9S12XEQ512 (PFLASH, DFLASH, EEPROM), MC9S12XET512 (PFLASH, DFLASH, EEPROM), MC9S12XEP768 (PFLASH, DFLASH, EEPROM), MC9S12XEP100, SC667095, SC667249 (PFLASH, DFLASH, EEPROM) Supported Masks: 0M53J, 1M53J, 2M53J, 3M25J, 5M48H, 1N35H (AUTH-0024-3)
  • MC9S12XHY  9S12XHY256(P-FLASH, D-FLASH) 0M23Y  (AUTH-0024-4)
  • MC9S12XS  9S12XS64/128/256(P-FLASH, D-FLASH) 0M04M, 1M04M, 0M05M (AUTH-0024-4)
  • MC9S12XS + reset security  9S12XS128(P-FLASH, D-FLASH) 0M04M, 1M04M, 0M05M (AUTH-0024-5)
  • ARM Micronas + bypass sercurity  CDC3217,  CDC3272, CDC3297, CDC32xx + 24C32
  • MPC5xx  MPC555, MPC556, MPC561, MPC562, MPC563, MPC564, MPC565, MPC566.
  • ST7/ST10  ST72321, ST72F321, ST72521, ST72F521, ST10F168, ST10F269, ST10F275, ST10F276, ST10F280
  • MPC5xxx/SPC560xx SPC560L50xx Code FLASH, Code FLASH Test (read only),  Code FLASH Shadow (read only), Data FLASH, Test FLASH Block (read only), 
    SPC560L44xx Code FLASH, Code FLASH Test (read only),  Code FLASH Shadow (read only), Data FLASH, Test FLASH Block (read only) 
  • MAC7xxx  MAC7111 FLASH/D-FLASH, MAC7112 FLASH/D-FLASH, MAC7116 FLASH/D-FLASH, MAC7131 FLASH/D-FLASH MAC7241 FLASH, MAC7241 Shadow Block, MAC7242 FLASH, MAC7242 Shadow Block (AUTH-0023-1)
  • XC2xxx  XC2060M-104, XC2060N-40, XC2336B-24, XC2336B-40, XC236xA-56, XC236xA-72,, XC236xA-104, XC236xB-24, XC236xB-40 (AUTH-0023-2)
  • TMS370/374  TMS370C002A,TMS370C010A, MS370C012A,TMS370C020A, TMS370C022A, TMS370C032A,TMS370C040A, TMS370C042A, MS370C050A, TMS370C052A, TMS370C056A, TMS370C056A, TMS370C256A, TMS374C003APQQ,  TMS374CD13APQQ.
  • Dashboards 35080  E38, E39, E46, E53, E65, X3-E68
  • Dashboards ARM Micronas CDC32xxx  AUDI A3,  AUDI TT, OCTAVIA, OCTAVIA II, Caddy , GOLF V, JETTA, PASSAT, Touran, 1K0920863B, 1K0920864B, 1K0920874B, 1T0920864A, 1T0920874A, 1Z0920812D, 1Z0920842D, 1Z0920842E, 1Z0920912D, 3C0920852S, 3C0920871D, 8J0920930E, 8P0920931B, 1K0920873B, 1K0920972D, 1Q0920873A, 1K6920974B,1K6920972E, 8P0920931E, 8P0920901K   
  • Immobilizers  EWS-3, CAS4 5M48H
  • Другие ZGS 001 A 164 540 56 62,  A 169 540 69 45, A 220 445 19 00, A 211 445 25 00, A 211 540 25 45, A 211 540 29 45,  A 211 540 35 45, XP8000 XET256

Программатора для микроконтроллеров

USB программатор микроконтроллеров AVR / 89S совместимый с AVR910 (ATmega8, C) 22-01-2012
Схема программатора приведена на рисунке ниже. Предохранитель F1 служит для защиты линий питания порта USB от случайного замыкания по…
Просмотров: 10443

GTP USB Lite PIC программатор (PIC18F2550) 19-02-2011
Данный программатор с оригинальным названием GTP USB Lite разработан для прошивки PIC микроконтроллеров и микросхем памяти. Основной…
Просмотров: 11553

USB программатор для AVR, аналог AVRISP mkII (AT90USB162) 12-09-2010
Программатор это пожалуй один из основных инструментов разработчика устройств на микроконтроллерах. Ведь именно он позволяет…
Просмотров: 9074

LPT программатор для AVR 12-08-2010
Вот схема самого простого, и в тоже время 100% рабочего программатора для AVR микроконтроллеров. Эта схема определяется софтом как ATMEL…
Просмотров: 11373

USB, COM отладчик JTAG ICE (ATmega16) 27-04-2010
Иногда, программа зашитая в микроконтроллера работает совсем не так как надо её создателю. Тогда наступает стадия отладки (Отлаживать…
Просмотров: 3887

AVR and PIC JDM-367 COM Programmer 06-03-2010
Представляю обновлённую версию своего JDM программатора. Однажды баловавшись с СОМ портом обнаружил неплохие характеристики 74HC367 как…
Просмотров: 8147

AVR-PG1 — RS-232(COM) программатор совместимый с PonyProg 19-09-2009
Вам представлен RS-232(COM) программатор совместимый с PonyProg и имеющий 10 пиновый ICSP разъём STKxxx. Характеристики: Подключение к ПК через…
Просмотров: 6104

Универсальный программатор радиостанций — UniProX 07-08-2008
К созданию этого программатора автора побудил тот факт, что все описания принципов и методов программирования радиостанций…
Просмотров: 5145

Хамелеон — программатор EEPROM и микросхем памяти 28-06-2008
Вступление На этой странице вам предлагается программатор «Хамелеон». Программатор позволяет программировать микросхемы памяти,…
Просмотров: 20790

EXTRAPIC — Программатор PIC контроллеров и I2C (IIC) EEPROM 24-05-2008
Список поддерживаемых микросхем, при использовании с программой IC-PROG v1.05D: PIC-контроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518,…
Просмотров: 7418

Программатор для микроконтроллеров AT89C51/52/55 26-04-2008
Программатор подключается к последовательному порту компьютера. При управлении программатором используются только стандартные…
Просмотров: 4743

Параллельный программатор для микроконтроллеров AVR (ATmega16) 16-02-2008
Поводом для создания данного устройства послужило появление новых чипов AVR поддерживающих отладку по протоколу debugWIRE. Так как он не…
Просмотров: 13541

USB параллельный программатор для микроконтроллеров AVR (ATmega16) 16-02-2008
Этот программатор является продолжением «Параллельного программатора для микроконтроллеров AVR»  Предлагаемый вариант…
Просмотров: 6119

Простой параллельный программатор для AVR 31-01-2008
Далеко не всем известно, что в МК семейства AVR предусмотрены два режима загрузки информации во внутреннюю память (программирования):…
Просмотров: 16019

Программатор для PIC, AVR и микросхем памяти 26-01-2008
Стоимость программаторов промышленного изготовления вряд ли приемлема для радиолюбителей, не занимающихся серийным производством…
Просмотров: 7898

JDM Ultra PIC12C50x, PIC12F629, PIC12F675, PIC16F84, PIC16F628 02-01-2008
Среди адаптеров для PICmicro, подключаемых к порту СОМ и не требующих дополнительного источника питания, популярностью пользуется так…
Просмотров: 4498

Внутрисхемный программатор для PIC-контроллеров и I2C EPROM 02-01-2008
Время не стоит на месте, понадобилось программировать современные PIC – микроконтроллеры 18Fxxxx, (моим ветераном не поддерживались…
Просмотров: 4604

Программатор FlashProg для микроконтроллеров NEC 24-11-2007
Программатор FlashProg позволяет программировать большинство современных микроконтроллеров NEC. В дистрибутив программы включен HELP,…
Просмотров: 5711

Xprog 5.55 – универсальный программатор микроконтроллеров

Xprog 5.55 (X-Prog m 5.5.5)- универсальный программатор MCU, EERPOM

В нашем приборе открыты все заявленные авторизации! Поддерживается работа с новыми процессорами (9S12Xx, Infenion XC2xxx, MAC724x) и корректная работа с еепром серии 35080. Все указанные адаптеры для микропроцессоров поставляются в компекте с устройством. Прибор отучен от USB ключа и не имеет проблем, присущим китайским поделкам Xprog 5.55!

Наш X-prog прошит версией микропрограммы 5.5.5 (от 2015 года) со всеми доступными авторизациями!

Xprog 5.55 (по желанию можем поставить прибор с более старой версии прошивки X-Prog 5.45, 5.51) осуществляет программирование и чтение MCU, EEPROM, микроконтроллеров, контроллеров, микросхем памяти, модулей EWS иммобилайзера BMW, приборные щитки VAG и других ЭБУ. Работатет с BMW CAS4.

 

Программтор работает с защищёнными и закрытыми микроконтроллерами. Комплект включает в себя все адаптеры.

 

Универсальный программатор Xprog 5.55 — это недорогой и качественный программатор для процессоров фирмы MOTOROLA и TEXAS INSTRUMENTS, Infenion, а также для других (в том числе самых современных) микроконроллеров, используемых в авто-промышленности.

 

Программатор поддерживает программирование всех EEPROM SPI, I2C, Microwire, доступна стирание и запись для микросхем серии M35080.

Программатор работает с новыми процессорами Infenion серии XC и MAC724x и Моторолла, которые устанавливаются в современные блоки SRS множестваавтомобилей.

 

Программатор соединяется с компьютером посредством USB.

Xprog 5.55 поставляется с большим набором адаптеров для работы с микроконтроллерами и EEPROM в разных корпусах.

 

Программатор X-Prog 5.55 может восстанавливать ЭБУ, иммобилайзеры, блоки SRS, автомобильные магнитолы и многое другое.

 

Поддерживаемые устройства:

  • Serial EEPROMs  24Cxx, 25Cxx, 93Cxx, 95xxx,  MDA2062, NVM3060, M6M800xx, S2100, S24Hxx, TC89xxx, X2444, M35080 .
  • MC68HC05  MC68HC05B6 (0F10V, 3D33J), MC68HC05B8, MC68HC05B16, MC68HC05B32 (0D60J, 3G96A) , MC68HC05X32(0D53J, 0D69J, 1H52A, 1D69J), MC68HC705X32(2D59J), MC68HC705B16(0D28J), MC68HC705B16N, MC68HC705B32, MC68HC05E6(0F82B, 0G72G), MC68HC05h22(0H57A), MC68HC05P3(1E25B),  MC68HC705P3(1F75B) ,  MC68HC05K3(S105078003).
  • MC68HC05(bypass security)  MC68HC05Bxx, MC68HC05Xxx   
  • MC68HC08  MC68HC08AS32, MC68HC08AZ32, MC68HC08AZ32(0J66D), MC68HC908AZ32(0L72A), MC68HC08AZ32A(1L52H), MC68HC08AZ32A(2L52H), MC68HC08AS60, MC68HC08AS60(8H62A), MC68HC908AS60(3J74Y), MC68HC08AZ60, MC68HC08AZ60(2J74Y), MC68HC08AZ60A, MC68HC08AZ60A(1L87J), MC68HC908AZ60A(3K85K).
  • MC68HC11  MC68HC11A1(C11W), MC68HC11A8(AB95T), MC68HC11E1, MC68HC11E9(4E28B,0F36W), MC68HC11EA9(0D46J,1D47J, 2D47J), MC68HC11F1(2F37E),  MC68HC11F1(E87J), MC68HC11K4, MC68HC11K4(0E75J), MC68HC11K4(1E62H), MC68HC11K4(3E74J), MC68HC11KA4, MC68HC11KA4(0E57S), MC68HC11KS2(1E59B), MC68HC11KS2(0H95B), MC68HC11KW1, MC68HC11L6, MC68HC11P2(3E74J), MC68HC11P2(1E53M), MC68HC11P2(0G10V), MC68HC11PA8, MC68HC11PH8, MC68HC11PH8(3D64J), MC68HC11PH8(0h40R).
  • MC68HC11(bypass security)  MC68HC11A1(C11W), MC68HC11A8(AB95T), MC68HC11E1, MC68HC11E9(4E28B,0F36W), MC68HC11EA9(0D46J,1D47J, 2D47J), MC68HC11F1(2F37E).
  • MC68HC(9)12, MC9S12 + bypass security MC68HC12B32, MC68HC912D60, MC68HC912D60A, MC68HC912Dx128,  MC68HC912Dx128A, MC9S12C64(0M66G), MC9S12HZ128, MC9S12HZ256, MC9S12DT128(1L40K, 3L40K, 4L40K, 0L94R, 1L59W,5L40K), MC9S12DG128 (0L58S), MC9S12DB128B (0L85D), MC9S12DJ64 (0L86D),  MC9S12D64 (1L86D,2L86D), MC9S12DJ64 (3L86D),  MC9S12DJ64  (4L86D,0M89C),  MC9S12DP256  (0K79X, 1K79X, 2K79X), MC9S12DT128  (1L85D),  MC9S12DT256  (0L01Y), MC9S12h356  (1K78X), MC9S12B128 (0L80R, 1L80R, 2L80R, 3L80R ),  MC9S12h356 (2K78X), MC9S12DP512  (0L00M , 1L00M, 2L00M), MC9S12C64 (0M66G)
  • MC9S12C  MC9S12C16, MC9S12C32, MC9S12C64, MC9S12C96, MC9S12C128 Supported Masks: 0M66G, 2L09S, 2L45J (AUTH-0024-1)
  • MC9S12C + bypass security MC9S12C64 Supported Masks: 0M66G (AUTH-0024-1)
  • MC9S12HA/HY/P  9S12HA32/48/64(P-FLASH, D-FLASH), 9S12HY32/48/64(P-FLASH, D-FLASH), 9S12P32/64/96/128 (P-FLASH, D-FLASH) (AUTH-0024-4)
  • MC9S12X + bypass security MC9S12XD256, MC9S12XDT384,  MC9S12XDP512 (0L15Y, 1L15Y, 0M84E, 1M84E, 0M42E, 1M42E, 2M42E)
  • MC9S12XHZ  MC9S12XHZ256, MC9S12XHZ384, MC9S12XHZ512
  • MC9S12XE  MC9S12XET256 (PFLASH, DFLASH, EEPROM),MC9S12XEQ384 (PFLASH, DFLASH, EEPROM), MC9S12XEQ512 (PFLASH, DFLASH, EEPROM), MC9S12XEP768 (PFLASH, DFLASH, EEPROM), MC9S12XEP100 (PFLASH, DFLASH, EEPROM) Supported Masks: 0M53J, 1M53J, 2M53J, 3M25J, 5M48H (AUTH-0024-2)
  • MC9S12XE + reset security  MC9S12XET256 (PFLASH, DFLASH, EEPROM),MC9S12XEQ384 (PFLASH, DFLASH, EEPROM), MC9S12XEQ512 (PFLASH, DFLASH, EEPROM), MC9S12XET512 (PFLASH, DFLASH, EEPROM), MC9S12XEP768 (PFLASH, DFLASH, EEPROM), MC9S12XEP100 (PFLASH, DFLASH, EEPROM) Supported Masks: 0M53J, 1M53J, 2M53J, 3M25J, 5M48H (AUTH-0024-3)
  • MC9S12XS  9S12XS64/128/256(P-FLASH, D-FLASH) 0M04M, 1M04M, 0M05M (AUTH-0024-4)
  • ARM Micronas + bypass security  CDC3217,  CDC3272, CDC3297, CDC32xx + 24C32
  • MPC5xx  MPC555, MPC556, MPC561, MPC562, MPC563, MPC564, MPC565, MPC566.
  • ST7/ST10  ST72321, ST72F321, ST72521, ST72F521, ST10F168, ST10F269, ST10F275, ST10F276, ST10F280
  • MAC7xxx  MAC7241 FLASH, MAC7241 Shadow Block, MAC7242 FLASH, MAC7242 Shadow Block (AUTH-0023-1)
  • XC2xxx  XC2060M-104, XC2060N-40, XC2336B-24, XC2336B-40, XC236xA-56, XC236xA-72,, XC236xA-104, XC236xB-24, XC236xB-40 (AUTH-0023-2)
  • TMS370/374  TMS370C002A,TMS370C010A, MS370C012A,TMS370C020A, TMS370C022A, TMS370C032A,TMS370C040A, TMS370C042A, MS370C050A, TMS370C052A, TMS370C056A, TMS370C056A, TMS370C256A, TMS374C003APQQ,  TMS374CD13APQQ.
  • Dashboards 35080  E38, E39, E46, E53, E65, X3-E68
  • Dashboards ARM Micronas CDC32xxx  AUDI A3,  AUDI TT, OCTAVIA, OCTAVIA II, Caddy , GOLF V, JETTA, PASSAT, Touran, 1K0920863B, 1K0920864B, 1K0920874B, 1T0920864A, 1T0920874A, 1Z0920812D, 1Z0920842D, 1Z0920842E, 1Z0920912D, 3C0920852S, 3C0920871D, 8J0920930E, 8P0920931B, 1K0920873B, 1K0920972D, 1Q0920873A, 1K6920974B,1K6920972E, 8P0920931E, 8P0920901K   
  • Immobilizers  EWS-3, CAS4 5M48H
  • Others  ZGS 001 A 164 540 56 62,  A 169 540 69 45, A 220 445 19 00, A 211 445 25 00, A 211 540 25 45, A 211 540 29 45,  A 211 540 35 45, XP8000 XET256

 

Авторизация устройства X-Prog 5.5.5:

EEPROM чтение и запись

Авторизация семейства Motorola HC05 (позволяет чтение и запись EEPROM)

Авторизация семейства Motorola HC08 (позволяет чтение и запись EEPROM)

Авторизация семейства Motorola HC11 (позволяет чтение и запись EEPROM)

Авторизация семейства Motorola HC (S) 12 (позволяет чтение и запись EEPROM и Flash-памяти)

Авторизация семейства Texas Instruments TMS370/TMS374 (позволяет чтение и запись EEPROM)

Авторизация семейства Motorola HC05B / X с обходом системы безопасности (позволяет чтение и запись засекреченных EEPROM и Flash-памяти)

Авторизация для чтения/записи/стирания ST M35080 v3 v6 (поддерживается VP)

Авторизация BMW EWS3

Авторизация семейства ATmega (позволяет чтение и запись EEPROM и Flash-памяти)

Авторизация МВ ZGS001

Авторизация семейства Motorola HC11EA9/E9 с обходом системы (позволяет обход бита безопасности и чтение EEPROM и Оперативной памяти)

Авторизация National CR16 (позволяет чтение и запись EEPROM памяти)

Авторизация семейства ST7, ST10 (позволяет чтение и запись серийных EEPROM)

Авторизация MPC5xx (в зависимости от устройства программа автоматически обнаруживает MPC5xx, тип устройства M95xxx, флэш, размер внешней флэш-памяти и конфигурацию)

Авторизация Motorola HC12 А, HC912, MC9S12, MC9S12X с обходом системы безопасности (позволяет чтение и запись засекреченных EEPROM и Flash-памяти)

Авторизация семейства ARM (Micronas,…) (позволяет чтение и запись внутренней флэш-памяти и внешних серийных EEPROM)

Авторизация семейства ARM (Micronas,…) с обходом систем безопасности (позволяет чтение и запись засекреченных и не засекреченных внутренней флэш-памяти и внешних серийных EEPROM, просмотр/изменение пробега, номера шасси (VIN), серийных номеров и ПИН-кода).

Авторизация MC9S12XDx, 9S12Xs, 9S12Xe, 9S12 обход защиты

Авторизация MC9S12XE (добавлены новые)

Авторизация MC9S12Cxx (добавлены новые)

Авторизация  Infenion XC2xxx (allow to read/write all memory)

Авторизация MAC 724x (allow to read/write flash,eeprom and shadow memory)

Авторизация MC9S12ha/hy/p

Авторизация MPC/SPC5xxx 

Авторизация SRS Airbag Rover, Mazda, Ford, GM MAC 724x/XC23xx (allow to read/write flash,eeprom and shadow memory, pictures of connections)

Отличие версии Xprog 5.55 от X-prog 5.45:

  • 9S12C16, 9S12C32 P-FLASH (AUTH-0024-1)
  • 9S12XEP768 P-FLASH, D-FLASH, EEPROM (AUTH-0024-2)
  • 9S12XET256 SECURITY P-FLASH, D-FLASH, EEPROM (AUTH-0024-3)
  • 9S12XEQ384 SECURITY P-FLASH, D-FLASH, EEPROM (AUTH-0024-3)
  • 9S12XEP768 SECURITY P-FLASH, D-FLASH, EEPROM (AUTH-0024-3)
  • 9S12XEP100 SECURITY P-FLASH, D-FLASH, EEPROM (AUTH-0024-3)


XC2361A-56 FLASh4 (AUTH-0023-2)
MC9S12XDP512 0M23S

  • MAC7241 write bug fixed (AUTH-0023-1)
  • MC9S12XEQ384 1M12S
  • MC9S12XS64
  • MC9S12XS128
  • MC9S12XS256
  • XC2060M-104
  • XC2336B-24
  • XC2336B-40
  • XC236xA-72
  • XC236xA-104
  • XC236xB-24
  • MAZDA CX5 SRS unit KD35-57K30B
  • MC9S12XHY256 0M23Y
  • MC9S12XS128 D-FLASH Secured
  • MC9S12XS128 P-FLASH Secured
  • Land Rover SRS unit BJ32-14D374-AC
  • Добавлены новые процессоры: XC2xxx, MC9S12XE, MC9S12Cxx, MC9S12Xs, MAC72xx

Комплектация X-Prog 555:

1. Програмное обеспечение.

2. Программатор X PROGM.

3. EEPROM адаптер для SMD корпусов.

4. Адаптер для EWS-3 BMW.

5. HC(S)12 BDM адаптер (912 и 9S12 серия).

6. TMS374 Адаптер (Микроконтроллеры TMS 374).

7. Адаптер для внутрисхемного програмирования TMS374 и NEC uPD78.

8. TMS370 (TMS 370 PLCC28) Адаптер.

9. Адаптер программатора TMS370 PLCC44.

10. TMS 370 Адаптер для программирования TMS370 PLCC68.

11. Адаптер для программирования HC11E9/EA9 PLCC52.

12. Переходник для программирования MC68HC05V12.

13. Переходник для программирования микроконтроллеров HC05B серии PLCC52.

14. Программирующий адаптер к программатору HC05B серии с корпусом QFP64.

15. Адаптер для внутрисхемного программирования EEPROM M35080.

16. QFP-64 Адаптер к программатору.

17. Адаптер к программатору для микроконтроллеров в корпусе QFP-28.

18. QFP-112 Адаптер для программатора X-Prog-M для контроллеров QFP112.

19. QFP-80 Адаптер для программирования контроллеров в корпусах QFP80.

20. QFP-144 Адаптер к программатору XPROG-M для программирования MCU QFP144.

21. USB кабель для подключения к компьютеру

Делаем COM программатор для AVR микроконтроллеров. — GetChip.net

Еще одним несложным, в плане изготовления, является COM программатор. При условии использования альтернативного режима COM порта Bitbang, отпадает необходимость в преобразовании интерфейса RS232 COM порта в SPI, необходимый для программирования. Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В). Это и делает
схема COM программатора для AVR микроконтроллеров:

Данная схема программатора достаточно распространена и известна как программатор Громова. Название пошло от автора программы Algorithm Builder Геннадия Громова, который и предложил такую схему.

Чтобы собрать программатор Громова нам нужно следующее:

Диоды КД522, КД510, 1N4148 или им подобные. Резисторы можно использовать любые, какие найдете. В качестве шлейфа можно использовать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.
Для внутрисхемного программирования Atmel рекомендует стандартные разъемы:


Если Вы планируете серьезно заняться микроконтроллерами, сделайте разъемы стандартными. Для разового программирования устройства я рекомендую использовать разъемы BLS «мамы» на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компа — именно их я и взял) и штырьки PLS «папы» на плате. Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.

Собрать COM программатор не составит труда:

Я сознательно не даю печатной платы под этот программатор, так как схема проста и возня с разводкой и травлением платы просто себя не оправдывает.

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

Общие рекомендации:

— Так как режим Bitbang нестандартный для COM порта компьютера, то возможны сбои в работе (хотя у меня такого не было). Особенно это касается ноутбуков. Как вариант решения этой проблемы можно рекомендовать «поиграться» настройками COM порта (скорость, биты данных, варианты управления потоком, величины буфера …).
— Отдельный разъем для «земли» желательно подключить первым, чтобы уравнять потенциалы «земли» программируемого устройства и компьютера. Для тех, кто не знает, если у Вас компьютер включен в обычную розетку, без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В.

Заключение:

— COM программатор Громова простой и надежный. Я не перестал пользоваться им даже собрав USB программатор (если какой либо микроконтроллер перестает программироваться USB программатором я обязательно перепроверю его на программаторе Громова).
— Так как программатор Громова собран на пассивных элементах он не требует для себя питания. Мало того, из-за паразитного питания, микроконтроллер можно запрограммировать вообще не подключая к нему источника питания! Хотя так программировать я не рекомендую, но сам факт интересен.
— Для пользователей Algorithm Builder есть приятный бонус! Этот программатор можно использовать для внутрисхемной отладки кристалла (программный JTAG).

Ссылки:
Сайт Геннадия Громова, автора Algorithm Builder

(Visited 107 084 times, 15 visits today)

ST-LINK V2 MINI программатор STM8 и STM32 микроконтроллеров

ST-LINK/V2 MINI – это внутрисхемный программатор и отладчик для микроконтроллеров серии STM8 и STM32, который является недорогим аналогом оригинального программатора STLINK от компании STM. С помощью ST-LINK MINI можно программировать и выполнять отладку по интерфейсам SWIM (для микроконтроллеров STM8), SWD и JTAG (для микроконтроллеров STM32). Все коммуникационные интерфейсы программатора (SWIM, SWD, JTAG) доступны для использования и выведены на 10-ти контактный разъем программатора.

 

Программатор ST-LINK MINI подключается к компьютеру через USB и может работать с различным программным обеспечением:

  • Для микроконтроллеров STM8 — это ST Visual Develop (STVD) или ST Visual Program (STVP), которые доступны для свободного скачивания с сайта ST.
  • Для микроконтроллеров STM32 – это интегрированные среды разработки Atollic, IAR, KEIL, Tasking, CooCox.

 

Характеристики:

  • Питание программатора ST-LINK MINI непосредственно от USB
  • Поддержка подключения Full Speed USB 2.0
  • Не требует дополнительных проводов для подключения к USB (тип подключения USB-A)
  • Поддержка обновлений прошивки по USB как в оригинальном программаторе ST-LINK
  • Два светодиода отображающих режим работы программатора, чтение и запись данных.
  • Поддержка SWD, SWIM и JTAG интерфейсов с напряжением 3,3 вольта
  • Стабилизированное напряжение 3,3 вольта выведено на разъем программатора и позволяет питать программируемое устройство непосредственно от ST-LINK MINI.
  • Управляющий контроллер отладчика STM32F103C8T6

Предостережения:

 

Программатор/отладчик ST-LINK MINI имеет напряжение логических уровней интерфейсов 3,3 вольта. Подключение программатора к устройствам с питанием отличным от 3,3 вольта не допускается. Во избежание повреждения программатора рекомендуется подавать питание на целевой микроконтроллер непосредственно от программатора ST-LINK MINI (вывод VCC +3,3V) или подавать питание на целевой микроконтроллер от внешнего источника с напряжением 3,3 вольта. Максимально допустимый ток вывода VCC +3,3V находится в пределах 300мА.

 

 

Назначение выводов интерфейсного разъема

 

 

Дополнительно:

 

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

— создание электронных схем

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

может показаться немного сложным, потому что есть много непонятных решений. Я помню, что чувствовал вначале. Со всеми доступными компиляторами, IDE, программистами и методами программирования — неудивительно, что вы запутаетесь!

Итак, давайте разберемся.

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

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

Основы программирования микроконтроллеров

Микроконтроллер сам не знает, что делать. Ваша работа — сказать ему, что вы хотите.

Итак, вам необходимо:

  • написать программный код на вашем компьютере
  • скомпилируйте код с помощью компилятора для микроконтроллера, который вы используете
  • загрузите скомпилированную версию вашей программы на свой микроконтроллер

Программирование Arduino немного проще, если вы хотите начать действительно просто.

Напишите свой программный код

Первый шаг — написать программный код. Обычно это делается на C. Но некоторые компиляторы поддерживают и другие языки. Узнайте, что делают другие люди, использующие тот же микроконтроллер.

Неважно, какое программное обеспечение вы используете для написания кода. Вы даже можете использовать Блокнот для этого шага. Мне нравится использовать действительно простой редактор. Но тот, который поддерживает подсветку синтаксиса, немного упрощает кодирование. Для Windows мне больше всего нравится Notepad ++

.

Скомпилируйте код для своего микроконтроллера

Прежде чем вы сможете загрузить свою программу в микроконтроллер, вам необходимо ее скомпилировать.Это означает преобразование кода из читаемого человеком кода в машиночитаемый код.

Используйте компилятор, который поддерживает ваш микроконтроллер, и скомпилируйте ваш код в машинный код для вашего чипа. Популярным компилятором для микроконтроллеров Atmel AVR является avr-gcc.

После компиляции у вас будет один или несколько файлов, содержащих машинный код. Затем вам нужно загрузить эти файлы в свой микроконтроллер.

Загрузите скомпилированный файл (ы) на свой микроконтроллер

Обычно необходимо загрузить один программный файл и файл для EEPROM и / или флэш-памяти.

Вам необходимо физическое соединение вашего компьютера с микроконтроллером. Либо вы можете использовать специальный программатор (например, AVRISP для микроконтроллеров AVR), либо, если у вас есть программируемый USB-чип, вы можете запрограммировать его с помощью USB-кабеля (мой предпочтительный метод).

А вам нужна программа для закачки файла (ов). Для микросхем AVR вы можете использовать AVRDUDE.

Следующий шаг

Освоив основные этапы программирования микроконтроллеров, пора приступить к созданию.Если вы только начинаете, я бы порекомендовал начать с платы микроконтроллера. Arduino — самый простой, но доступно гораздо больше.

Я также написал очень популярное руководство по микроконтроллерам, состоящее из 5 частей, которое проведет вас через этапы создания вашей собственной программируемой через USB микроконтроллерной платы с нуля.

Микроконтроллер

— Написание первой программы и передача

Микроконтроллер — Руководство для начинающих — Написание первой программы для включения светодиода и перенос программы в микроконтроллер

Я знаю, что вы готовы написать первую программу.Вы через многое прошли до сих пор! Раз уж мы затронули эту тему, давайте подведем итоги событий. Вы вышли и купили микроконтроллер AVR Atmel на ваш выбор. Я выбрал ATMega32 для моего использования. Вас познакомили с представление о микроконтроллерах, как они работают; а также были представлены программист, устройство, помогающее переносить программу в микроконтроллер. Ты построен удобный интерфейс, который используется для подключения контактов SPI к правильные выводы микроконтроллера.Вы подтвердили, что программатор (USBTinyISP) правильно установил драйверы для 32-битной и 64-битные версии Windows (XP, 7 и Vista). Вы также установили программу среда установлена «Среда программирования» под названием WinAVR, чтобы у вас была среда в котором можно написать свою программу, а затем передать ее в микроконтроллер. А также чтобы убедиться, что все работает правильно, вы использовали avrdude для протестировал программатор при подключении к компьютеру и микроконтроллеру.Напомним, что эта программа является утилитой передачи программ для перемещения нашей скомпилированной программы. в память микроконтроллера. Наконец, вы построили первую схему, так что что у нас есть для чего написать программу. Уф … это было много! Но так как вы преодолели все эти препятствия, тяжелая работа окончена и все гладко плавание отсюда. Надеюсь, вы смогли пройти предыдущие шаги без проблем — так что приступим к нашей первой программе.

Для упрощения разберем функции микроконтроллера по категориям. на три категории: контроль, зондирование и коммуникация. Подробности оставим о том, как разработать каждую из этих функций, и углубляться в эти детали, когда мы будем писать различные программы. Обратите внимание, что есть много способов запрограммировать эти функции. Для первой программы мы заставим микроконтроллер чем-то «управлять».И, как Вы знаете из предыдущего поста, что для этой цели мы будем использовать светодиод. По сути, мы включим светодиод. Да я знаю … скучно, правда? Что ж, мне нужно с чего-то начать! По мере того, как я знакомлю вас с опытом программирования, я добавляю больше сложности понемногу, чтобы вы могли легко осмыслить эти важные концепции.

Так что здесь вы, вероятно, спрашиваете…как сделать программу для управления ВЕЛ? Что ж, это действительно просто: мы просто скажем Pin0 на PORTB вывести 5 вольт. Помните, что это вывод, к которому подключен положительный вывод (анод). В первый ключ в этом сценарии — «выход», а следующий — «5 вольт». Есть выход мы можем указать, что конкретный вывод должен быть установлен как выход из MCU. Однажды булавка настроен для вывода, вы сможете управлять этим контактом и делать он либо высокий (5 вольт), либо низкий (нулевое напряжение).А поскольку есть только два состояния для этого вывода в режиме вывода (5 В или 0 В) и только два состояния для сам режим (ввод или вывод), вам нужно только установить значение либо логическое 1 или 0. Обратите внимание, что это должно быть выполнено для каждого вывода, который мы хотим использовать в нашем схема. Но прежде чем мы перейдем к подключению 1 или 0, давайте поговорим о вводе по сравнению с выход. Когда вывод находится в режиме ввода, он прослушивает напряжение.Когда булавка находится в режиме вывода, он может заряжаться при 5 В или не заряжаться при 0 В. Это оно!

Есть много способов сделать это. Это не для того, чтобы вас запутать, а для того, чтобы проще. Я познакомлю вас с одним из многих способов выполнить эту задачу, а позже я объясню некоторые другие методы при написании других программ. Однако обратите внимание что, хотя этот первый метод отлично подходит для ознакомления с концепцией, он, вероятно, не так хорошо на практике.Поэтому в будущих программах вы увидите другие методы. что оставит контекстные булавки (эти булавки по обе стороны от интересующей булавки) не затронуты, поскольку они вполне могли быть ранее установлены в программе. Но с тех пор мы пишем простую программу, сейчас мы не будем беспокоиться об этой сложности.

Чтобы выбрать режим вывода для вывода, вы будете использовать регистр направления данных (DDR). О чувак! Что такое реестр?!? Пусть это вас не беспокоит.Регистр — это просто память место, которое заставляет микроконтроллер каким-то образом реагировать. Мы используем регистр для установить состояние микроконтроллера или заставить микроконтроллер что-то делать. Это как рефлексы или щекотки. Когда человек щекочет другого человека, это вызывает смех. Мы можем заставить MCU что-то делать, установив определенное значение в регистре. Это все, что вам нужно знать на данный момент.

Поэтому, когда вы используете регистр DDR, вы можете установить вывод для вывода данных, или примите ввод данных.Но мы сказали ввод или вывод, теперь вы также говорите данные. Используемый здесь термин «данные» просто добавляет еще одно измерение к этой идее в форма «время». Если сделать пин 5 вольт, потом ноль вольт, а потом снова 5 вольт … вы на самом деле отправляют единицы и нули. Для штифта это не что иное, как высокий (5 вольт), а затем состояние низкого (ноль вольт): MCU видит эту логику высокого / низкого уровня. Таким же образом можно получать данные.

Есть несколько способов установить pin0 для порта B на вывод. Один из способов сделать это — напишите:

DDRB = 0b00000001;

Позволь мне объяснить. «DDRB» относится к регистру направления данных для порта B; «0b» — это чтобы сообщить компилятору, что далее следует двоичное выражение числа; а также цифра «1» на конце обозначает положение вывода 0 (первый вывод в порту B).Отзывать что есть 8 контактов для порта B; пины от 0 до 7. В нашем строка кода. Таким образом, каждая цифра представляет собой контакт порта, и мы можем использовать индивидуальный цифры, которые конкретно относятся к любому из контактов в порту B. Таким образом, «1» на конец нашего оператора кода относится к первому контакту порта B, который в данном случае является выводом 0. (Напомним, что C и C ++ — это языки с нулевым отсчетом, поэтому первый индекс структура данных относится к нулевому элементу; второй индекс относится к первый элемент и т. д.) На этом этапе нам действительно не нужно усложнять, так как это будет более подробно рассмотрено в будущих руководствах. Однако если вы хотел бы узнать больше о двоичная система, проверьте здесь.

Теперь нам нужно подать на вывод 5В. Это работает так же, как оператор кода DDR. мы использовали выше. Мы будем использовать двоичное число, чтобы подать 5 В на этот вывод (вывод 0), используя этот выписка:

PORTB = 0b00000001;

Единственная разница между этим и предыдущим утверждением состоит в том, что теперь мы используем регистр ПОРТ.Этот регистр знает контакты этого конкретного порта и дает us, чтобы указать фактическое значение данных (логический 0 или 1) для этих контактов.

Теперь нам нужно немного поговорить об общей структуре нашей программы. Все программы нужно указанное место для начала исполнения. Это как дать кому-то набор инструкции о том, как приготовить торт, не говоря им, с какого шага начать. «Основная» функция — это место, где все программы на C / C ++ начинают выполнение.Итак, мы создаст основную функцию.

int main (пусто)
{
}

Чтобы программа понимала информацию о регистрах DDR и PORT и как они работают в микроконтроллере, необходимо добавить оператор include, содержит всю информацию о микроконтроллерах AVR. Это заявление о включении вероятно будет во всех ваших программах.

#include
int main (пусто)
{
}

Когда начинается процесс компиляции, препроцессорная часть компилятора выглядит в каталоге «avr» для файла «io.h». Расширение «.h» здесь означает, что это файл заголовка, и (как следует из его названия) код в этом файле будет быть вставленным в начало (заголовок) исходного файла, который вы создаете.Сейчас мы может вставлять операторы DDR и PORT в наш код, поскольку включение Заголовочный файл io.h сообщил о них компилятору.

#include
int main (пусто)
{

DDRB = 0b00000001; // Регистр направления данных устанавливает pin0 для вывода, а остальные выводы в качестве ввода

PORTB = 0b00000001; // Установите pin0 на 5 вольт

}

Теперь направление pin0 установлено на выход со значением, установленным на 5 В.Но мы все еще не закончен. Нам нужно, чтобы микроконтроллер работал бесконечно, поэтому нам нужен распорядок, чтобы сделать это. Это называется бесконечным (или бесконечным) циклом. В бесконечный цикл гарантирует, что микроконтроллер не перестанет выполнять свои операции. Я объясню это более подробно, когда у нас будет что-то делать в этом цикле. Там несколько типов циклов, которые мы можем использовать для этой цели, но для этой демонстрации Я буду использовать цикл while.На английском это означает то же самое, что и в коде: For Например, «пока» я поднял руку, вы должны продолжать хлопать в ладоши.

#include
int main (пусто)
{
DDRB = 0b00000001; // Регистр направления данных устанавливает вывод 0 на вывод а остальные контакты как вход
PORTB = 0b00000001; // Установите pin0 на 5 вольт
, а (1)
{

// Код был бы здесь, если бы его нужно было выполнить повторно и снова и снова … бесконечно

} }

Обратите внимание, что мы используем «1» в качестве аргумента цикла while, потому что все остальные чем «0» — логическая истина. Следовательно, условие цикла while никогда не будет ничем кроме логически истинного, и программа будет продолжать выполняться бесконечно (т.е. я держу руку поднятой).

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

Введение в микроконтроллеры — начало

Добро пожаловать в серию руководств «Введение в программирование микроконтроллеров».Если вы хотите изучить основы встроенного программирования для микроконтроллеров (а также немного дизайна встроенного оборудования), я надеюсь, что эти руководства помогут вам в этом путешествии. Это мои первые публикации здесь, и я пишу эту серию руководств, потому что на протяжении многих лет я видел бесчисленное количество новичков, задающих одни и те же вопросы и спотыкающихся об одних и тех же камнях преткновения, и я подумал, что, возможно, смогу придумать что-то полезное для ответа. эти вопросы, и в том, чтобы избежать этих спусковых точек.

Быстрые ссылки

Целевая аудитория

Эта серия руководств предназначена для студентов, любителей, программистов и разработчиков оборудования, которые хотят изучить основы программирования микроконтроллеров или восполнить пробелы в своих знаниях о таком программировании. Это руководство не научит вас программированию в целом, хотя в нем будут обсуждаться методы программирования, представляющие особый интерес для микроконтроллеров. Этот учебник также не научит вас проектированию оборудования, хотя он проиллюстрирует проблемы с оборудованием, с которыми обычно сталкиваются при использовании микроконтроллеров.Я надеюсь, что он поможет новичку понять, что такое микроконтроллер (микроконтроллер), какие возможности он обычно имеет и как использовать эти возможности. Он будет идти с самого начала — как подключить и запрограммировать микроконтроллер, чтобы он мигал и светился (версия микроконтроллера программы «Hello World»), через различные функции и периферийные устройства, обычно присутствующие на микроконтроллере, такие как прерывания, таймеры / счетчики, UART, SPI, I2C, ADC, DAC, PWM, сторожевой таймер и т. д. В нем также будут рассмотрены общие темы, такие как устранение ошибок входов, фильтрация значений АЦП, управление ЖК-дисплеями символов и другие подобные рутинные операции.

Предупреждающий лектор

Каждое правило имеет одно много исключений. Это относится практически ко всему, что вы прочитаете в этом руководстве. Если вы читаете здесь «X», не думайте, что это означает «X и только X, во всех возможных ситуациях, без исключений или оговорок, сейчас и навсегда». Разработчики микроконтроллеров придумали много разных, интересных, а иногда и просто причудливых способов решения задач. И как пользователь микроконтроллера и программист вы тоже можете придумать много разных и интересных способов делать что-то.По моему опыту, учитывая N-шаговую программу, вероятно, существуют как минимум N-квадраты способов ее написания. Цель этого руководства — попытаться дать вам прочную основу для программирования микроконтроллеров, а не быть исчерпывающей энциклопедией в данной области. Для каждой примерной программы я постараюсь написать ее простым и понятным языком, и позволю вам обнаружить свои собственные хитрые приемы в дальнейшем.

Другой возможный источник путаницы — терминология. Различные производители довольно часто используют разную терминологию для обозначения одних и тех же или похожих функций, регистров и параметров конфигурации / состояния.В этом учебном пособии я иногда использую терминологию, используемую в одном из семейств микроконтроллеров, используемых в учебном пособии, а в других случаях я буду использовать неспецифическую терминологию. Я буду использовать все, что мне кажется подходящим для каждой ситуации.

Что такое встроенное программирование?

Встроенное программирование — это термин, обозначающий компьютерное программирование, которое живет и управляет огромным количеством управляемых компьютером устройств, которые окружают нас в наших домах, автомобилях, на рабочих местах и ​​в сообществах. Чтобы было ясно, все программирование микроконтроллера — это встроенное программирование, но не все встроенное программирование — это программирование микроконтроллера.Об этом будет сказано немного больше. Иногда термины будут использоваться как взаимозаменяемые, но в этой серии руководств основное внимание уделяется микроконтроллерам.

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

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

Что такое встроенная система?

На этот вопрос нет идеального ответа, так как каждый ответ будет иметь некоторые исключения. Однако для наших целей позвольте нам объявить, что встроенная система — это система, которая использует один или несколько микрокомпьютеров (то есть от маленьких до очень, очень маленьких компьютеров), запускает специальные специализированные программы и подключена к специализированному оборудованию для выполнения специального набора функций. .Это можно сравнить с компьютером общего назначения, таким как знакомый настольный компьютер или ноутбук, которые не предназначены для запуска только одной выделенной программы с одним специализированным набором оборудования. Это не идеальное определение, но это начало.

Некоторые примеры встроенных систем:

• Сигнализация / охранная система

• Автомобильный круиз-контроль

• Термостат отопления / кондиционирования

• Микроволновая печь

• Контроллер противоскольжения

• Контроллер светофора

• Торговый автомат

• Газовый насос

• Судоку для портативных устройств

• Контроллер системы полива

• Поющая настенная рыба (или эквивалент этого подарочного сезона)

• Мультикоптер

• Осциллограф

• Марсоход

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

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

Чем отличается встроенное программирование?

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

Еще одно отличие от компьютеров общего назначения состоит в том, что большинство (но не все) встроенных систем весьма ограничены по сравнению с предыдущими. Микрокомпьютеры, используемые во встроенных системах, могут иметь объем программной памяти от нескольких тысяч до нескольких сотен тысяч байтов, а не гигабайт на настольном компьютере, и обычно имеют даже меньше памяти данных (ОЗУ), чем память программ. Кроме того, ЦП часто представляет собой 8- и 16-разрядные устройства меньшего размера, в отличие от 32-разрядных и более крупных устройств, имеющихся в настольных компьютерах (хотя небольшие 32-разрядные микроконтроллеры сейчас стоят меньше доллара в умеренных количествах, что удивительно).Меньший размер слова ЦП означает, среди прочего, что программе потребуется больше инструкций (и, следовательно, больше тактовых циклов), чем эквивалентной программе, работающей на ЦП с большим размером слова. И, наконец, скорость, с которой работают микроконтроллеры меньшего размера, намного меньше, чем скорость, с которой работает ПК. Типичные тактовые частоты микроконтроллера меньшего размера составляют от 1 до 200 МГц, а не тактовые частоты ПК.

В чем разница между микрокомпьютером, микропроцессором и микроконтроллером?

Под микропроцессором обычно понимается однокристальный центральный процессор (ЦП), при этом ЦП является «мозгом» компьютера — частью компьютера, которая выполняет программные инструкции.Микрокомпьютер — это любой компьютер, построенный на базе микропроцессора, вместе с памятью программ и данных, а также устройствами ввода-вывода и другими периферийными устройствами по мере необходимости. Микроконтроллер (в этом руководстве часто сокращается до микроконтроллера) — это одночиповое устройство, в которое встроен не только микропроцессор, но и тот же самый чип, энергонезависимая память программ (ПЗУ) и энергозависимая память данных (ОЗУ), а также полезные периферийные устройства. такие как универсальный ввод / вывод (GPIO), таймеры и каналы последовательной связи. Отсюда следует, что все микроконтроллеры являются микрокомпьютерами, но не все микрокомпьютеры используют микроконтроллеры.

В небольших встроенных системах чаще всего используются микроконтроллеры, а не микропроцессорные конструкции, поскольку микроконтроллеры обеспечивают наиболее компактную конструкцию и наименьшую стоимость оборудования. С другой стороны, более крупные встроенные системы могут использовать один или несколько микропроцессоров, если микроконтроллер подходящей скорости и функциональности не может быть найден. Это может распространяться на использование промышленных ПК и даже более мощного оборудования. Также возможно включение микропроцессоров и микроконтроллеров в сложную встраиваемую систему.Единственные настоящие правила — использовать любое устройство (а), подходящее для задачи, с учетом ограничений по бюджету, доступности, времени, инструментам и т. Д.

Следует также отметить, что с большинством микроконтроллеров можно добавить внешнюю память и периферийные устройства, если встроенная система не удовлетворяет все потребности системы. Когда имеет смысл добавлять такие внешние устройства, а не выбирать более крупный микроконтроллер с необходимыми ресурсами на плате, это выбор, который необходимо делать на основе индивидуального проектирования.

Что такое N-битный процессор / микропроцессор / микроконтроллер?

Существует некоторое обсуждение того, что значит называть устройство N-битным процессором, но в большинстве случаев это довольно очевидно. Если устройство может выполнять большую часть своих инструкций по манипулированию данными над словами данных размером до N бит, то устройство является N-битным процессором. Например, устройство может иметь полный набор инструкций, которые могут работать с 8-битными данными, наряду с несколькими инструкциями, которые работают с 16-битными данными. Это устройство следует считать 8-битным дизайном, даже если отдел маркетинга утверждает обратное и называет его 16-битным чипом.

По объему 8-битные микроконтроллеры являются самым большим сегментом рынка встраиваемых систем. Многим приложениям просто не нужно больше мощности, и никогда не будет. 16-разрядные устройства более мощные, но они зажаты между 8-разрядными устройствами на нижнем уровне и 32-разрядными устройствами на верхнем уровне. 32-разрядные устройства находятся в верхней части спектра встраиваемых систем для всех, кроме самых сложных или высокопроизводительных, но их цена постоянно снижается.

Какие семейства микроконтроллеров используются в этих руководствах?

Чтобы дать краткий обзор различных разновидностей доступных микроконтроллеров, это руководство будет написано вокруг одного 8-битного семейства (Atmel AVR) и одного 32-битного семейства (архитектура ARM Cortex M3 в форме STM32 семья).Эти два семейства были выбраны, чтобы дать довольно широкое представление об устройствах и подходах, используемых в мире микроконтроллеров. Первые несколько примеров программного обеспечения будут написаны на языке ассемблера для каждого из этих семейств, а также на C. После этого примеры будут написаны только на C.

.

Что еще требуется для этих руководств?

Хотя я полагаю, что вы могли бы проработать большую часть этого руководства, используя только симулятор микроконтроллера, я настоятельно рекомендую вам иметь либо плату для обучения / разработки микроконтроллера, либо даже просто голый микроконтроллер, различные компоненты и макетную плату с питанием.Кроме того, вам понадобится компилятор C, предназначенный для вашего устройства, и, возможно, ассемблер для вашего устройства. У вас не должно возникнуть проблем с поиском бесплатного ассемблера для вашего чипа, и вы также должны иметь возможность найти бесплатный компилятор C, даже если это версия коммерческого компилятора с ограниченной функциональностью. Вам также понадобится способ загрузки ваших программ в ваш микроконтроллер. Детали этого процесса загрузки будут напрямую зависеть от конкретного микроконтроллера и платы, на которой он установлен.

Что касается тестового оборудования, цифровые мультиметры действительно дешевы, и нет никаких оправданий, чтобы не иметь его.В таких местах, как Harbour Freight, они иногда продаются за несколько долларов. Другой элемент оборудования, который должен быть у любого инженера по встроенным системам, — это приличный осциллограф. Не паникуйте, для этих руководств не требуется объема. Однако, если вам удастся заполучить такой, вы узнаете больше и сэкономите много времени в сделке. Прицелы USB дают хорошую отдачу, как и некоторые области импорта (или, конечно, работающие б / у области). В конце прошлого года я угостил себя красивым прицелом Agilent с огромным (для меня) экраном, и каждый раз, когда я им пользуюсь, я рад, что потратил деньги.

Что касается микроконтроллеров, используемых в этих руководствах, вот подробности об оборудовании, которое я буду использовать для каждого из семейств процессоров:

AVR

• Оборудование: плата Atmel STK-500 с установленным ATmega8515

• Инструменты: Atmel Studio 6 (бесплатно)

ARM Cortex M3

• Оборудование: STM32VLDiscovery Board, установленная на специальной стыковочной плате

• Инструменты: Rowley Crossworks (150 долларов США за персональную лицензию — предлагается IAR Embedded Workbench Kickstart Edition для бесплатного набора инструментов)

Какой язык программирования?

Это хорошее время, чтобы немного поговорить о различных языках программирования, которые можно использовать для написания встроенного программного обеспечения.В этом уроке я буду использовать два языка: C и ассемблер. Первое, что я хочу отметить, это то, что это , а не , единственные два языка, доступные встроенным программистам, и что во многих случаях другие языки могут быть лучшим выбором. При этом и C, и язык ассемблера полезны не только для изучения программирования на микроконтроллерах, но и для действительно продуктивного программирования на микроконтроллерах. Они также повсеместно распространены в том смысле, что независимо от того, какой микроконтроллер вы выберете, он почти наверняка будет иметь доступный как ассемблер (для обработки исходного кода на языке ассемблера), так и компилятор C (для обработки исходного кода C).То же самое определенно не относится к другим языкам. Но я бы посоветовал вам рассмотреть другие языки, если вы так склонны, и, если это важно, если они доступны для вашего семейства устройств.

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

Также обратите внимание, что термин «язык ассемблера» часто сокращается в этом руководстве и в других местах до «asm» или «ASM».

Как работает встроенная программа?

Прежде чем говорить о встроенном программировании, это хорошее место, чтобы дать краткий обзор того, как встроенная программа запускается и работает. Предполагая, что вы создали программный файл и загрузили его в программную память микроконтроллера (все шаги, о которых мы поговорим более подробно позже), хорошие вещи происходят, когда вы либо включаете устройство, либо нажимаете кнопку RESET.Когда микроконтроллер выходит из состояния сброса в результате любого действия, он всегда будет переходить в определенную ячейку памяти, как определено производителем, чтобы начать выполнение любого кода, найденного там или указанного там. Иногда эта ячейка памяти содержит код напрямую; например после выхода из состояния сброса выполнение программы начинается с адреса программы 0. В других случаях фиксированная ячейка памяти является вектором, ячейкой, которая содержит фактический адрес начала программы; например после выхода из состояния сброса контроллер загрузит свой программный счетчик значением, найденным по адресу программы 0xFFFE, и, таким образом, начнет выполнение кода по адресу, находящемуся в ячейках 0xFFFE и 0xFFFF (при условии, что адрес программы 16 бит, сохраненный в 2 байтах).В первом случае вам нужно будет убедиться, что ваша программа загрузилась по указанному адресу запуска, а во втором случае вы загрузите свою программу везде, где память программы была размещена в адресном пространстве контроллера, и вам нужно будет сделать убедитесь, что вы затем загрузите этот стартовый адрес в вектор адресов сброса. Обратите внимание, что выбор метода запуска не зависит от вас, он будет встроен в конструкцию выбранного вами микроконтроллера. AVR использует первый метод, а Cortex M3 — второй.

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

Эта инициализация обычно разбивается на две части, при этом первые шаги инициализации аппаратного и программного обеспечения часто выполняются в так называемом коде запуска, а последующие этапы аппаратного и программного обеспечения выполняются в пользовательской программе. Это разграничение более отчетливо проявляется в программе C, где код запуска невидим для программы C, являясь кодом, который происходит до запуска main () и заканчивается переходом или вызовом main (), где начинается видимая программа на C. . В программе на ассемблере все шаги инициализации могут быть одинаково видимы в пользовательском коде, хотя даже тогда первые шаги могут находиться в отдельном исходном файле запуска.

Примечание к примерам программ

Каждый раздел учебника будет включать несколько коротких примеров программ. Примеры начнутся с простейших концепций и добавят некоторые концепции в каждую последующую программу. Попутно некоторые комментарии будут обрезаны, чтобы попытаться уменьшить визуальный беспорядок и сосредоточить внимание на представленных новых концепциях. Например, комментарии о том, что «этот бит / порт / адрес необходимо настроить для вашего конкретного оборудования», в конечном итоге исчезнут, потому что к тому времени вы должны знать, что e.грамм. если я обсуждаю светодиодный выход на PORTA, бит 0, а на вашем оборудовании вы используете светодиод на PORTB, бит 7, вы внесете это изменение соответствующим образом. Или когда я упоминаю в первых программах, что после инструкции «ret», что вам лучше сначала настроить стек, через некоторое время этот комментарий и другие подобные комментарии исчезнут.

Что дальше?

Прежде чем мы перейдем к нашей первой программе микроконтроллера, мигающему светодиодному индикатору «Hello World», нам необходимо осветить дополнительные детали, касающиеся конструкции и работы микроконтроллеров.Это будет предметом следующего урока этой серии.

Вам также может понравиться … (продвигаемый контент)

Kanda — Программирование микроконтроллеров

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


Простой комплект

Полный учебный комплект с учебными пособиями, модульной платой PIC, отладчиком и программатором PICKit3

Обновление микропрограммы микроконтроллера AVR без компьютера.


Полный комплект PIC

Полный учебный комплект с учебными пособиями и модульной платой PIC, а также отладчиком и программатором PICKit3


Что вам нужно узнать?

  • Некоторая базовая электроника
  • Системы счисления, такие как двоичная и шестнадцатеричная
  • Логическая логика — И, ИЛИ, НЕ и т. Д.
  • Структура микроконтроллера
  • Планирование программ
  • Использование среды разработки
  • Ассемблер или программирование на C для микроконтроллеров
  • Отладка вашего кода и его загрузка
  • Как использовать периферийные устройства, такие как последовательные порты

Это может показаться сложным списком, но наш новый комплект Kanda MICRO-X разбивает его на небольшие куски и обложки. все это с серией руководств.Другие системы, такие как Arduino, пропускают большую часть этого списка и представляют упрощенный вид программирования микроконтроллера. Это нормально, если вы просто хотите скопировать проект, но это вас не многому научит. или позвольте вам создавать свои собственные проекты.

Какие ресурсы вам нужны?

По самой своей природе изучение встраиваемых систем требует некоторого оборудования, онлайн-учебники просто не собираются быть достаточным. С другой стороны, покупка недорогой платы микроконтроллера просто сбивает вас с толку.Чтобы узнать о программировании встроенных систем и уметь разрабатывать собственные проекты микроконтроллеров, необходимы:
  • Курс программирования микроконтроллеров
  • Профессиональная среда разработки с ассемблером и компилятором C в комплекте
  • Эффективный эмулятор для отладки вашего кода
  • Программатор для загрузки кода на ваше оборудование
  • Модульное оборудование, которое можно расширить после изучения основ
  • Множество примеров проектов, документации и схем для начала работы
К счастью, компания Kanda разработала новый комплект микроконтроллеров, который включает в себя все эти функции, чтобы вы могли изучить все, что вам нужно. это необходимо знать для создания собственных проектов микроконтроллеров.

Комплект для программирования микроконтроллера MICRO-X

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

Он включает в себя основную плату, которая может принимать дополнительные модули по мере необходимости:

Он также имеет эмулятор Microchip PICKit3 и программатор для отладки и загрузки кода, обучающую доску, интерфейс USB и ЖК-дисплей.Более подробная информация доступна здесь:

Комплект микроконтроллера MICRO-X

Какие инструменты часто используются при программировании микроконтроллера?

Обычно мы проектируем схему и подключаемся к различным другим компонентам, таким как двигатели, ЖК-дисплеи, светодиоды, и даже больше, предоставляя источник питания, который используется этой схемой. Что делает микроконтроллер, когда он запрограммирован с помощью этой схемы?

Семейства микроконтроллеров понимают программу, написанную на языке ассемблера или языке C, которая должна быть скомпилирована в язык машинного уровня, известный как двоичный язык (т.е. нули и единицы). Запрограммированный файл сохраняется на жестком диске компьютера или в памяти микроконтроллера. Ассемблер используется для перевода программы сборки в машинный код. Чтобы написать программу на языке ассемблера, программист должен знать процессор или оборудование. Языки низкого уровня используются в кросс-разработке. Шестнадцатеричная система использовалась как более эффективный способ представления двоичных чисел, тогда как при использовании двоичного языка ЦП работает очень быстро.

Сегодня мы можем использовать множество различных языков программирования, таких как C, JAVA, ORACLE и другие.Эти языки называются языками высокого уровня; Чтобы написать программу на языке высокого уровня, программисту не нужны какие-либо знания об оборудовании, которое используется для разработки приложений высокого уровня. Компилятор играет жизненно важную роль в переводе высокоуровневой программы на машинный уровень, поскольку языки высокого уровня используются в собственной разработке.

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

  • Keil uVison
  • Code Editor
  • Assembler
  • C compiler
  • Burner / Programmer

Keil Uvison:

The Uvison — бесплатное программное обеспечение, которое решает многие проблемы разработчика встраиваемых систем.Это программное обеспечение представляет собой интегрированную среду разработки (IDE), в которую интегрирован текстовый редактор для написания программ, компилятор, который преобразует исходный код в шестнадцатеричный файл.


Программное обеспечение Keil uVsion

Руководство по началу работы с Keil Uvison:

1. Щелкните значок Keil Vision на рабочем столе.

В этот процесс входят следующие шаги:

Рисунок 1

2. Щелкните меню Project в строке заголовка

Затем щелкните New Project

Figure 2

3. Сохраните проект, набрав подходящее имя проекта без расширения в вашей собственной папке, расположенной в C: \ или D: \

Рисунок 3

4. Затем нажмите кнопку «Сохранить» выше.

Выберите компонент для вашего проекта. например, Atmel ……

Щелкните по символам + в соответствии с вашими требованиями. Пример здесь выбран Atmel.

Рисунок 4

5 . Выберите AT89C51, как показано ниже.

Рисунок 5

6. Затем нажмите «OK»

Следующие шаги включают в себя описанный выше процесс:

Рисунок 6

7. Затем нажмите ДА или НЕТ ……… в основном «НЕТ».

Теперь ваш проект готов к ИСПОЛЬЗОВАНИЮ.

Теперь дважды щелкните Target1, вы получите еще одну опцию «Source group 1», как показано на следующей странице.

Рисунок 7

8. Щелкните опцию файла в строке меню и выберите «новый»

Рисунок 8

9. Следующий экран будет таким, как показано на текстовой странице

Рисунок 9

10. Теперь начните писать запрограммируйте в «EMBEDDED C» или «ASM».

Чтобы программа была написана на языке Ассемблер, мы должны сохранить ее с расширением «.Asm », а для программы на основе« EMBEDDED C »мы должны сохранить его с расширением« .C »

Рисунок 10

11. Теперь щелкните правой кнопкой мыши группу источников 1 и выберите« Добавить файлы в группу источников »

Рисунок 11

12. Теперь выберите в соответствии с расширением файла, указанным при сохранении файла.

Щелкните только один раз на опции « ДОБАВИТЬ ».

Теперь нажмите функциональную клавишу F7 для компиляции. Если это произойдет, появится какая-либо ошибка.

Если файл не содержит ошибок, одновременно нажмите Control + F5.

Редактор кода или текстовый редактор:

Редактор кода используется для написания программы. Редакторы uVision включают в себя все стандартные функции, такие как цветная подсветка синтаксиса, и быстро выявляют ошибки. Редактор доступен во время отладки. Естественная среда отладки помогает быстро выявлять и исправлять ошибки в вашей программе. После написания программы в редакторе кода сохраните этот файл в формате .asm или .C в зависимости от того, какой ассемблер вы выбрали.

Keil Uvison Editor

Ассемблер:

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

Компилятор:

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

Ассемблер преобразует инструкции в машинный код:

Схема преобразования языка ассемблера в машинный уровень

➢ Первый файл создается с помощью редактора, такого как редактирование DOS или другого.

➢ Ассемблер создаст целевой файл и список файлов. Расширение объектного файла — «.obj», а расширение файла списка — «.lst».

➢ Ассемблеру требуется третий шаг, известный как связывание. Программа связывания берет один или несколько файлов объектов и создает целевой файл с расширением «.abs».

➢ Файл «.abs» загружается в программу под названием OH (преобразователь цели в шестнадцатеричный), которая создает файл с расширением «шестнадцатеричный», готовый для записи в ПЗУ микроконтроллера.

Записывающее устройство / Программист:

Программирование или запись микроконтроллера означает «перенос программы из компилятора в память микроконтроллера». Программа для микроконтроллера обычно написана на языке C или ассемблере, наконец, компилятор генерирует шестнадцатеричный файл, который содержит инструкции машинного языка, такие как нули и единицы, понятные микроконтроллерам. Это содержимое микроконтроллера, которое передается в микроконтроллер, когда программа передается в память микроконтроллера, она работает в соответствии с программой.

Программатор / записывающее устройство

Как программировать микроконтроллер:

Микроконтроллер — это интегрированный чип, в котором мы храним код, написанный на языке ассемблера. Итак, чтобы сбросить эту закодированную программу в ИС микроконтроллера, нам понадобится устройство, известное как записывающее устройство или программатор. Программист — это аппаратное устройство с программным обеспечением, которое считывает содержимое шестнадцатеричного файла, хранящегося на ПК или ноутбуках. Он читает шестнадцатеричный файл данных через последовательный порт или USB-кабель и передает данные в память микроконтроллера.

Программисты и компиляторы различны для разных микроконтроллеров, которые используются разными компаниями, например, микроконтроллер 8051 «flash magic» используется для программирования микроконтроллера и микроконтроллер AT89C51 «программатор» используется для программирования микроконтроллера. Таким образом мы программируем код в микроконтроллере с помощью записывающего устройства или программатора.

Программирование микроконтроллеров: Microchip PIC — 1-е издание

Описание книги

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

Используя в качестве архетипа популярную и широко распространенную 8-битную микросхему Microchip PIC® среднего уровня, Программирование микроконтроллеров предлагает автономное представление междисциплинарных инструментов, необходимых для разработки и реализации современных встраиваемых систем и микроконтроллеров.Авторы начинают с базовой электроники, систем счисления и концепций данных, за которыми следуют цифровая логика, арифметика, преобразования, схемы и компоненты схем, чтобы создать прочный фон в области компьютерных наук и основ электроники, связанных с программированием микроконтроллеров.

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

Обеспечивая правильное сочетание теории и практического руководства, Программирование микроконтроллеров: Microchip PIC® — идеальный инструмент для любого любителя или профессионала, проектирующего и внедряющего автономные системы для самых разных приложений.

Содержание

ОСНОВНАЯ ЭЛЕКТРОНИКА
Атом
Изотопы и ионы
Статическое электричество
Электрический заряд
Электрические цепи
Элементы схемы
Полупроводники
ЧИСЛОВЫЕ СИСТЕМЫ
Подсчет
Истоки десятичной системы
Типы чисел
Представления системы счисления
Преобразования систем счисления
ДАННЫЕ И ХРАНЕНИЕ ДАННЫХ
Электронно-цифровые машины
Представления символов
Хранение и кодирование целых чисел
Кодирование дробных чисел
Десятичные числа в двоичном коде (BCD)
ЦИФРОВАЯ ЛОГИКА, АРИФМЕТИКА И ПРЕОБРАЗОВАНИЯ
Логика и арифметика микроконтроллера
Логические инструкции
Микроконтроллер
Битовые манипуляции и вспомогательные операции
Двоичная арифметика без знака
Двоичная арифметика со знаком
Преобразование формата данных
ЦЕПИ И ЛОГИЧЕСКИЕ ВОРОТА
Цифровые схемы
Возвращение к диоду
Транзистор
Логические ворота
Транзисторно-транзисторная логика 9 0093 Другие семейства логики TTL
Логические вентили CMOS
КОМПОНЕНТЫ СХЕМЫ
Источники питания
Синхронизированные логические схемы и триггеры
Часы
Делители и счетчики частоты
Мультиплексоры и демультиплексоры
Устройства ввода
MICROCHIP PIC Архитектура
Микроконтроллер PICMicro
MID PIC RANGE PIC АРХИТЕКТУРА Архитектура и дизайн процессора

Основные характеристики среднего уровня
ЦП среднего уровня и набор инструкций
Хранение данных EEPROM
Организация памяти данных
Модули ввода-вывода среднего уровня и периферийные модули
ПРОГРАММИРОВАНИЕ PIC: ИНСТРУМЕНТЫ И ТЕХНИКИ
Microchip’s MPLAB
Интегрированная среда разработки
Симуляторы и отладчики
Программисты
Программное обеспечение PIC
Псевдо-инструкции
ОСНОВНЫЕ НАПРАВЛЕНИЯ ПРОГРАММИРОВАНИЯ: ВХОД И ВЫХОД
Шаблон программирования 16F84A
Представляем 16F84A Простые схемы и программы
A
Программирование семисегментной светодиодной платы

ПРЕРЫВАНИЯ
Прерывания на 16F84
Источники прерываний
Обработчики прерываний
Программирование прерываний
Примеры программ
ТАЙМЕРЫ И СЧЕТЧИКИ
Модуль таймера 16F84
Задержки с использованием Timer0
Timer0 в качестве счетчика
Программирование таймера0
Сторожевой таймер
Примеры программ
И ПРОГРАММИРОВАНИЕ Характеристики и архитектура ЖК-дисплея

Взаимодействие с HD44780
Набор инструкций HD44780
Программирование ЖК-дисплея
Примеры программ
СВЯЗЬ
Обзор связи PIC
Последовательная передача данных
Параллельная передача данных
Последовательное программирование PIC «в свободном стиле»
PIC на основе протокола Последовательное программирование
Примеры программ
ПРОГРАММИРОВАНИЕ ДАННЫХ EEPROM
PIC Внутренняя память EEPROM
Устройства EEPROM и интерфейсы
Примеры программ
АНАЛОГОВЫЕ К ЦИФРОВЫМ И ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ
A / D преобразователи
A / D Integrated Circuits
PIC On Board A / D Hardware
В реальном времени C locks
Примеры программ
ПРИЛОЖЕНИЕ A: ЦВЕТОВЫЕ КОДЫ РЕЗИСТОРА
ПРИЛОЖЕНИЕ B: СОЗДАНИЕ СОБСТВЕННЫХ ПЛАТ
ПРИЛОЖЕНИЕ C: НАБОР ИНСТРУКЦИЙ СРЕДНЕГО ДИАПАЗОНА
ПРИЛОЖЕНИЕ D: ДОПОЛНИТЕЛЬНЫЕ ПРОГРАММЫ
УКАЗАТЕЛЬ

Как лучше всего научиться программированию микроконтроллеров? : robotics

Хотя лично мне AVR больше нравится, для начала я бы порекомендовал вам ознакомиться с PIC.Некоторые ссылки:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=82

Обратите особое внимание на темы «Начало работы с PIC» и «Начало работы с MPLAB» здесь. (MPLAB — это бесплатная IDE для программирования микроконтроллеров, которую люди, которые делают PIC, раздают бесплатно.)

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

Книги Myke Predko , как правило, очень простые, для начинающих. Пролистайте несколько его книг и посмотрите, какая из них вам больше нравится.

Вам также следует прочитать лист данных для любого PIC, с которого вы хотите начать. (Их можно бесплатно загрузить с веб-сайта производителя.) PIC 12C508 / 12C509 — хороший вариант для начинающих. Если нет местного магазина электроники, который их продает, вы можете сделать заказ в Digikey или в любом другом интернет-магазине запчастей.Возможно, вам придется обратиться в местную радиорубку за резисторами, конденсаторами и т. Д.

Одна вещь, которую следует учитывать для начинающих, — это использовать проволочную обмотку вместо макета. Макетная плата менее интуитивно понятна, чем подключение провода между точками A и B. Эмм … вы знаете, если подумать, возьмите удар и узнайте о макетах. Это легко, и рано или поздно вам придется их выучить. (По общему признанию, готовый набор для разработки часто избавит вас от необходимости использовать либо …)

Поскольку вы занимаетесь робототехникой, вы захотите узнать о схемах привода шаговых двигателей, H-мостах и ​​т. Д.Я бы порекомендовал вам НЕ бросаться в эти вещи сразу. Силовая электроника тонкая, а ваши микроконтроллеры вкусны с кетчупом.

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *