Atmel Studio
Интегрированная среда разработки (IDE) от компании Atmel для разработки приложений под микроконтроллеры ARM Cortex-M и AVR. Freeware
AVRDUDE
Консольная программа для считывания, изменения и записи содержимого памяти микроконтроллеров архитектуры AVR, применяющая технологию внутрисхемного программирования. Есть русифицированные графические оболочки. Freeware
WinAVR
Мощная среда разработки с открытым исходным кодом, созданная с целью написания программ для микроконтроллеров серии AVR от компании Atmel. Freeware
BASCOM-AVR
Среда разработки программного кода для микроконтроллеров серии AVR компании Atmel на языке, подобном стандартному Бейсику. Freeware (бесплатная с ограничением на код 4 кБ) и Shareware
CodeVisionAVR
IDE для AVR микроконтроллеров. Из основных достоинств CodeVisionAVR можно отметить то, что он не слишком сложен для самостоятельного освоения, поддерживает все многочисленное семейство микроконтроллеров AVR, формирует емкий и результативный программный код. Платная, есть бесплатная Evaluation-версия с ограничением на код 4 кБ.
VMLAB
Инструмент для разработки и отладки программного кода, а также моделирования работы радиотехнических устройств на базе AVR микроконтроллеров. Freeware
MPLAB
Единая бесплатная интегрированная среда разработки для контроллеров производства Microchip
MPIDE
Среда разработки, выполненная на базе открытой системы Arduino IDE и предназначенная специально для контроллеров PIC32 от компании Microchip Technology.
WinPic800
Небольшой, но весьма эффективный бесплатный программный пакет для прошивки PIC-микроконтроллеров различных серий. Есть русский язык.
PICPgm
Простое программное обеспечение для прошивки PIC-микроконтроллеров, отличающееся стабильностью, качеством и скоростью программирования. Freeware
CooCox CoIDE
Бесплатная высокоинтегрированная программная среда, предназначенная для разработки кода микроконтроллеров архитектуры ARM и др.
Keil uVision
Среда разработки, представляющая собой набор утилит для выполнения полного комплекса мероприятий по написанию программного обеспечения для микроконтроллеров различных семейств. Платная, но есть демоверсия с рядом ограничений, в т.ч. на размер кода — не более 32 КБ.
IAR Embedded Workbench
Многофункциональная среда разработки приложений на языках C, C++ и ассемблере для целого ряда микроконтроллеров от различных производителей. Среда разработки платная, но бесплатная версия с ограничениями на размер кода в зависимости от микроконтроллера.
Flowcode
Один из передовых графических языков программирования для микроконтроллеров. Поддержка русского языка. Платная, но есть бесплатная версия с ограничениями и только для микроконтроллеров PIC.
Algorithm Builder
Бесплатная графическая среда программирования для разработки приложений под микроконтроллеры с архитектурой AVR от отечественных разработчиков.
MikroC
Мощнейшая среда разработки программ для микроконтроллерных устройств, включающая редактор кода, компилятор, отладчик, программные и аппаратные библиотеки, использующие готовые функции. Программа платная. Есть бесплатная версия с ограничениями.
mikroPascal
Мощная среда разработки приложений на языке Паскаль для различных архитектур микроконтроллеров. Программа платная. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).
mikroBasic
Среда разработки программ на языке Бейсик для микроконтроллеров различных производителей. Программа платная от 199$. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).
MicroCode Studio Plus
Программа для создания и отладки кода, написанного на языке программирования BASIC, под PIC-микроконтроллеры. Программа платная 50$. MicroCode Studio – облегченный, бесплатный вариант с ограничением на кол-во строк кода.
IC Prog
Одна из самых популярных бесплатных оболочек для программирования, поддерживающая огромное число микроконтроллеров, ППЗУ и адаптеров различной конструкции. На русском языке.
Pony Prog 2000
Нетребовательная и многофункциональная программа — программатор, предназначенная для работы с микроконтроллерами и постоянными запоминающими устройствами с последовательным доступом различных производителей. На русском языке.Freeware.
SinaProg
Графическая оболочка для программы AVRdude, включающая в себя простой и функциональный AVR fuse-калькулятор. Freeware.
AVR8 Burn-O-Mat
Графическая оболочка для популярной программы AVRDUDE, использующейся при прошивке микроконтроллеров компании Atmel. Freeware.
Khazama AVR Programmer
Небольшая программа, созданная с целью быстрой прошивки микроконтроллеров Atmel AVR. Freeware.
UniProf
Простой, бесплатный, универсальный программатор для микроконтроллеров семейства AVR.
eXtreme Burner — AVR
Бесплатное программное обеспечение, предназначенное для прошивки AVR-микроконтроллеров.
Code Composer Studio
Интегральная среда проектирования, предназначенная для создания программного обеспечения, использующегося в процессорах и микроконтроллерах компании Texas Instruments Incorporated. Программа платная, бесплатная версия CCS-FREE с рядом ограничений.
TivaWare
Набор высококачественных, полноценных библиотек для контроллеров семейства TIVA от Texas Instruments. Freeware.
FastAVR
Один из лучших компиляторов Basic-подобного языка для серии восьмибитных микроконтроллеров AVR.
Atollic TrueSTUDIO
Интегрированная среда разработки программ для ARM-процессоров, включающая в себя GNU компилятор и отладчик. Среда разработки платная, но есть бесплатная версия TrueSTUDIO Lite с рядом ограничений.
Sourcery CodeBench
Самодостаточная интегрированная среда разработки, предназначенная для создания приложений на C/C++ для IA32, ColdFire, Power, MIPS, ARM и некоторых других архитектур микроконтроллерных устройств. Платная 400$ (есть 30-дневная ознакомительная версия)
CODESYS
Программно-инструментальный комплекс, основанный на стандарте IEC 61131-3 и предназначенный для программирования промышленных контроллеров и компьютеров. На русском языке. Freeware.
Flash Magic
Бесплатное приложение для программирования микроконтроллеров компании NXP Semiconductors
STEP 7-Micro/WIN
Простое и удобное программное обеспечение, созданное для работы с программируемыми контроллерами серии SIMATIC S7-200 компании Siemens AG. Платная.
PIC Simulator Studio
многофункциональное и высокопроизводительное программное обеспечение, предназначенное в первую очередь для симуляции в реальном времени цифровых и аналого-цифровых схем, ядром которых выступает микроконтроллер PIC micro. Бесплатное
PIC Simulator IDE
Программа, предназначенная для отладки кода контроллеров microPIC компании Microchip Technology. Платная от 39 евро (есть ознакомительная версия с ограничениями)
4D Workshop IDE
Специализированная программная среда, предназначенная для работы с микропроцессорами в графических контроллерах и готовых дисплейных модулях компании 4D Systems. Freeware.
Программирование микроконтроллеров семейства PIC начинающим
Первые микроконтроллеры появились в 60-х годах. Автоматизированные системы до этого времени обычно строились на основе реле. В принципе, релейные системы исполняли требуемую функцию вполне успешно.
Однако главным недостатком релейных схем являлись сложности модернизации на случай изменения функциональности. Для инженеров проще было собрать новую релейную систему, нежели модифицировать уже существующую.
В этом смысле программируемый логический контроллер оказался куда более предпочтительным устройством. Теперь программируемые логические контроллеры распространены повсеместно. Однако тонкости программирования таких систем остаются малопонятными для многих радиолюбителей.
Рассмотрим этот важный момент – как программировать контроллер на примере широко известной серии ПЛК (PLC — Peripheral Interface Controller): продукта компании Microchip Technology Inc.
Общий взгляд на устройства ПЛК
Системы на базе микропроцессора (микроконтроллеры) выступают в качестве программируемых электронных устройств, для которых специально разработаны языки программирования.
Благодаря таким языкам программирования, существенно облегчается процесс программирования контроллеров. Язык высокого уровня, созданный для ПЛК, обеспечивает простоту, эффективность и дружелюбную среду для пользователя.
Микропроцессор фактически можно рассматривать электронной схемой, поддерживающей обработку команд, хранящихся в системной памяти. Эта же схема работает с инструкциями — арифметическими и логическими, использует внешние устройства:
- память,
- входные порты,
- выходные порты.
В свою очередь, микроконтроллер представляет собой интегральную схему, в составе которой присутствуют:
- микропроцессор,
- память программ и данных,
- генератор тактовых импульсов,
- интерфейсы ввода и вывода,
- таймеры,
- аналого-цифровые преобразователи,
- внешние коммуникационные порты и другие схемы.
Макрос языка высокого уровня — это инструкция, которая является сокращённой строкой, содержащей несколько инструкций. Запись программы с повторяющимися действиями (схожестью инструкций) при использовании макросов значительно сокращается.
PIC18F4550
Программируемые микроконтроллеры используются в составе современной электроники повсеместно. Умение работать с этим функциональным инструментом открывает широкие горизонты
Эффективность программы на основе макросов столь же эффективна, как и запись программы на языке «C». Компилятор отвечает за создание соответствующих подстановок для генерации кода, который передаётся в память программы микропроцессора или микроконтроллера.
Программирование широко распространённых микроконтроллеров PIC12 / PIC16
Микроконтроллеры PIC программируются с использованием проприетарного последовательного протокола. Поэтому конечному пользователю недостаточно просто взять и подключить микросхему контроллера PIC напрямую к любому «стандартному» интерфейсу.
Однако технические требования относительно программирования по времени достаточно слабы. Этот фактор даёт возможность использовать некоторые выводы параллельного или последовательного порта компьютера для генерации программной последовательности с помощью программного обеспечения.
Помимо рабочего напряжения, микроконтроллерам требуется ещё три сигнала:
- Программируемое напряжение (около 13В).
- Таймер программирования (ICSPCLK).
- Данные (ICSPDAT).
Поскольку большинство выпускаемых экземпляров PIC допускают программируемое напряжение несколько ниже значения, указанного спецификацией, открывается возможность использования уровней сигналов ± 12В, присутствующих на интерфейсе последовательного порта настольного ПК. Таким образом, «записать» PIC вполне допустимо без необходимости подключения дополнительного источника питания.
Преобразование уровней допускается выполнять при помощи нескольких компонентов. Однако представленная ниже упрощённая схема, обладает некоторыми ограничениями.
В частности, позволяет считывать и программировать непосредственно PIC устройства.
Нет никакой гарантии, что эта схема способна обеспечить программирование всех контроллеров, поскольку не соответствует полной спецификации программирования.
ISD1700
Схема принципиальная упрощённого программатора микроконтроллеров серии PIC и обозначенные линии подключения интерфейсов RS232 / ISSP
Внутрисхемное программирование микроконтроллера PIC
Разъём внутрисхемного программирования (ICSP) предоставляет возможность запрограммировать микроконтроллер непосредственно в рамках прикладной схемы. Этот вариант видится особенно полезным в домашних условиях или в другой не специальной среде, где по каким-либо причинам требуется повторное изменение программированием PIC и тестирование схемы.
Применение разъёма ICSP позволяет избежать рисков при перемещении микроконтроллера PIC между различными гнездами (например, в случае изгиба контактов или воздействия на микроконтроллер электростатических разрядов). Также работа с разъёмом ICSP обеспечивает экономию времени.
PIC K150 ICSP
Вот такой вариант ICSP соединителя вполне подойдёт для подключения линий связи на случай выполнения программирования микроконтроллера серии PIC12/PIC16
Следует внимательно использовать интерфейс и кабель ICSP, принимая во внимание, что схема не должна нарушать ход сигналов программирования. Другими словами – точное соответствие месту назначения сигналов необходимо выполнять безукоризненно.
Основные условия программирования:
- время переключения напряжения программирования «0 – 13В» составляет несколько микросекунд;
- полный размах напряжения сигналов таймера и данных достигается в течение одной микросекунды;
- вывод сигнала PGM остаётся низким всё время программирования.
Некоторые микроконтроллеры PIC требуют применения напряжения программирования до подачи рабочего напряжения. В этом случае напряжением программирования управляют через модуль программатора. Самый простой способ выполнить первые два условия — не использовать корреспондирующие выводы в цепях схемы. Если необходимо, следует использовать отладчик.
Рекомендации относительно процедуры программирования
Не рекомендуется подключать активные цепи к линии внешнего (основного) сброса (MCLR – Microcontroller Line Reset).
Если сигнал MCLR используется для сброса PIC, следует устанавливать резистор номинальным сопротивлением более 56 кОм между выводами MCLR и подачи напряжения питания.
Рекомендуется в цепь резистора включать конденсатор небольшой ёмкости — менее 100 пФ со смещением на землю (вывод GND).
Сигнальные выводы программирования должны исключать наличие индуктивной или ёмкостной нагрузки. Когда рабочее напряжение питания берётся от модуля программатора, требуется изолировать вывод питания PIC от остальной части прикладной схемы в процессе программирования.
TL866II USB
Схемные доработки программатора микроконтроллера, рекомендуемые с целью обеспечения более качественного процесса программирования устройства
Этот вариант может иметь место, если схема содержит собственный стабилизатор напряжения питания и оснащается развязывающим конденсатором большой ёмкости. Модуль программатора, предназначенный под напряжение питания 3,3В, не в состоянии заряжать конденсатор достаточно быстро, а для программирования PIC требуется не менее 4,5В.
Между тем вариант изолирования можно исключить, если в схеме используется диод Шоттки. Чтобы удерживать вывод перевода микроконтроллера в режим программирования (PGM) на низком уровне, рекомендуется подключать этот вывод к земле через резистор номиналом от 2,2 кОм до 10 кОм.
Всегда рекомендуется таймер включения питания вносить в «слово» конфигурации. Задержка таймера более 40 мс даёт достаточно времени для стабилизации напряжения питания перед началом любой операции. Такой шаг позволяет избежать непреднамеренного выполнения программы до входа в режим программирования.
Во время программирования остальные контакты порта остаются в режиме ввода — имеют высокий импеданс. Используемой схемой необходимо обрабатывать такое состояние по возможности неактивным способом. Чтобы избежать нежелательных «побочных эффектов», следует рассмотреть возможность дополнения подтягивающими резисторами.
Для обеспечения повторного программирования микроконтроллера PIC в условиях напряжения питания ниже 4,5В, область памяти необходимо отключить от защиты. Это обусловлено применением «Chip Erase», единственного способа удаления кода или защиты данных, которого требуют практически все микроконтроллеры PIC с напряжением питания выше 4,5В.
Сигналы ICSP соответствующие контактам PIC 12Fxxx / 16Fxxx
Число ниже аббревиатуры сигнала соответствует выходу разъема ICSP модуля программатора. Для использования модуля с тестовыми платами сторонних производителей требуется адаптер.
АДАПТЕР
Следует обратить внимание: разъём ICSP этого модуля программатора имеет различный порядок сигналов по сравнению с другими программаторами микроконтроллеров PIC
Следующие схемы показывают, как подключать сигналы программирования к микроконтроллерам PIC 12Fxxx / 16Fxxx:
ARDUINO UNO
Схемы, определяющие порядок подключения сигнальных проводников, участвующих в процедуре чтения/записи данных микроконтроллеров разной конфигурации
Фирменные средства программирования
Существует солидная группа фирменных программаторов для микроконтроллеров семейства PIC. Наиболее известные аппаратные средства:
- REAL ICE
- Pickit 1-2-3
- IC PROG
- ICD 2-3-4
Характерные отличия отмеченных программаторов – устройства обладают не просто классическими функциями чтения/записи. Фирменным программаторам присущ целый ряд расширенных функций, включая полный контроль содержимого памяти и стёка.
На основе информации: Uolsinectis
PIC Урок 1. Знакомство с семейством PIC
- Урок 1
- Наконец-то сегодня нашлось время познакомить вас с ещё одним семейством микроконтроллеров – это микроконтроллеры PIC.
- Данные микроконтроллеры также являются очень известными, устанавливаются во многие устройства и давно уже снискали у радиолюбителей очень сильный интерес.
- Разработчиком данного семейства является компания Microchip, которая также ялвяется очень известной и её продукция востребована по всему миру.
Изучение данной серии контроллеров является очень нелёгким вопросом, я этим заниматься начал уже давно, но нормально разобрался с линейкой только сейчас. Последнее время я немного ускорил процесс изучения микроконтроллеров PIC благодаря вашим просьбам в группах и чатах, на которые я не мог не откликнуться.
Также к тому, чтобы поделиться своими знаниями в области программирования данной линейки, меня подтолкнуло то, что я видел много блогов, уроков (в том числе и видео) очень хорошего качества по контроллерам PIC именно с использованием языка ассемблер. А вот на языке C уроков очень мало, что подчёркивает их востребованность.
Поэтому замечу, что программировать МК PIC мы будем именно на языке C. Какую мы выберем среду программирования и компилятор, мы решим чуть позже, а пока же в данном уроке нас ждёт краткое знакомство с самими контроллерами, с их архитектурой и их разновидностями.
Разновидностями контроллеров мы будем считать их деление по архитектуре. Примем за основу разрядность их ядра.
Например, те контроллеры AVR, с которыми мы до сих пор работаем, являются 8-битными, а контроллеры STM, которые мы изучаем – 32-битными.
Вот и контроллеры PIC также делятся по битности.
Первая линейка – это 8-битные контроллеры PIC. Наименование их моделей начинается с префикса PIC10/PIC12/PIC16.
Данная линейка также делится на 3 семейства.
1. BASELINE – данная архитектура присутствует у контроллеров PIC10. От более мощной серии она отличается количеством выводов (от 6 до 28), дешевизной.
2. MID-RANGE – данную архитектуру имеют ядра микроконтроллеров PIC12/PIC16. Количество выводов в данной серии увеличено (от 6 до 64), стоят они несколько дороже, зато имеют помимо 35 машинных инструкций, поддерживаемых серией BASELINE, ещё 14 дополнительных инструкций (оптимизированных под компилятор языка C).
Также у данной серии производительность увеличена на 50%, они имеют более глубокий и улучшенный аппаратный стек, увеличенный объём памяти и некоторые прочие прелести, с которыми мы познакомимся в дальнейшем, так как, скорее всего, мы с данной серии и начнём процесс изучения программирования микроконтроллеров PIC.
3. 8-битовые микроконтроллеры PIC18 – это улучшенная серия контроллеров, здесь на борту много другой периферии, количество выводов от 18 до 100, производительность 16 MIPS, поддержка технологии NanoWatt, наличие программироуемого генератора.
Вторая линейка – это 16-битные контроллеры PIC. Они имеют префикс PIC24F и PIC24H. Это уже более мощные контроллеры.
В отличие от первой линейки, машинная команда выполняется уже не за 4 такта генератора, а за 2.
Также периферия еще более расширена по разновидностям шин, прямой доступ к памяти DMA (у PIC24H), расширенный набор инструкций. Также есть очень много других особенностей.
Третья линейка – это 32-битные контроллеры. Префикс у них уже PIC32. Частота тактирования таких контроллеров до 120 МГц, а у новой серии MZ – до 200 и даже выше.
У меня, например, есть отладочная плата, на которой устрановлен контроллер PIC32MZ2048EFH064, у которого тактовая частота составляет 252 мегагерца. Также здесь ещё более увеличена производительность ядра.
Данное семейство построено на ядре MIPS32®, которое также кроме высокой производительности отличается ещё и низким потреблением энергии.
Вообщем, вот такие вот краткие характеристики существующих на данный момент контроллеров PIC. Если брать по наименованиям, то наименований очень много, на любой, как говорится, вкус.
Также, как и рассмотренные, а также рассматриваемые нами контроллеры AVR и STM32, контроллеры PIC работают приблизительно по той же схеме.
Сочиняется программа, собирается в машинный код, понятный арифметическо-логическому устройству контроллера, загружается (прошивается или заливается) в контроллер и затем обеспечивает работу по определённому алгоритму.
Основной интерфейс, используемый для прошивки данных контроллеров – это ICSP, предназначенный для внутрисхемного программирования. Подробнее с ним мы познакомимся, когда будем прошивать данные контроллеры.
Давайте немного разберёмся с организацией памяти в контроллерах PIC. Так как мы начнём изучение семейства PIC с более простых 8-битных (принцип от простого – к сложному ведь не отменял никто), то и организацию памяти мы посмотрим у данной серии.
Сначала посомтрим блок-схему контроллера на примере МК PIC16F84A (нажмите на картинку для увеличения изображения)
В левом верхнем углу сразу бросается в глаза модуль памяти FLASH, в которой обычно хранится программа контроллера (прошивка). А в правом верхнем углу мы видим память EEPROM, которая уже исользуется для хранения данных.
Эти два вида памяти являются энергонезависимыми и после отклчения и сброса контроллера не стираются.
Но данная память не является быстрой, поэтому код при старте программы распределяется уже в память RAM (ОЗУ), которая уже является быстродействующей и предназначена для функционирования контроллера при работе. Поэтому данную память мы уже рассмотрим несколько поподробнее.
Оперативная память контроллера PIC делится на память программ и память данных.
Вот так организована память программ у контроллера PIC16F84A
Микроконтроллеры данной серии имеют счётчик команд, способный адресовать 8К x 14 слов памяти программ и 14-разрядную шину данных памяти программ. Вся память программ разделена на 4 страницы по 2 килослов каждая (0000h-07FFh, 0800h-0FFFh, 1000h-17FFh, 1800h-1FFFh).
Ну это общая информация, поэтому у тех контроллеров, у которых память небольшая перемещение между данными страницами приведёт к циклической адресации. Поэтому размер памяти того контроллера, который мы хотим программировать, мы обязаны знать твёрдо.
В общем случае память программ состоит из счётчика команд, стека нескольких уровней, память для хранения векторов прерываний, а также внутренней памяти программ.
Также немного познакомимся с организации оперативной памяти, отведённой под хранение данных.
Память данных разделяется на регистры общего назначения и регистры специального назначения. Посмотрим, как организована память данных контроллера PIC16F84A
Регистры специального назначения (SFR) – это регистры, которые предназначены для хранения строго отведённых величин и имеют определённые имена. С ними мы будем знакомиться постепенно, когда будем писать какой-то исходный код, который будет широко их использовать.
Регистры общего назначения (GPR) – это ячейки памяти, которые имеют только адреса и предназначены они для хранения любых данных.
Также из приведённого выше рисунка мы видим, что у нашего контроллера память данных разделена на 2 страницы (или банка) переход между которыми осуществляется посредством установки определённых битов в регистре STATUS. Поэтому данный регистр присутствует в обеих банках и обратиться к нему мы можем в любой момент, чтобы сменить текущую страницу памяти.
Адресация может быть как прямая, так и косвенная или относительная, когда адрес отсчитывается относительно текущего адреса. С этим мы возможно не будем знакомиться, так как такая задача возникает у программистов, которые пишут программы на ассемблере.
Соответственно, у каждого контроллера кроме памяти существует много чего ещё интересного, в том числе порты ввода-вывода. Наши контроллеры PIC – также не исключение. Посмотрим назначение ножек контроллера PIC16F84A
У данного контроллера два порта – порт A и порт B. Из порта A наружу выведены 5 ножек – RA0-RA4, а из порта B – все 8 ножек RB0-RB7.
Также ножки портов могут иметь и другое назначение в зависимости от того, как мы их сконфигурируем. Наример ножка 6 или RB0 может в любой момент превратиться в ножку для захвата внешних прерываний, а ножка 3 или RA4 – стать ножкой для тактирования таймера от внешнего генератора.
Тактирование МК PIC также может осуществляться как от внешнего генератора, так и от кварцевого резонатора, от внутреннего резистора, а также существует ещё несколько вариантов, которые поддерживают не все контроллеры данного семейства. На практике как правило используется тактирование от кварцевого резонатора. Скорее всего, мы также последуем данной традиции в наших дальнейших занятиях.
Думаю, на этом мы закончим знакомство с контроллерами PIC. Знакомство получилось кратким, но на первое время нам и этого хватит за глаза. С более расшифрованной информацией мы столкнёмся, когда будем сочинять наши программы.
Так что ждите следующих занятий, которые обещают быть очень интересными.
Мы познакомимся сначала с установкой среды и компилятора, изучим, как с ними работать, какие тонкости программирования присутствуют в настройках различной периферии, а также в работе с ней.
- Программирование МК PIC Следующий урок
- Смотреть ВИДЕОУРОК (нажмите на картинку)
-
Примеры программирования микроконтроллеров
Новостная лента
Microchip расширяет экосистему Arduino-совместимой отладочной платформы chipKIT | ||
![]() |
Компания Microchip сообщила о расширении экосистемы отладочной платформы chipKIT. В состав Arduino-совместимой платформы chipKIT вошла высокоинтегрированная отладочная плата с Wi-Fi модулем и плата расширения для управления электродвигателями, разработанные компанией Digilent. Подробнее >>> | |
�сточник: http://www.rlocman.ru | Просмотров: 28590 | Дата добавления: 02.10.2014 |
MicroView — супер миниатюрная Arduino-совместимая отладочная плата СЃ OLED дисплеем | ||
![]() |
РќР° портале Kickstarter представлен проект супер миниатюрной отладочной платформы Arduino, выполненной РІ форм-факторе 16-выводного РєРѕСЂРїСѓСЃР° DIP Рё имеющей встроенный OLED дисплей СЃ разрешением 64×48 точек. Несмотря РЅР° то, что отладочная плата является полностью завершенным решением, РѕРЅР° может устанавливаться РЅР° макетную плату или непосредственно впаиваться РІ печатную плату для расширения функционала Рё управления внешней периферией. Подробнее >>> | |
�сточник: http://www.rlocman.ru | Просмотров: 27934 | Дата добавления: 17.04.2014 |
Размеры самого миниатюрного в мире ARM-микроконтроллера Freescale сократила еще на 15% | ||
![]() |
Freescale Semiconductor совершила новый технологический прорыв, добавив Рє семейству Kinetis самый миниатюрный Рё энергоэффективный РІ РјРёСЂРµ 32-разрядный микроконтроллер Kinetis KL03 СЃ архитектурой ARM. Основанный РЅР° микроконтроллере предыдущего поколения Kinetis KL02, новый РїСЂРёР±РѕСЂ получил дополнительную периферию, стал намного проще РІ использовании, Рё РїСЂРё этом сократился РІ размерах РґРѕ 1.6 × 2.0 РјРј. Подробнее >>> | |
�сточник: http://www.rlocman.ru | Просмотров: 1871 | Дата добавления: 17.04.2014 |
Как вырастить микросхему с помощью белка | ||
![]() |
Без кремния немыслимо производство полупроводников, где он буквально нарасхват. При этом, естественно, большое значение имеют чистота вещества и строение кристаллов кремниевых соединений. �сследователи из Университета Лидса (Великобритания) предлагают способ выращивания таких кристаллов с помощью молекулярной биологии. По их мнению, это позволит создавать электронные микросхемы более высокого качества. Подробнее >>> | |
�сточник: http://www.newscientist.com/ | Просмотров: 3019 | Дата добавления: 06.03.2014 |
Открытие нового раздела на сайте MCULAB.RU | ||
![]() |
На нашем сайте открыт новый раздел. Раздел посвящён моделированию различных схем по сопряжению микроконтроллеров и датчиков. Освещается схемотехника подключения к МК внешних устройств. В данной области до сих пор отсутствует систематизация, поэтому сделана попытка создать банк типовых решений, который в дальнейшем может дополняться, уточняться, расширяться. Подробнее >>> | |
�сточник: / | Просмотров: 129718 | Дата добавления: 04.02.2014 |
На сайте представлены примеры программирования, которые будут полезны как для опытного разработчика схем на микроконтроллерах, так и для новичка.
Особо рассматривается программирование микроконтроллеров для начинающих пользователей. Программные примеры программирования разбиты на различные разделы.
Основную массу составляют примеры программирования микроконтроллеров avr и микроконтроллеров microchip.
Пользователю предлагается познакомиться с различными примерами программирования и различными средами программирования: MicroLab, AVRStudio, MikroC, FloweCode.
Представлены схемы на микроконтроллерах ведущих производителей: PIC и AVR. Рассматривается огромное количество схем для начинающих разработчиков. Если Вы начинающий радиолюбитель, то для Вас мы приготовили раздел микроконтроллеры для начинающих.
Современные микроконтроллеры относятся к классу микропроцессорных устройств.
В основе принципа действия таких элементов лежит исполнение последовательного потока команд, называемого программой.
Микроконтроллер получает программные команды в виде отдельных машинных кодов.
Р�звестно, что для создания Рё отладки программ, машинные РєРѕРґС‹ РїРѕРґС…РѕРґСЏС‚ плохо, так как трудно воспринимаются человеком. Ртот факт привел Рє появлению различных языков программирования Рё РѕРіСЂРѕРјРЅРѕРіРѕ количества различных компиляторов.
В основе языков программирования микроконтроллеров лежат классические языки для компьютеров.
Единственным отличием становится ориентированность на работу со встроенными периферийными устройствами. Архитектура микроконтроллеров требует, например, наличия битово-ориентированных команд.
Последние выполняют работу с отдельными линиями портов ввода/вывода или флагами регистров. Подобные команды отсутствуют в большинстве крупных архитектур.
Например, ядро ARM, активно применяемое в микроконтроллерах, не содержит битовых команд, вследствие чего разработчикам пришлось создавать специальные методы битового доступа.
Примеры программирования микроконтроллеров будут представлены на хорошо всем известном языке Си.
А перед тем как постигать азы программирования микроконтроллеров и схемотехнику устройств на микроконтроллерах, авторам предлагается ещё раз вспомнить основы микропроцессорной техники, основы электроники, полупроводниковую электронику, аналоговую и цифровую схемотехнику, а так же азы аналогового и цифрового представления сигнала. Для тех, кому хочется получить новые знания в области современного программирования, можно будет познакомиться с графическим языком программирования LabView.
Выбор языка программирования зависит от множества факторов. В первую очередь, типо решаемых задач и необходимым качеством кода.
Если Вы ведёте разработку малых по объёму и несложных программ, то можно использовать практически любой язык.
Для компактного кода подойдет Ассемблер, а если ставятся серьезные задачи, то альтернативы С/С++ практически нет. Также необходимо учитывать доступность компилятора.
В итоге самым универсальным решением можно назвать связку Ассемблера и C/C++. Для простого освоения языков, можно воспользоваться примерами программ для микроконтроллера.
�спользование примеров программирования упростит и ускорит процесс освоения программирования микроконтроллеров.
Схемы на микроконтроллерах позволят начинающим разработчикам освоить тонкости проектирования, моделирования и программирования микроконтроллеров.
Программирование PIC16F876A. Собираем схему с плавно мигающим светодиодом
Эта статья направлена на новичков в программировании микроконтроллеров семейства PIC16 от Microchip. В нашем случае, я выбрал немного превосходящий микроконтроллер для таких задач, а именно — PIC16F876A. Программирование микроконтроллера будем производить в MPLAB IDE.
Цель работы: собрать схему, которая будет мигать светодиодом, внимание, с применением ШИМ.
И так, цель задачи обозначили. Теперь перейдем к реализации наших планов.
Часть 1. Железо
В первую очередь нам понадобятся компоненты, из которых мы будем собирать схему. А именно:
- Микроконтроллер PIC16F876A
- Рассыпуха к нему
- Светодиод
- Макетная плата
Светодиод можно взять любой по вкусу, какой Вам больше нравится. Макетную плату желательно иметь в наличии.
В понятие «рассыпухи» входят такие детали как: пара конденсаторов для кварца и конденсатор на выход модуля CPP (Для того что бы сгладить пульсации). Собранная схема выглядит следующим образом: Это типовое включение микроконтроллера, ничего нового я тут не придумывал.
Так же, для программирования микроконтроллера я пользуюсь программатором-отладчиком ICD2. Он подключается к компьютеру по USB и прекрасно работает как на системе Windows, так и на GNU/Linux. В нашем случае будем использовать родной MPLAB IDE в Windows.
Скрин в процессе разработки:
Часть 2. Программная
Светодиод подключаем на 1й модуль CPP (ШИМ). За настройку модуля в микроконтроллере отвечает регистр CPP1CON. Чтобы модуль у нас заработал, предварительно необходимо инициализировать таймер. Для режима ШИМ используется таймер TMR2.
За его конфигурацию отвечает регистр T2CON. Инициализация: movlw .
0 bcf STATUS, 5 movwf T2CON ; Помещаем в регистр T2CON — 0 bsf T2CON, 0 ; Устанавливаем бит T2CKPS0 (Предделитель) bsf T2CON, 2 ; Включаем таймер TMR2 битом TMR2ON
bsf T2CON, 3 ; Устанавливаем бит TOUTPS0 (Постделение)
На этом инициализация таймера закончена. Теперь при включении контроллера от будет служить источником для нашего ШИМ модуля. Инициализация ШИМ модуля происходит следующим образом:movlw 00101111b ; Подготавливаем конфигурацию movwf CPPCON ; Конфигурируем ШИМ
bsf CPPCON, 2 ; Включаем модуль ШИМ
Все, на этом инициализация закончена. Теперь мы можем помещать в регистр CPP1L число от 0 до 255, тем самым меняя скважность выходных импульсов. Полный исходник программы для прошивки нашего микроконтроллера: STATUS equ 03h TRISC equ 07h CPPCON equ 17h CPP1L equ 15h T2CON equ 12h counter equ 23h tmp equ 25h org 0 goto start start bsf STATUS, 5 movlw .0 movwf TRISC bcf STATUS, 5 movwf T2CON bsf T2CON, 0 bsf T2CON, 2 bsf T2CON, 3 movlw 00101111b movwf CPPCON bsf CPPCON, 2 movlw .0 movwf CPP1L movlw .255 movwf tmp decfsz tmp, 1 goto $+2 goto $+4 call delay10mS incf CPP1L, 1 goto $-5 movlw .255 movwf tmp decfsz tmp, 1 goto $+2 goto $+4 call delay10mS decf CPP1L, 1 goto $-5 goto $-16 delay10mS movlw .50 movwf counter loop call delay200uS decfsz counter goto loop return delay200uS movlw .100 addlw -1 btfss STATUS,2 goto $-2 return
end
Краткая заметка по командам, использованных в программе. equ — Присвоение имени на определенный адрес. goto — Переход программы на метку, либо определенную строку call — Вызов подпрограммы movlw — Поместить в регистр W, число movwf — Переместить из регистра W число bsf — Установить бит в регистре, в состояние 1 bcf — Установить бит в регистре, в состояние 0 addlw — Прибавить в регистр W число btfss — Проверить бит в регистре на 1 incf — Инкриминировать регистр (прибавить 1) decf — Декриминировать регистр (вычесть 1) decfsz — Вычесть 1 из регистра + проверка на 0 Задержки в программе откалиброваны на частоту кварцевого резонатора в 8мгц. Принцип работы программы. В начале, происходит инициализация регистров, затем настройка внутренних модулей микроконтроллера.
В переменной tmp мы можем задавать скважность, тем самым меняя максимальную яркость светодиода.
Далее реализована часть программы, которая отвечает за само мигание светодиода, с учетом использования ШИМ. Сначала, инкриминируя CPP1L до значения tmp мы заставляем светодиод медленно начать светиться, а затем делаем обратную операцию.
Часть 3. Финальная
Перед тем как прошивать Ваш контроллер, Вам необходимо установит биты конфигурации микроконтроллера. Без них, ничего работать не будет. И так: 1) WDT — выключаем. Это сторожевой таймер.
Предназначен для аппаратного сброса микроконтроллера в момент непредвиденного зависания. 2) LWP — выключаем. Это низковольтное программирование. Мы используем нормальный программатор, который подает на MCLR 13В.
3) Осцилятор: В данном случае мы имеем 8мгц. Значит ставим значение XT.
Часть 4. Бонусная
Видео для тех, кто еще не программировал/не собирал схемы, но очень хочет увидеть результат:
Часть 5. Информация
Микроконтроллер в цепи последовательного программирования (ICSP) с Microchip PIC и Atmel AVR | Lirtex — Технология на краю времени
Метки: AVR , Электроника , Embedded , ICSP , микроконтроллер , PIC
В цепи последовательного программирования является метод прямого программирования микроконтроллеров PIC и Atmel AVR в то время как они подключены к схеме, в отличие от программирования чипа впереди, и только после этого пайка его цепи. Есть много преимуществ для ICSP, а также некоторые важные соображения дизайна, которые я постараюсь выделить.
В схеме программирования имеет много преимуществ:
- Это сокращает цикл разработки — это действительно раздражает взять чип из платы каждый раз необходимо перепрограммировать, а это еще сложнее с SMD.
- Позволяет клиенту и обновления прошивки поле
- Калибровка системы в процессе производства или в сфере
- Назначение уникального идентификатора серийный номер продукта
Как подготовить схему для работы с ICSP?
Программист использует последовательный сигнализации схема для программирования чипов в цепи. Сигнализация осуществляется через программирование часов (PGC или ICSPCLK) и программирования данных (ПГД или ICSPDAT) контакты. Кроме того, MCLR / VPP вывод использоваться как сигнал высокого напряжения программирования или внимания индикатора на устройстве.
Везде, где приложение позволяет использовать выделенные контакты для ICSP. Это сэкономит вам много неприятностей. Не разделяя вывод как для ICSP и ввода / вывода, например, свести к минимуму подготовительные работы, который необходимо сделать, чтобы ICSP.
Часто, и особенно с низким устройства PIN-код, не представляется возможным выделить 3 необходимых контактов только для ICSP, а когда хотят их иметь двойной функциональностью.
В этом случае:
1. Изолировать Vpp от схемы с использованием диодов Schotkey и R / C. Примечание: в некоторых устройствах, например, PIC12F629, этот вывод будет определяться до 13 вольт программист при программировании устройства. Убедитесь, что все, что связано с выводом Vpp может выдержать это напряжение, или изолировать его с соответствующим резистор или диод Schotkey.
2. Изолировать ICSP_Clock и ICSP_Data от остальной части схемы. Изоляция методом является применение конкретного, к сожалению, означает, что нет готовых рецептов. Часто, резистивный изоляции работает отлично. Рекомендуемые значения резистор 1k до 10k.
3. Физически найти ICSP заголовок как можно ближе к запрограммировано чипа, уменьшить затухание.