Pic16: PIC16F630-I/ST, 8 Bit MCU, Flash, PIC16 Family PIC16F6XX Series Microcontrollers, 20 МГц, 1.75 КБ, 64 Байт

Содержание

PIC16F630-I/ST, 8 Bit MCU, Flash, PIC16 Family PIC16F6XX Series Microcontrollers, 20 МГц, 1.75 КБ, 64 Байт

Максимальное Напряжение Питания 5.5В
Минимальное Напряжение Питания
Количество Выводов 14вывод(-ов)
Уровень Чувствительности к Влажности (MSL) MSL 1 — Безлимитный
Стандарты Автомобильной Промышленности AEC-Q100
Количество I/O 12I/O
Скорость ЦПУ 20мгц
Стиль Корпуса Микроконтроллера TSSOP
Размер Памяти 1.75КБ
Размер Памяти RAM 64Байт
Линейка Продукции PIC16 Family PIC16F6xx Series Microcontrollers
Семейство Микроконтроллера PIC16
Серия Микроконтроллера PIC16F6xx
Вид монтажа
SMD/SMT
Высота 0. 9 mm
Длина 5 mm
Категория продукта 8-битные микроконтроллеры
Количество входов/выходов 12 I/O
Количество таймеров/счетчиков 1 Timer
Коммерческое обозначение PIC
Максимальная рабочая температура + 85 C
Максимальная тактовая частота 20 MHz
Минимальная рабочая температура 40 C
Напряжение питания — макс. 5.5 V
Напряжение питания — мин. 2 V
Подкатегория Microcontrollers — MCU
Продукт MCU
Рабочее напряжение питания 2 V to 5.5 V
Размер ОЗУ данных 64 B
Размер ПЗУ данных 128 B
Размер программной памяти 1. 75 kB
Размер фабричной упаковки 96
Разрешение АЦП No ADC
Серия PIC16F630
Серия процессора PIC16
Тип интерфейса RS-232, USB
Тип памяти программ Flash
Тип ПЗУ данных Flash
Тип продукта 8-bit Microcontrollers — MCU
Торговая марка Microchip Technology
Упаковка Tube
Упаковка / блок TSSOP-14
Ширина 4.4 mm
Ширина шины данных 8 bit
Ядро PIC16
Base Product Number PIC16F630 ->
Core Processor PIC
Core Size 8-Bit
ECCN EAR99
EEPROM Size 128 x 8
Errata http://www. microchip.com/mymicrochip/filehandler.a
HTSUS 8542.31.0001
Moisture Sensitivity Level (MSL) 1 (Unlimited)
Mounting Type Surface Mount
Number of I/O 12
Operating Temperature -40В°C ~ 85В°C (TA)
Oscillator Type Internal
Package Tube
Package / Case 14-TSSOP (0.173″», 4.40mm Width)
PCN Assembly/Origin http://www.microchip.com/mymicrochip/NotificationD
PCN Packaging http://www.microchip.com/mymicrochip/NotificationD
Peripherals Brown-out Detect/Reset, POR, WDT
Program Memory Size 1.75KB (1K x 14)
Program Memory Type FLASH
RAM Size 64 x 8
REACH Status REACH Unaffected
RoHS Status ROHS3 Compliant
Series PICВ® 16F ->
Speed 20MHz
Supplier Device Package 14-TSSOP
Voltage — Supply (Vcc/Vdd) 2V ~ 5. 5V
Вес, г 0.118

PIC16(L)F18313

13.06.2017

Новое семейство 8-разрядных микроконтроллеров PIC16F191xx для приложений с LCD, сенсорным вводом и батарейным питанием от Microchip Technology

 

Компания Microchip продолжает развивать линейку 8-разрядных микроконтроллеров PIC с независимой от ядра периферией. Главной особенностью микроконтроллеров PIC16F191XX является наличие контроллера LCD дисплеев c интегрированным DC/DC регулятором напряжения с накачкой заряда (charge pump), что позволяет поддерживать работу с LCD даже при пониженном напряжении питания. Отдельно стоит отметить 12-разрядный аналого-цифровой преобразователь со встроенным поствычислителем — ADCC (ADC with Computation). Данный модуль позволяет производить первичную обработку оцифрованных данных (усреднение, фильтрация и т.

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

 

Для работы с сенсорными кнопками в модуль ADCC интегрирован аппаратный емкостный делитель напряжения HCVD (Hardware Capacitance Voltage Divider). На базе этого модуля построена технология Metal Over Cap – организация работы сенсорных кнопок через металлический лист, с помощью которой детектируется прогиб металла порядка 10-100 мкм от нажатия. В данном случае сенсорные системы могут работать даже при жёстких климатических условиях, например через водный или грязевой слой на металлическом листе, что говорит об улучшенных параметрах чувствительности и помехозащищённости систем, построенных на базе HCVD.

 

По традиции, микроконтроллеры серии PIC16F191xx оснащены большим количеством независимой от ядра периферии: ячейками пользовательской логики CLC, генератором комплементарных сигналов CWG, модулями захвата/сравнения/ШИМ, температурным датчиком, компараторами, модулем ЦАП, таймерами с функцией аппаратного контроля HLT (Hardware Limit Timer) и т. д.

 

Микроконтроллеры PIC16F191xx доступны в корпусах с количеством выводов от 28 до 64, объемами Flash-памяти от 14 до 56К и SRAM от 1 до 4 К. Более подробно параметры контроллеров семейства PIC16F191xx представлены в таблице. 

 

Название Кол-во выводов Flash, кБ RAM, Б Доступные корпуса
PIC16F19155 28 14 1024 SOIC, SPDIP, SSOP, UQFN
PIC16F19156 28 28 2048
PIC16F19175 40 14 1024 UQFN, PDIP, TQFP
PIC16F19176 40 28 2048
PIC16F19185 48 14 1024 TQFP, UQFN
PIC16F19186 48 28 2048
PIC16F19195 64 14 1024 QFN, TQFP
PIC16F19196 64 28 2048
PIC16F19197 64 56 4096

 

Традиционно, для новых 8-разрядных микроконтроллеров PIC доступны две модификации с разными рабочими напряжениями: стандартное 2. 3 — 5.5 В (например PIC16F19155) и низковольтное 1.8 — 3.6 В (например PIC16LF19155). Ознакомиться с возможностями новых кристаллов можно при помощи отладочной платы Curiosity HPC и версий микроконтроллеров в корпусах SPDIP или DIP с количеством выводов только 28 или 40.

 

Читать новость на сайте производителя

Компилятор PIC16 C — CodeRoad



Я ищу хороший компилятор C для семейства PIC 16, работающий над Windows.

  • Несколько коллег используют bknudc

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

  • SDCC кажется хорошим, но похоже, что он все еще находится в бета-версии, и его нелегко настроить или иметь дело с ним.

  • Есть довольно много других вариантов, все они являются лучшими из доступных в соответствии с ними самими. Я нашел несколько форумов, обсуждающих эту тему, и никто, похоже, не согласен друг с другом. MikroC, CCS (дорого), HiTech, BoostC.

Я хотел бы иметь реальную информацию о том, что хорошо и что плохо.

Если я правильно понял, архитектура PIC16 на самом деле не является C-дружественной? Есть ли компилятор, который позволяет программисту работать в ANSI C? А как настроить достаточно хороший отладчик?

compiler-construction embedded pic mikroc
Поделиться Источник Gauthier     23 июня 2009 в 06:49

8 ответов


  • что такое хороший компилятор c

    я использую windows xp, что было бы хорошим компилятором c? я хочу выучить c, чтобы лучше понимать язык objective-c для iphone. у меня отличный опыт работы в php, так что, надеюсь, что-то будет иметь смысл пс: на какие разделы мне следует обратить больше внимания при изучении c в процессе. ..

  • Компилятор C# против C#

    Означает ли C# 6 Roslyn ? Это одно и то же C# и C# компилятор ? Существует много статей о C# и новых функциях C#, но что такое C# ? Это компилятор C# или мне нужно знать что-то еще об этом ? И как узнать, какую версию my visual studio использует для компиляции кода ? Я знаю, что, например, vs 2015…



10

Вы правы в своей оценке, что PIC16 на самом деле не является C-дружественным. Если вы хотите кодировать в C, вам гораздо лучше сделать это с помощью PIC18.
Микрочип выдает отличный и бесплатный IDE и компилятор под названием MPLAB для PIC18. Это действительно легко работать. Кроме того, семейство PIC18, как правило, более мощное, но имеет некоторые чипы с не намного большей площадью, чем у семейства PIC16.
Начинать разработку нового продукта с PIC16-не очень хорошая идея.

Поделиться shoosh     23 июня 2009 в 07:02



5

HI-TECH имеет компилятор C для PIC16, и они даже предлагают бесплатную версию.
HI-TECH C компилятор

Поделиться Louis Davis     23 июня 2009 в 23:53



4

Я считаю, что SDCC теперь имеет некоторую поддержку PIC16.

Поделиться Brandon E Taylor     23 июня 2009 в 07:07


  • Компилятор / преобразователь C/C++ в MATLAB

    Поскольку существует компилятор MATLAB для C, мне интересно, есть ли компилятор конвертера, который может преобразовать некоторые математические коды C/C++ в MATLAB? Я знаю, что многие возможности и функции в C/C++ недоступны в MATLAB, но, по крайней мере, для чисто математических кодов, есть ли…

  • Семейства pic16: самостоятельно изменять код

    На микрочипе PIC16 microcontroller у меня есть такая программа: off = 2; period = 10; while (1) { if (counter == 1) { switch something on; }elseif (counter == off) { switch something off; }elseif (counter == period) { counter = 1; } counter++; pause; } В коммуникационном модуле моего кода (не. ..



4

Я нашел, что хай-тек очень хорош. Я бы проголосовал за ответ Луиса, если бы у меня была лучшая репутация. Я также согласен с тем, что PIC18F-очень хорошая альтернатива. Ищите детали серии k, так как это более новые, лучшие и дешевые детали. Они также имеют очень низкую тягу тока (если это важно для вас).

Поделиться Brent     29 июля 2009 в 20:51



1

CCS компилируется для любого PIC из 12, 16,18 и выше. Это не бесплатно, но он делает адскую работу в качестве компилятора pic. (Бьет ASM в любой день для меня)

Поделиться Manuel Ferreria     08 июля 2009 в 00:51



0

Sourceboost BoostC-очень хороший компилятор C для серии PIC12/PIC16/PIC18. У них также есть компилятор BoostC++ и BoostBasic. Поставляется с fine IDE, имеет основные параметры моделирования. Мне очень нравится его синтаксис CCS и Microchip C18. Чувствует себя чище и менее загроможденным. Правда, это тоже не бесплатно, но лицензии стоят довольно дешево. Бесплатная / облегченная версия позволяет использовать 2 кб кода. С этим вы уже можете сделать многое.

Поделиться Unknown     09 июля 2009 в 13:38



0

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

Я провел некоторое сравнение компиляторов BKND и HiTECH C, и BKND, похоже, генерирует значительно лучший код. По крайней мере, в моем приложении это было необходимо для удовлетворения требований к скорости/пространству моего приложения на таком маленьком MCU.

Многие из причуд компилятора BKND (дополнительные типы данных и т. д.) Очень полезны для настройки вашего кода для работы на небольшом MCU. Стандартный C, который вы бы написали на ARM или x86, действительно не подходит для крошечного CPU с парой сотен байт RAM в любом случае.

Для больших чипов PIC (18, 24F и т. д.) Отлично подходит компилятор C, поставляемый Microchip.

Поделиться J. Peterson     29 июля 2009 в 02:46



0

Просто для завершения:

Есть действительно хороший компилятор (xc8) от Microchip. Компилятор поставляется в двух версиях:

Бесплатно и про

Код из бесплатной версии до 50% больше, чем в Pro -версии.
Xc8 отлично подходит для каждого 8-битного PIC (PIC10, PIC12, PIC16, PIC18, AVR (версия 2.0 и выше))

Компилятор MPLAB®XC C содержит бесплатную 60-дневную пробную версию лицензии PRO для оценки при активации.

Поделиться Mike     12 июля 2018 в 09:22


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


C компилятор, написанный в java

Я хочу интегрировать компилятор языка c в приложение java для компиляции источников c без создания файлов (например, компилятор Java Api). Есть ли какой-нибудь компилятор c, который полностью…


C код и C++ компилятор

Кто-нибудь знает, есть ли какое-либо снижение производительности при компиляции кода C с помощью компилятора C++? У меня есть код C like и я использую компилятор MinGW C++. Я использую qmake для…


Текущий Стандартный Компилятор C?

Я хотел бы знать, каков текущий стандартный компилятор C, используемый компаниями. Я знаю следующие компиляторы и не понимаю, какой из них использовать для учебных целей. Турбо C Борланд C GCC DJGPP…


что такое хороший компилятор c

я использую windows xp, что было бы хорошим компилятором c? я хочу выучить c, чтобы лучше понимать язык objective-c для iphone. у меня отличный опыт работы в php, так что, надеюсь, что-то будет…


Компилятор C# против C#

Означает ли C# 6 Roslyn ? Это одно и то же C# и C# компилятор ? Существует много статей о C# и новых функциях C#, но что такое C# ? Это компилятор C# или мне нужно знать что-то еще об этом ? И как…


Компилятор / преобразователь C/C++ в MATLAB

Поскольку существует компилятор MATLAB для C, мне интересно, есть ли компилятор конвертера, который может преобразовать некоторые математические коды C/C++ в MATLAB? Я знаю, что многие возможности и…


Семейства pic16: самостоятельно изменять код

На микрочипе PIC16 microcontroller у меня есть такая программа: off = 2; period = 10; while (1) { if (counter == 1) { switch something on; }elseif (counter == off) { switch something off; }elseif…


Отправить преобразованный температуры DS1820 за семейства pic16 по UART

Я пытаюсь отправить преобразованное значение температуры с моего DS1820 на мой PC с помощью UART PIC16F877. Я использую MPLABX и компилятор XC8, который имеет сборку в usart.h, хотя он полезен…


Поддерживает ли GCC PIC (особенно проблемное семейство PIC16)

Бесплатный компилятор PIC C Компилятор PIC16 C ….. аааа, и никто не упоминает gcc. Гугл приводит меня только к пламенным войнам на форумах, если PICs подходят для C, и что их (по крайней мере, 6 -…


как для представления чисел с плавающей точкой без округления в assembly на 36 инструкции из семейства pic16?

Как представлена плавающая точка в assembly для pic16? Например, если я хочу сохранить значение 1.623 в памяти, как я могу сохранить его, используя инструкции 36 assembly в pic16? Я не хочу…

Улучшенное ядро микроконтроллеров серии PIC16

Улучшенное ядро микроконтроллеров серии PIC16

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

Микроконтроллеры фирмы Microchip стали дверью в мир программируемой электроники для многих тысяч разработчиков. Долгое время самой востребованной считалась серия PIC16F, построенная на базе ядра так называемого среднего семейства Midrange. 8-ми разрядное ядро с 14-ти разрядной шиной команд, обеспечивало выполнение инструкций за 4 такта. 35 простых команд, позволяли управлять широким набором периферийных устройств, среди которых использовались таймеры, модули АЦП и ЦАП, блоки ШИМ и захвата сигналов, интерфейсы UART, SPI и I2C. Объем памяти программ зависел от модели контроллера и мог варьироваться от 1 до 8 К слов. В составе семейства выпускались микросхемы с количеством выводов от 14 до 64 в корпусах DIP, SOIC, SSOP, DFN, QFN.

С целью сохранения позиций Microchip произвел улучшение схемы процессора и изменение норм технологического процесса. Результатом стало ядро улучшенного среднего семейства Enhanced Mid-Range и микросхемы на его основе. Если не брать в расчет маркировку, то серия PIC16F получила фактически новое ядро, сильно приближенное по возможностям к моделям PIC18.

Структурная схема улучшенного ядра PIC16

Первое, что бросается в глаза в новых микроконтроллерах – расширенная система команд. Вместо традиционных 35, сейчас используется 49 инструкций. Добавились следующие команды:

  • ADDWFC – сложение содержимого произвольного регистра, аккумулятора и флага переноса.
  • SUBWFB – вычитание из содержимого произвольного регистра значения находящегося в аккумуляторе и инвертированного флага переноса.
  • LSLF – логический сдвиг регистра влево через бит переноса. Младший бит устанавливается равным 0.
  • LSRF – логический сдвиг регистра вправо через бит переноса. Старший бит устанавливается равным 0.
  • MOVLB – Загрузка 5-ти разрядной константы в BSR (Выбор банка памяти)
  • MOVLP – загрузка 7-ми разрядной константы в PCLATH
  • BRA – Сложение содержимого программного счетчика и девятиразрядной константы.
  • BRW — Сложение содержимого программного счетчика и регистра аккумулятора.
  • CALLW – вызов подпрограммы. Младшая часть адреса перехода находится в аккумуляторе, старшая в PCLATH.
  • ADDFSR – сложение константы с содержимым одного из регистра косвенной адресации
  • MOVIW – загрузка содержимого одного из регистров c косвенной адресацией INDF в аккумулятор с предварительным или последующим инкрементом или декрементом регистра указателя FSR
  • MOVWI — загрузка содержимого аккумулятора в один из регистров косвенной адресации INDF с предварительным или последующим инкрементом или декрементом регистра указателя FSR
  • RESET – программный сброс микроконтроллера
  • OPTION – загрузка регистра OPTION_REG в аккумулятор.
  • TRIS – загрузка содержимого регистра аккумулятора в TRISx

Большинство новых инструкций нацелено на упрощение организации внутрипрограммных переходов и работу с косвенной адресацией, что очень положительно сказывается при компиляции программ с языков высокого уровня. Наряду с дополнительными командами изменилась с 8 до 16 слов глубина стека, в который теперь добавлен контроль переполнения и опустошения, со сбросом процессора в случае возникновения аварийной ситуации. Увеличились доступные области памяти. Максимальный размер памяти программ теперь может составлять 32К слов, ОЗУ – 4кБ. Изменилась система косвенной адресации, для чего в состав ядра введен еще второй регистр FSR. Теперь для косвенного доступа открыто не только ОЗУ, но и память программ. Для работы с последней появился режим самопрограммирования. Улучшена и система обработки прерываний, главным новшеством которой  стало автоматическое сохранение контекста в теневые регистры, что не требует внимания со стороны программиста и уменьшает программный код.

Существенным образом переработана и система питания с генератором частоты. В новых микроконтроллерах появилась возможность использовать два внешних источника тактового сигнала. Основной источник используется для тактирования ядра, дополнительный для работы с модулем TIMER1. При использовании часового резонатора, такое решение позволяет создавать системы реального времени. В состав внутреннего тактового генератора введена система контроля работоспособности внешнего источника частоты, которая в случае возникновения неисправностей, автоматически переключит ядро на встроенный источник. Затронули изменения и сам внутренний генератор. Теперь его максимальная частота равна 32МГц.

По заявлению инженеров Microchip, указанные новшества повысили производительность микросхем на 50% по сравнению со старым вариантом. Затронули изменения и периферийные модули. Кроме существенно переработанных традиционных блоков, в составе новых микроконтроллеров появились такие необычные устройства, как настраиваемые логические ячейки (CLC), генераторы сигналов, программируемые переключатели и операционные усилители. Благодаря новым модулям значительно расширилась область использования PIC16. Но, не смотря на все нововведения, старым 8-ми битным процессорам все сложнее конкурировать с 32-разрядными собратьями. Это даже вызывает некоторую грусть, так как, в общем-то, неплохие микроконтроллеры могут скоро исчезнуть с рынка. На сегодняшний день за них голосуют только простота освоения и наличие удобных корпусов. Во всем остальном, даже по цене, они уже полностью проигрывают старшим собратьям.

 

You have no rights to post comments

Главная — Школа №619

Добро пожаловать

Школа 619 — ты перекресток надежд, место, где встречаются настоящее, прошлое, будущее.
Школа 619 – ты привычно держишь руку на пульсе времени, смотришь вперед.
Школа 619 — вот уже 20 лет ты учишь и учишься, экспериментируешь и ошибаешься, потому что ты — одна из первых в стране, пошла по пути развития инновационного образовательного поведения.
Сегодня Школа №619 Калининского района Санкт-Петербурга – лидер образования, интерактивная площадка, куда съезжаются для обмена опытом взрослые и дети из разных регионов России и других стран. Одно из самых ценных и значимых событий недавнего времени — заключение договора о сотрудничестве с ереванской школой №8 им. А. С Пушкина, с которого началась теплая и крепкая дружба двух школ. Для нас это страничка новой истории.
Один из слоганов школы, родившийся 20 лет назад – «Дети и взрослые, объединяйтесь!» — сегодня стал общим направлением движения: дети и взрослые вместе обсуждают вопросы совершенствования системы образования, вместе совершают научные открытия, вместе творят и выходят на сцену, – вместе идут к общему успеху!
В области образования грядут глобальные изменения. Ученые утверждают: чтобы добиться реального успеха, нужно развивать в себе те способности, которые недоступны искусственному интеллекту, — креативность, воображение, инициативу, лидерские качества.
Школа № 619 делает ставку на развитие личности ребенка и его лидерских качеств. Здесь ребенок с первых дней ученичества пробует свои силы в разных видах творческой, научной, спортивной и общественной деятельности. В школе создано пространство, в котором ученику предоставлены все возможности для раскрытия своей индивидуальности.
Собственная научно-практическая конференция «Многогранная Россия» и STA-лаборатория, проект «Абитуриент», лидерское движение, Малые Олимпийские игры, студии танца и вокала, легоконструирование и робототехника, детский театр, студия КВН и школьное ТВ, многообразие спортивных секций и собственный литературно-художественный журнал, обучение с оздоровлением, поддержка одаренных учащихся, творческие выезды во время каникул – вот он, настоящий праздник интеллекта, творчества, здоровья, воображения.
Школа 619 – ты как оркестр, где каждый музыкант, инструмент ведет свою партию, а в целом – рождается искусство. Ведь только тогда, когда школа поднимается от ремесла до искусства, она способна дать достойное образование и воспитание.

Программирование встраиваемых систем на базе микроконтроллеров PIC16 фирмы Microchip

Я б в нефтяники пошел!

Пройди тест, узнай свою будущую профессию и как её получить.

Химия и биотехнологии в РТУ МИРЭА

120 лет опыта подготовки

Международный колледж искусств и коммуникаций

МКИК — современный колледж

Английский язык

Совместно с экспертами Wall Street English мы решили рассказать об английском языке так, чтобы его захотелось выучить.

15 правил безопасного поведения в интернете

Простые, но важные правила безопасного поведения в Сети.

Олимпиады для школьников

Перечень, календарь, уровни, льготы.

Первый экономический

Рассказываем о том, чем живёт и как устроен РЭУ имени Г.В. Плеханова.

Билет в Голландию

Участвуй в конкурсе и выиграй поездку в Голландию на обучение в одной из летних школ Университета Радбауд.

Цифровые герои

Они создают интернет-сервисы, социальные сети, игры и приложения, которыми ежедневно пользуются миллионы людей во всём мире.

Работа будущего

Как новые технологии, научные открытия и инновации изменят ландшафт на рынке труда в ближайшие 20-30 лет

Профессии мечты

Совместно с центром онлайн-обучения Фоксфорд мы решили узнать у школьников, кем они мечтают стать и куда планируют поступать.

Экономическое образование

О том, что собой представляет современная экономика, и какие карьерные перспективы открываются перед будущими экономистами.

Гуманитарная сфера

Разговариваем с экспертами о важности гуманитарного образования и областях его применения на практике.

Молодые инженеры

Инженерные специальности становятся всё более востребованными и перспективными.

Табель о рангах

Что такое гражданская служба, кто такие госслужащие и какое образование является хорошим стартом для будущих чиновников.

Карьера в нефтехимии

Нефтехимия — это инновации, реальное производство продукции, которая есть в каждом доме.

Замечательный Bootloader от Microchip для PIC16 / PIC18

Published: Ср. 03 Октябрь 2012
By Oleg Mazko

In Embedded.

tags: Bootloader UART

Вы перепрошивали когда-нибудь BIOS ? Если нет, то Вам скорее всего, повезло… Вобщем представьте себе BIOS, который не умеет прошивать сам себя и если что-то не работает или работает плохо (его разрабатывают люди, точно такие же как и мы с Вами), нужно выключить компьютер, открутить пару шурупов, снять крышку, вытянуть микросхему BIOS, найти совместимый программатор, ПРОШИТЬ, после чего сделать всё то же самое в обратном порядке. Пару раз сделать можно, но хотелось бы что-нибудь поудобнее, особенно если предполагается этот процесс часто повторять в процессе разработки.

После того, как микроконтроллеры Microchip научились программно считывать/записывать ячейки своей Flash-памяти (появились соответствующие инструкции ассемблера), появление Bootloader‘ов — это был лишь вопрос времени. Очень хорошо, когда этим вопросом занимается непосредственно производитель микроконтроллеров — кто как не он лучше осведомлён о возможностях своей продукции. На одном из таких Bootloader’ов под названием AN1310, ориентированном на линейку PIC16 / PIC18 и использующим для коммуникации последовательный интерфейс UART давайте остановимся поподробнее. Скачать всё необходимое для работы ПО можно с сайта производителя.

Особенности AN1310:

  • Использует маленький объём Flash памяти микроконтроллера — в большинстве случаев менее 450 слов

  • Автоматическое согласование скорости передачи данных UART между ПК (host) и микроконтроллером

  • Широкий диапазон для выбора скорости передачи 1,200 Кбит/с — 3 Mбит/с

  • Протокол обмена данными использует 16-бит CRC

  • Имеется возможность записывать Flash только по тем адресам, которые изменились (Incremental Bootloading) — это значительно ускоряет процесс разработки

  • Mинимум соединительных элементов — можно обойтись всего тремя проводниками

  • ПО на стороне ПК кроссплатформенное — код написан на С / С++ Qt SDK, есть исходники

Шаг первый — схемотехника

В документации предлагаются две схемы. Для согласования уровней используется микросхема MAX3232:

Если напряжение питания микроконтроллера отличается от напряжения питания MAX3232, то предлагается ввести дополнительный MOSFET транзистор:

Однако представленные схемы можно значительно упростить / удешевить, если использовать переходник USB-to-serial (например на PL2303 или FT232BM). Уровень логической единицы у PL2303 — 3.3V и если напряжение питания микроконтроллера находится в пределах 3 … 3.3V, MAX3232 не понадобится. В таком случае необходим только подтягивающий резистор с Vdd на RX, чтобы избежать случайной загрузки Bootloader‘а при отключённом переходнике USB-to-serial. Что касается сигнала RTS (см. схемы), то он используется для сброса микроконтроллера (RESET), а поскольку такого же эффекта можно достичь просто отключив/включив питание, то его использование опционально. В случаее с USB-to-serial как правило имеется только RX, TX и GND, поэтому удобней сбрасывать микроконтроллер вручную.

Шаг второй — прошивка микроконтроллера

Исходники AN1310 упакованы в исполняемый *.exe файл, так что поначалу необходима ОС Windows (как вариант можно ещё попробовать установить Wine и запустить инсталляцию там, но Ваш покорный слуга этот способ на практике не проверял). Неприятная ситуация с Windows также повторяется и в процессе сборки Bootloader‘а — для работы с MPasm / MPLAB, чтобы сгенерировать хекс. После того, как Bootloader будет уже в прошит кристалле, об ОС Windows можно спокойно забыть.

Cкачанный с сайта Microchip инсталлятор Serial Bootloader AN1310 v1.05r.exe по умолчанию в процессе установки на ПК распаковывает исходные коды для создания прошивки микроконтроллера сюда:

C:\Microchip Solutions\Serial Bootloader AN1310 vX.XX\PICxx Bootloader\
  1. Код написан на ассемблере — MPasm, для его редактирования и сборки удобно использовать MPLAB IDE

  2. В меню Configure -> Select Device… выбрать модель микроконтроллера (например PIC18F46K22)

  3. В меню Configure -> Configuration Bits….

    Watchdog Timer“Disabled”, однако его можно задействовать программно
    Extended Instruction Set Enable bit“Disabled”
    Oscillator Selection bitsЧем больше тактовая частота, тем выше предельная скорость UART
    Fail-Safe Clock Monitor Enable bit“Enabled”, если имеется
    Low-Voltage Program (LVP)“Disabled”, если имеется
    Table Read-Protect“Disabled”, если имеется
  4. Собрать проект и прошить микроконтроллер программатором )))

В случае необходимости можно отредактировать код bootconfig.inc. Например, PIC18F46K22 имеет на борту два USART модуля, а Bootloader по умолчанию использует первый. В этом же файле можно выбрать один из двух режимов работы Bootloader‘а:

  • По умолчанию, хекс Bootloader‘а располагается в конце Flash-памяти, в этом случае основная программа микроконтроллера может сама обслуживать прерывания, т.е. фактически её работа ничем не отличается от работы без Bootloader‘а. Единственное, что необходимо знать компилятору основной программы — участок занятой Flash-памяти, при использовании HI-TECH С для этой цели можно указать в командной строке что-то вроде --ROM=default,-F800-FBFF. Однако подобная реализация Bootloader‘а имеет один существенный недостаток — в случае аппаратного сбоя (например отключили питание) в процессе записи его прошивка может повредиться — в этом случае снова понадобится программатор. Даже если с помощью битов конфигурации аппаратно защитить конец Flash-памяти, остаётся как минимум одна инструкция (GOTO), расположенная по адресу 0000h, защитить которую не коснувшись обработки прерываний (0008h, 0018h) мы не можем — аппаратно защищать Flash-память от записи можно только блоками.

  • В этой связи целесообразно задействовать второй вариант Bootloader‘а, в документации он обозначен как REMAPPED. Он располагается в начале Flash-памяти и сам обслуживает прерывания, фактически пробрасывает их по другим адресам, например: 0008h => 0808h, 0018h => 0818h. Такой подход добавляет теоретическую(инструкция GOTO) задержку в процесс обработки прерываний, однако имеет два очевидных преимущества. Во-первых, практически у всех микроконтроллеров Flash имеет boot-блок, объём которого меньше других — он как раз ориентирован на Bootloader‘ы. Это позволяет более рационально и экономно распределить ресурсы Flash-памяти между микроконтроллером и Bootloader‘ом. Во-вторых, весь код, который необходим для работы Bootloader‘а можно аппаратно защитить от записи, ничто не cможет его повредить. Чтобы задействовать REMAPPED Bootloader, необходимо в bootconfig.inc указать #define BOOTLOADER_ADDRESS 0. Также, исходя из размера boot-блока, необходимо указать, куда Bootloader должен пробрасывать прерывания, обозначив: AppVector 0x800, AppHighIntVector 0x808 и AppLowIntVector 0x818. Обо всём этом необходимо сообщить компилятору основной программы. Для HI-TECH С это будет выглядеть вот так: --RUNTIME=default,+download --CODEOFFSET=800 --ROM=default,-0-7FF

bootconfig.inc

; Copyright (c) 2002-2011,  Microchip Technology Inc.
;
; Microchip licenses this software to you solely for use with Microchip
; products.  The software is owned by Microchip and its licensors, and
; is protected under applicable copyright laws.  All rights reserved.
;
; SOFTWARE IS PROVIDED "AS IS."  MICROCHIP EXPRESSLY DISCLAIMS ANY
; WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT
; NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
; FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.  IN NO EVENT SHALL
; MICROCHIP BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR
; CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, HARM TO YOUR
; EQUIPMENT, COST OF PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY
; OR SERVICES, ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED
; TO ANY DEFENSE THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION,
; OR OTHER SIMILAR COSTS.
;
; To the fullest extent allowed by law, Microchip and its licensors
; liability shall not exceed the amount of fees, if any, that you
; have paid directly to Microchip to use this software.
;
; MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE
; OF THESE TERMS.

; Enable this to work around timing bug found in some PIC18Fxx20's
;#define TBLWT_BUG

; If you don't have an RS232 transceiver, you might want this option
;#define INVERT_UART

; Sets OSCCON<IRCF2:IRCF0> for maximum INTOSC frequency (8MHz)
#define USE_MAX_INTOSC

; Sets OSCTUNE.PLLEN bit at start up for frequency multiplication.
#define USE_PLL

; RB0 = 1 required to enable MAX3221 TX output on PICDEM LCD 2 demo board
;#define PICDEM_LCD2

; enable software boot block write protection
#define USE_SOFTBOOTWP

; enable software config words write protection
;#define USE_SOFTCONFIGWP

; Autobaud will be used by default. 
; To save code space or to force a specific baud rate to be used, 
; you can optionally define a BAUDRG value instead. 
; Most PIC18's support BRG16 mode and use the 
; following equation:
;       BAUDRG = Fosc / (4 * Baud Rate) - 1
;
; Old PIC18's without BRG16 mode need this equation instead:
;       BAUDRG = Fosc / (16 * Baud Rate) - 1
;
; Examples:
;#define BAUDRG .51  ; 19.2Kbps from 4MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .103 ; 115.2Kbps from 48MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .85  ; 115.2Kbps from 40MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .68  ; 115.2Kbps from 32MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .16  ; 115.2Kbps from 8MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .11  ; 1Mbps from 48MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .9   ; 1Mbps from 40MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .4   ; 2Mbps from 40MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .3   ; 3Mbps from 48MHz (BRG16 = 1, BRGH = 1)
;#define BAUDRG .12  ; 19.2Kbps from 4MHz (BRG16 = 0, BRGH = 1)
;#define BAUDRG .10  ; 115.2Kbps from 19.6608MHz (BRG16 = 0, BRGH = 1)

; Bootloader must start at the beginning of a FLASH Erase Block. 
; If unspecified, bootloader will automatically be located at the 
; end of program memory address space.

; bootloader at beginning, application start/ISR vectors
; require remapping
#define BOOTLOADER_ADDRESS   0

; useful for running under debugger 
; (debug executive wants to reside at the end of memory space too)
;#define BOOTLOADER_ADDRESS   END_FLASH - (ERASE_FLASH_BLOCKSIZE * 20)

; use on J parts to locate inside flash config erase block
;#define BOOTLOADER_ADDRESS  (END_FLASH - ERASE_FLASH_BLOCKSIZE)

#ifdef BOOTLOADER_ADDRESS
  #if BOOTLOADER_ADDRESS == 0
    ; For Bootloader located at program memory address 0, 
    ; the application firmware must provide remapped reset
    ; and interrupt vectors outside of the Boot Block. The following 
    ; #defines tell the bootloader firmware where application 
    ; entry points are to be expected:

    ; application start up code should be located here.
    #define AppVector           0x800

    ; application high priority interrupt should be located here
    #define AppHighIntVector    0x808

    ; application low priority interrupt should be located here
    #define AppLowIntVector     0x818
  #endif
#endif

; Define UART pins and registers. 
; Modify the following lines if you want to use a different UART module.
;
; Note: If your UART's RX pin happens to be multiplexed with analog 
;       ANx input functionality, you may need to edit the 
;      "preprocess.inc" DigitalInput macro. Code there needs to 
;       enable the digital input buffer (refer to ADC chapter 
;       of your device's datasheet).
;
#define UARTNUM 2
#if UARTNUM == 1
    #define UxSPBRG         SPBRG
    #define UxSPBRGH        SPBRGH
    #define UxRCSTA         RCSTA
    #define UxTXSTA         TXSTA
    #define UxRCREG         RCREG
    #define UxTXREG         TXREG
    #define UxPIR           PIR1
    #define UxRCIF          RCIF
    #define UxTXIF          TXIF
    #define UxBAUDCON       BAUDCON

; RX on RC7 is used by default for most PIC18's.
;    #define RXPORT         PORTC
;    #define RXPIN          .7

;    #define RXPORT          PORTB   ; PIC18F14K50: RX on RB5/AN11
;    #define RXPIN           .5

; RX/AN11 multiplexed -- must enable digital input buffer
;    #define RXANSEL         ANSELH
; ANSELH<3> controls AN11 digital input buffer
;    #define RXAN            .3
#endif

#if UARTNUM == 2
    #define UxSPBRG         SPBRG2
    #define UxSPBRGH        SPBRGh3
    #define UxRCSTA         RCSTA2
    #define UxTXSTA         TXSTA2
    #define UxRCREG         RCREG2
    #define UxTXREG         TXREG2
    #define UxPIR           PIR3
    #define UxRCIF          RC2IF
    #define UxTXIF          TX2IF
    #define UxBAUDCON       BAUDCON2

; RG2 is default RX2 pin for some high pin count PIC18's.
;    #define RXPORT          PORTG
;    #define RXPIN           .2

; RX2 pin PPS'ed to RD4/RP21 on PIC18F46J11 for example.
    #define RXPORT          PORTD
    #define RXPIN           .7

; On PICs where RX is multiplexed with ANx analog inputs,
    #define RXANSEL         ANSELD
; the digital input buffer needs to be enabled via ANSELx SFRs
    #define RXAN            .7

; devices that use PPS to remap UART2 pins will need these 
; lines defined:

; PPS code for TX2/CK2 output function
;    #define PPS_UTX         .5
;    #define PPS_UTX_PIN     RPOR23  ; UART TX assigned to RP23 pin
;    #define PPS_URX_PIN     .21     ; UART RX assigned to RP21 pin
; PPS register for RX2/CK2 input function
;    #define PPS_URX         RPINR16
#endif

; If you get linker errors complaining 
; "can not fit the absolute section," you might want to 
; increase BOOTLOADERSIZE below or set the 
; BOOTLOADER_ADDRESS above to a smaller address number.

; Because we need to know the total size of the 
; bootloader before the assembler has finished compiling
; the source code, we have to estimate the final bootloader 
; size and provide it here as BOOTLOADERSIZE. This number 
; is in bytes (twice the instruction word count). 
;
; If you see the bootloader is reserving more FLASH memory 
; than it really needs (you'll see a bunch of FFFF/NOP 
; instructions at the end of the bootloader memory region),
; you can try reducing BOOTLOADERSIZE.
#define BOOTLOADERSIZE  .708

#define MAJOR_VERSION   .1  ; Bootloader Firmware Version
#define MINOR_VERSION   .5

Шаг третий — запуск и работа с Bootloader’ом

Итак, может быть два режима работы микроконтроллера: режим выполнения основной программы и режим Bootloader‘а. После подачи питания на микроконтроллер, либо после Reset, загрузчик Bootloader‘а по некоторым признакам принимает решение, какой из них необходимо запустить. О необходимости запуска Bootloader‘а говорят следующие признаки:

  1. Oсновной программы нет, например первый запуск

  2. Если на входе RX логический ноль (в терминах RS-232 состояние “Break»)

Таким образом, при необходимости запустить Bootloader, можно использавать следующую последовательность действий: физически подключить микроконтроллер к ПК, установить логический ноль на RX, это можно сделать посредством кнопочки , после чего ввести микроконтроллер в состояние RESET (в простейшем случае — включить/выключить питание). С этого момента к нему можно подключаться со стороны ПК

ПО для ПК поставляеncя в исходниках, при необходимости его можно подкорректировать в QTCreator, а для Windows уже есть готовый исполняемый .exe файл. Если при работе в Linux подозрительно работает переходник на PL2303, попробуйте сделать следующее:

~$ sudo modprobe -r pl2303
~$ sudo modprobe pl2303

Если в Linux оболочка для работы с Bootloader‘ом вообще не видит USB-to-serial переходника (например /dev/ttyUSB0), скорее всего текущий пользователь просто не обладает соответствующими правами. Поскольку постоянно запускать программу их-под root‘a неудобно, ниже описан конкретный случай лечения OpenSUSE 12.1 — полными правами на USB-to-serial обладает группа dialout, поэтому в неё нужно добавить текущего пользователя системы, после чего, чтобы изменения вступили в силу, ОБЯЗАТЕЛЬНО перелогиниться:

oleg@linux-ubuc:~> ls -l /dev/ttyUSB?
crw-rw---- 1 root dialout 188, 0 марта  1 10:13 /dev/ttyUSB0
oleg@linux-ubuc:~> sudo /usr/sbin/groupmod -A $USER dialout

В Ubuntu 12.04 добавить пользователя можно так: sudo adduser $USER dialout

На этом всё, надёжных девайсов Вам !

На всякий пожарный исходники тут.

Видеоурок по микроконтроллерам

PIC16, серия

Лекция «Введение в микропроцессоры» с использованием книги Вильмшерста «Проектирование встроенных систем с микроконтроллерами PIC»
Глава 1, разделы 1-3 Темы
: Что такое встроенная система ?, Встроенные примеры, CISC против RISC, Память: Volitile vs. -volitile, Организация памяти: фон Нейман против Гарварда

Глава 1, разделы 4-6
Темы: Микроконтроллеры против микропроцессоров, семейства микроконтроллеров, Microchip Inc.История и предыстория, Таблица 8-битных семейств PIC, Блок-схема 12F508

Глава 2, разделы 1-2
Темы: Зачем использовать 16F84A?, Семейство PIC среднего уровня, распиновка, блок-схема, регистр состояния

Глава 2 , разделы 3-4
Темы: Программная память и стек, Память данных и специальные функции. Рег. Карта, взаимодействие с периферийными устройствами, слово конфигурации

Глава 2, разделы 5-7
Темы: конвейерная обработка, сброс

Глава 3, разделы 3.1 — 3.2.1
Темы: Параллельные порты, двунаправленные

Глава 3, разделы 3 .2.2 — 3.3
Темы: Параллельные порты: избран. символ, переключатели, светодиоды

Глава 3, раздел 3.3
Темы: Параллельные порты: 16F84A

Глава 3, раздел 3.5-3.7
Темы: Конфигурация генератора, источник питания

Глава 3, раздел 2
Темы: Параллельный выходной порт Временная диаграмма

Глава 3, раздел 2
Темы: Время чтения параллельного входного порта, HW Prob. 3.2

Глава 4, раздел 4-9
Темы: Аппаратные средства

Глава 4, раздел 1-3
Темы: Программные инструменты, язык ассемблера, простая программа

Глава 4, раздел 4-6
Темы: Учебное пособие по MPLABX , Программа первого языка ассемблера, MPLABX Simulator

Глава 4, раздел 7-10
Темы: MPLABX, Компиляция кода сборки, Программирование устройства, Игра в пинг-понг

Глава 4, раздел 5
Темы: Настройка слова конфигурации, Проект Ping Pong Советы

Глава 4, раздел x
Темы: Создание прототипа печатной платы в Eagle CAD, Ping Pong Game

Глава 4, раздел 7-8
Темы: Команды перемещения сборки

Глава 5, раздел 1
Темы: Блок-схемы, состояние Диаграммы


Глава 5, раздел 1
Темы: Конструкции учащихся для игры в пинг-понг в Eagle CAD

Глава 5, раздел 2.1
Темы: Условное ветвление, Код BitSet

Глава 5, раздел 5.1
Темы: Пример условного ветвления: BitSet

Глава 5, раздел 5.1
Темы: Учебное пособие по моделированию MPLABX: Bitset.asm

Глава 5, раздел 2.1
Темы: Учебное пособие по загрузке оборудования MPLABX: BitSet.asm

Глава 5, раздел 2.2
Темы: Арифметика и ветвления

Глава 5, раздел 3
Темы: Подпрограммы в сборке

Глава 5, раздел 4
Темы: Задержки при сборке

Глава 5, раздел 2
Темы: Ветвление, Окно просмотра MPLAB X, Упражнение 5.2

Глава 5, раздел 5.1
Темы: Симулятор MPLAB X: точки останова, упражнение 5.5, Fibonacci Full

Глава 5, раздел 5.2
Темы: Симулятор MPLAB X: секундомер, упражнения 5.6 и 5.7

Глава 5, раздел 6
Темы: Логические инструкции по сборке, Упражнение 5.9. Мигающие светодиоды 2, Пример 5.7

Глава 5, раздел 6
Темы: Разъяснение команды СБР

Глава 4, раздел 6
Темы: Советы по MPLAB X Sim: окно отслеживания и отслеживания (обновление)

Глава 5, раздел 7
Темы: Язык ассемблера: справочные таблицы, команда RETLW

Глава 5, раздел 7
Темы: Пример моделирования поиска MPLAB X, Exer.5.10, зачет. 5.8, мигающие светодиоды 3

Глава 5, раздел 8
Темы: Включить файлы, макросы, перечислить директивы в сборку

Глава 5, раздел 12
Темы: Косвенная адресация

Глава 6,8,9,10,11
Темы: Прерывания, Клавиатуры, ЖК-дисплеи, ШИМ, Последовательный порт, ADC
Текущий проект / публикацию также можно найти с помощью:
  • учебное пособие на языке ассемблера для 16f877a для входа ИК-датчика
  • учебное видео по программированию микроконтроллера
  • видео микроконтроллера
  • видео по программированию pic

Набор инструкций для серии PIC16

В серии PIC16 используется RISC (компьютер с сокращенным набором команд), а количество используемых инструкций составляет 35 видов.
Щелкнув мнемонику каждой инструкции, вы можете перейти к спецификации инструкции.
Объяснение терминологии
Мнемоника: язык ассемблера, который сделал код операции простым
Операнды: часть спецификации, кроме кода операции
MSb: старший бит
LSb: младший бит
Флаг: Поле регистра STAUS


Операнды

Описание операции Код инструкции Флаг
Операции с байтовым регистром файлов
ADDWF f, d Добавить W и f C, DC, Z
ANDWF f, d AND W с f Z
CLRF f Прозрачный f Z
CLRW Прозрачный W Z
COMF f, d Дополнение f Z
DECF f, d Уменьшение f Z
DECFSZ f, d Уменьшение f, пропустить, если 0
INCF f, d Приращение f Z
INCFSZ f, d Приращение f, пропускать, если 0
IORWF f, d Включительно OR W с f Z
MOVF f, d Перемещение f Z
MOVWF f Переместите W на f
NOP Нет работы
RLF f, d Повернуть влево f через Переносить C
RRF f, d Повернуть вправо f через Переносить C
SUBWF f, d Вычесть W из f C, DC, Z
SWAPF f, d Поменять местами полубайты в f
XORWF f, d Exclusive OR W с f Z
Битовые операции с файловым регистром
BCF f, b Bit Clear f
BSF f, b Набор бит f
BTFSC f, b Bit Test f, пропустить, если очистить
BTFSS f, b Bit Test f, пропустить, если установлен
Буквальные и контрольные операции
ADDLW k Добавить литерал и W C, DC, Z
ANDLW k И буквальный с W Z
ВЫЗОВ k Вызов подпрограммы
CLRWDT Сброс сторожевого таймера
GOTO k Перейти по адресу
IORLW k Включительно ИЛИ литерал с W Z
MOVLW k Переместить литерал на W
RETFIE Возврат из прерывания
RETLW k Возврат с буквой в W
ВОЗВРАТ Возврат из подпрограммы
SLEEP Перейти в режим ожидания
SUBLW k Вычесть W из буквального C, DC, Z
XORLW k Литерал эксклюзивного ИЛИ с W Z

x: Все равно

pic16 · Темы GitHub · GitHub

pic16 · Темы GitHub · GitHub

Здесь 24 публичных репозитория в соответствии с этой темой…

Перевернутый маятник, который прыгает и балансирует. Это упрощенная версия Cubli, которую вы можете построить самостоятельно.

VSCode Настройка, необходимая для кодирования микроконтроллера PIC с использованием компилятора microchip XC 8.

  • Обновлено 3 сен.2020 г.
  • Пакетный файл

Библиотека устранения дребезга кнопок для каждого микроконтроллера

Проекты для микроконтроллера PIC 16F716.(PIC16F716) 8-разрядный 18-контактный.

  • Обновлено 22 октября, 2019
  • сборка

Эксперименты с платами Microchip Curiosity Nano

Встроенная система

со сборкой с PIC 16 и C / C ++ с Arduino

  • Обновлено 24 июля 2017 г.
  • Makefile

Драйвер компилятора CCS PIC C для контроллера 7-сегментного дисплея с общим катодом Maxim MAX7219

🧠 0-5.Регулируемая система беспроводного нейростимулятора 5 мА на базе PIC16F1713 и App Inventor.

Реализация загрузчика AN1310 PIC16 на Python

  • Обновлено 25 февраля 2021 г.
  • Python

Асинхронный исполнитель для небольших встраиваемых устройств

Прошивка

Paintball для микроконтроллеров PIC16f648a.Разработан для работы с пейнтбольным пистолетом Dye Matrix. Это версия с открытым исходным кодом коммерчески доступного чипа CodeX начала 2000-х годов.

Самые сложные часы с «Время на языке» на электронном бумажном дисплее, работающие от батареи

Open Hardware and Firmware — ShotTimer для измерения скорости стрельбы для пейнтбольных ружей

Код электронной системы голосования создан для pic16f877a

Детектор движения с микроконтроллером PIC16LF1459, модулем nRF24L01 + и ИК-датчиком

реализация контроллера BLDC с использованием микрочипа PIC16

Макросы для семейств процессоров Microchip низкого и среднего уровня.Распределение RAM, аритметика, контакты портов.

PIC16F15345 и модуль GPS (3) Click

🚗 Радиоуправляемая машина с микроконтроллером PIC на языке XC8.

Файлы и ресурсы, используемые в курсе UCLA COMPTNG 16 (весна 2017 г.).

  • Обновлено 14 июня 2017 г.
  • Python

Реализация цифровой аналоговой конверсии через фильтр PWM на PIC16F15313

DCF77 Часы с PIC16F73

Улучшить эту страницу

Добавьте описание, изображение и ссылки на рис16 страницу темы, чтобы разработчикам было легче узнать о ней.

Куратор этой темы

Добавьте эту тему в свое репо

Чтобы связать ваш репозиторий с рис16 тема, посетите целевую страницу репо и выберите «управлять темами».

Учить больше

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

iBoard Tiny x18 (18-контактная плата для разработки Microchip PIC16 и PIC18)

iBoard Tiny x18 построен с простым набором подключения внешнего порта, который выполняет любой тип разъема. С помощью этих портов ввода-вывода пользователь может легко подключать различные типы модулей ввода-вывода и с разными источниками питания.

Функции iCP22 перечислены ниже:

  • Миниатюрный размер, простой интерфейс, высокая производительность и удобство в использовании
  • Используется с 18-контактной вспышкой PIC MCU
  • Превосходная гибкость, позволяющая пользователю расширять плату модулями plug and play

Периферийные элементы:

  • NCP1117 — обеспечивает подачу напряжения VDD + 5 В или + 3,3 В на микроконтроллер PIC
  • Максимальное входное напряжение: 15 В постоянного тока
  • Внутренний или внешний генератор
  • Зеленый светодиод — индикатор включения
  • VS1 и VDD — разный входной источник питания (внешний источник или питание VDD)
  • Разъем ICSP — встроенное программирование PIC
  • Коммуникационный порт: USART
  • 16 контактов ввода-вывода

Вспомогательные устройства:

  • 18-контактный : PIC16F54, PIC16F84A, PIC16F87, PIC16F88, PIC16F627A, PIC16F628A, PIC16F648A, PIC16F716, PIC16F818, PIC16F819, PIC16F181213, PIC16F1812, PIC16F1812, PIC16F1812, PIC16F1812, PIC16F182627, PIC16F1812, PIC16F182627, PIC16F.

Размер:

  • Размер: 5 см X 2.3 см X 1,1 см
  • Стандартный разъем 1×5 2,54 мм для подключения ICSP
  • Стандартное 2×9 штыревое гнездо 2,54 мм для подключения порта ввода-вывода
  • Стандартный разъем 1×6 2,54 мм для подключения порта связи (USART)
  • Стандартная контактная головка 1×3 2,54 мм для керамического резонатора

Планировка:


Список принадлежностей: (Эти принадлежности поставляются вместе)

Загрузить:

  • iCP22v1.0 iBoard Tiny x18: Схема [jpg | pdf]

Hi-Tech C Учебное пособие: Скоро в продаже



Microchip представляет микроконтроллер PIC16 (L) F161X

Microchip представляет микроконтроллер PIC16 (L) F161X

20 ноября 2014 — Microchip Technology анонсировала PIC16 (L) F161X PIC 8-битный микроконтроллер PIC (MCU), поддерживающий независимые периферийные устройства Microchip (CIP). Эти периферийные устройства предназначены для упрощения системы за счет устранения необходимости в дополнительном коде и внешних компонентах.Аппаратные периферийные устройства выгружают функции, критичные по времени и интенсивно использующие ядро, от ЦП, позволяя ему сосредоточиться на других критических задачах в системе. Микроконтроллеры PIC16 (L) F161X PIC предлагают математический ускоритель (Math ACC) с пропорциональной интегральной производной (PID), предлагающий полностью независимые от ядра вычисления с возможностью выполнять 16-битные математические операции и операции PID. Семейство также включает угловой таймер (AngTmr), который представляет собой аппаратный модуль, который вычисляет угол поворота в таких функциях, как управление двигателем, управление TRIAC или системы зажигания емкостным разрядом (CDI).Независимо от скорости AngTmr допускает повторяющиеся прерывания при определенном вращательном или синусоидальном угле без использования вычислений ядра. CIP можно настроить для выполнения множества заданных функций, которые увеличивают скорость выполнения и снижают требования к программному обеспечению. Разгрузка этих функций освобождает ЦП для выполнения других задач, потребляет меньше программной памяти и снижает общее энергопотребление микроконтроллера. Помимо MATH ACC и AngTmr, PIC16 (L) F161X имеет несколько других периферийных устройств, предназначенных для упрощения реализации и увеличения гибкости различных функций.24-битный таймер измерения сигнала (SMT) выполняет аппаратные измерения цифрового сигнала с высоким разрешением, что приводит к более точным и точным измерениям. Это идеально подходит для контроля скорости, определения дальности и индикаторов оборотов. Это семейство также включает модуль обнаружения пересечения нуля (ZCD), который может контролировать напряжение в сети переменного тока и указывать активность пересечения нуля. Упрощение приложений управления TRIAC значительно снижает как нагрузку на ЦП, так и стоимость спецификации. В сочетании с новыми сильноточными входами / выходами (100 мА) и проверенной конфигурируемой логической ячейкой (CLC) вместе с I2C, SPI и EUSART для связи эта интеграция помогает ускорить проектирование, упрощает внедрение и добавляет гибкости.Это семейство также поддерживает реализацию стандартов безопасности, таких как Class B и UL 1998 или отказоустойчивые операции, путем объединения сторожевого таймера с оконным интерфейсом (WWDT), который контролирует правильную работу программного обеспечения в заранее определенных пределах, повышая надежность и циклический контроль избыточности со сканированием памяти (CRC). / SCAN), который обнаруживает и сканирует память на наличие поврежденных данных. Наряду с аппаратными ограничительными таймерами (HLT), которые обнаруживают состояния аппаратных сбоев (остановка, остановка и т. Д.), Инженеры теперь могут включать функции безопасности и мониторинга в своих приложениях с минимальным или нулевым участием ЦП.Наряду со всеми этими функциями, семейство предлагает технологию XLP с низким энергопотреблением и представлено в корпусах с малым форм-фактором, начиная с 8-, 14- и 20-контактных корпусов. Поддержка разработки Семейство PIC16 (L) F161X поддерживается стандартным набором инструментов разработки мирового класса Microchip, включая PICkit 3 (номер PG164130) и MPLAB ICD 3 (номер DV164035). Конфигуратор кода MPLAB, который представляет собой подключаемый модуль для бесплатной MPLAB X IDE от Microchip, который предоставляет графический метод настройки 8-битных систем и периферийных функций и позволяет вам от концепции до прототипа за считанные минуты автоматически генерировать эффективный и легко изменяемый код C. для вашего приложения. Наличие Микроконтроллеры PIC12 (L) F1612 доступны сегодня для отбора проб и серийного производства в 8-контактных корпусах PDIP, SOIC и 3 мм x 3 мм DFN и UDFN. Микроконтроллеры PIC16 (L) F1613 также доступны в 14-контактных корпусах PDIP, SOIC, TSSOP и 4 мм x 4 мм UQFN и QFN. PIC (L) F1614 и PIC (L) F1615 теперь доступны для выборки в 14-контактных корпусах PDIP, SOIC, TSSOP и 4 мм x 4 мм UQFN и QFN, а серийное производство ожидается в январе. Микроконтроллеры PIC16 (L) F1618 и PIC (L) F1619 также доступны сегодня для выборки в 20-контактных корпусах PDIP, SOIC, TSSOP и 4 мм x 4 мм UQFN и QFN, а серийное производство ожидается в январе.Семейство поставляется в количестве 10 000 единиц.

Учить больше


Практическая электроника (Том II): Программирование микроконтроллеров PIC16 в сборке и C (мягкая обложка)

9,54 долл. США

Обычно отправляется в течение 1-5 дней

Описание


Лабораторные эксперименты — важный компонент естественнонаучного и инженерного образования.Цель этой книги — обеспечить организованные эксперименты и дать учащимся возможность лучше узнать лабораторные аспекты электроники. Эта книга включает пятьдесят пять лабораторных экспериментов с микроконтроллерами PIC16. Книга призвана помочь учащимся понять принципы теоретических концепций и дать им представление о проектировании и реализации программного и аппаратного обеспечения для встроенных систем. В нем дается исчерпывающее и ясное объяснение языка ассемблера PIC16 и встроенного программирования C.Каждый эксперимент представляет собой законченный модуль, который включает в себя цель, требования к программному и аппаратному обеспечению, алгоритм, программу, принципиальную схему и результат. Раздел результатов содержит образцы входных и выходных данных для каждого эксперимента, где учащиеся могут проверить результаты. Основная аудитория этой книги — студенты и аспиранты, изучающие естественные науки и инженерные науки. Некоторые из передовых технологий, представленных в этой книге, в настоящее время используются во многих секторах, таких как коммуникационная электроника, бытовая электроника, автомобильная электроника, промышленное управление, медицинская электроника и т. Д.Эта книга помогает: -Содействовать экспериментальному обучению среди студентов. -Давать практические или неформальные знания, чтобы понять, как все работает. -Знать взаимосвязь между программным обеспечением и оборудованием в системе.



Подробная информация о продукте
ISBN: 9798652414443
Издатель: Независимо опубликовано
Дата публикации: 9 июня 2020 г.
Страниц: 242
Язык: Английский
Серия
Breakout
II Том 9 плата для PIC16 из микросхемы

Необходимость — мать всех изобретений.Я начал программировать PIC16F690 и через некоторое время почувствовал необходимость немного упорядочить мою макетную плату. Вот почему я придумал плату Breakout для 20-контактных микроконтроллеров PIC16.

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

Макетная плата не очень хорошо организована

На картинке видно, что я программирую PIC 16F690, используя PICkit3; есть также преобразователь LDO для генерации 5 В от розетки 9 В (фиолетовая плата), и не более того.

Конечно, идея создания коммутационных плат не нова. Даже Arduino nano (и ему подобные) сделан по этой концепции.

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

Распределительный штифт

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

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

Затем я придумал концепцию ниже, в значительной степени основанное на этой минимальной распиновке из PICguides.

Соединения коммутационной платы Источник: http://picguides.com/beginner/breadboard.php

Обратите внимание, что в этой конструкции действительно необходимы только два пассивных компонента: один конденсатор фильтра (100 нФ) и один подтягивающий резистор для сигнала мастер-сброс.

Также обратите внимание, что внутренний генератор PIC должен использоваться постоянно, поскольку я не предоставляю никаких внешних кристаллов или источников синхронизации. Я настраивал внутренний генератор на 8 МГц практически для всех своих тестов.

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

Коммутационная плата PIC 16F690 с распиновкой

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

Изображение коммутационной платы, подключенной к макетной плате

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

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

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

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