МИКРОКОНТРОЛЛЕРЫ PIC
Ещё несколько лет назад, для сборки какого-либо цифрового устройства требовался десяток, а то и два логических микросхем типа К155, К561 и другие. Помимо трудностей сборки и настройки, такие устройства обладали слишком большими габаритами и энергопотреблением. Но технологии не стоят на месте, и вот, им на смену пришли микроконтроллеры PIC. Аббревиатура PIC, расшифровывается как Peripheral Interface Controller. Буквальный перевод: периферийный интерфейсный контроллер. Выпускает эти контроллеры американская компания Microchip Technology. Существуют 8, 16 и 32-битные микроконтроллеры под маркой PIC. Они представляют собой микpоконтpоллеpы с RISC аpхитектуpой, встpоенным ЭППЗУ пpогpаммы и ОЗУ данных. Скачать руководство по микроконтроллерам PIC можно здесь. А здесь имеется хорошая книга «Радиолюбительские схемы на PIC контроллерах» — описание десятков схем и конструкций: часы, таймеры, программаторы и многое другое.
Работа 8-ми битных микроконтроллеров основывается на 12-ти разрядной архитектуре слова программ и предоставлены, как наиболее дешевое решение. Среднее семейство представлено микроконтроллерами серий PIC12 и PIC16, и имеет ширину слова программ 14 бит. Микроконтроллеры работают в диапазоне питающих напряжений от 2.0 до 5.5В, имеют встроенную систему прерываний, аппаратный стек, энергонезависимую память данных EEPROM. Набор периферии: USB, SPI, I2С, USART, LCD, АЦП и другие.
В новых микроконтроллерах применена улучшенная архитектура 8-ми битных PIC контроллеров PIC12 и PIC16. При этом увеличен объём памяти программ и данных, улучшен аппаратный стек, имеются дополнительные источники сброса, расширена периферия для создания сенсорных пользовательских интерфейсов, уменьшено время входа в прерывание и размер кода, увеличена производительность на 50 %.
Семейство 16-ти разрядных микроконтроллеров представлены в модификациях PIC24F — производительность ядра 16MIPS@32МГц и PIC24H — 40MIPS@80МГц. Отличаются они технологией изготовления FLASH программной памяти.
Особенности микроконтроллеров PIC24F и PIC24H:
Выполнение команды за 2 такта генератора
Время отклика на прерывание — 5 командных тактов
Доступ к памяти за 1 командный такт
Аппаратный умножитель
Аппаратный делитель 32/16 и 16/16 чисел
Питающие напряжения 2.0…3.6В, один источник питания.
Внутрисхемное и само- программирование
Встроенный генератор с PLL
Расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART с поддержкой IrDA, LIN, CAN и расширенный ECAN, USB OTG)
Модуль измерения времени заряда, для управление ёмкостными сенсорами
Ток портов ввода/вывода около мА
До девяти 16-битных таймеров
До восьми модулей захвата
Энергосберегающие режимы
До двух АЦП с 32 каналами и с конфигурируемой разрядностью
До восьми 16-битных модулей сравнения / генерации ШИМ
Самыми продвинутыми контроллерами являются 32-разрядные PIC32. Их особенности: ядро MIPS32 M4K, частота такта 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц, порты ввода/вывода относятся к основному частотному диапазону, дополнительный частотный диапазон для периферии из основного посредством программно настраиваемого делителя, до 32 кБ SRAM и 512 кБ Flash с кэшем предвыборки, совместимость по выводам и отладочным средствам с 16-битными контроллерами, аппаратный умножитель и делитель с независимым конвейером, оптимизированным по скорости выполнения, набор расширенных инструкций MIPS16e, независимый от основного ядра контроллер USB.
Схемы и устройства на PIC контроллерах можно питать от сети 220 вольт без понижающего трансформатора. Для этого достаточно спаять простую схему бестрансформаторного источника 5В, которая обеспечивает ток нагрузки около 0.1А. Для уменьшения влияния наводок и помех следует неиспользуемые выводы микроконтроллера подключать к шине земли. При разводке печатной платы обязательно установите фильтрующий конденсатор, емкостью 0,1 мкф, между выводами питания. Цепи генератора тактовых импульсов и сброса микроконтроллера делайте покороче. По периметру платы стоит провести шину земли.
В настоящее время семейство микроконтроллеров PIC представлено такими моделями:
ТИП Память,байт ОЗУ,байт Частота,МГц
PIC12C508 512×12 25 4
PIC12C508A 512×12 25 4
PIC12C509 1024×12 41 4
PIC12C509A 1024×12 41 4
PIC12C671 1024×14 127 10
PIC12C672 2048×14 127 10
PIC12CE518 512×12 25 4
PIC12CE519 1024×12 41 4
PIC12CE673 1024×14 127 10
PIC12CR509A 1024×12 41 4
PIC12F629 1024 64 20
PIC12F675 1024 64 20
PIC14000 4096×14 192 20
PIC16C432 2048×12 128 20
PIC16C433 2048×12 128 10
PIC16C505 1024×12 72 20
PIC16C52 384×12 25 4
PIC16C54 512×12 25 20
PIC16C54A 512×12 25 20
PIC16C54C 512×12 25 20
PIC16C55 512×12 24 20
PIC16C554 512×14 80 20
PIC16C558 2048×14 128 20
PIC16C55A 512×12 24 20
PIC16C56 1024×12 25 20
PIC16C56A 1024×12 25 20
PIC16C57 2048×12 72 20
PIC16C57C 2048×12 72 20
PIC16C58A 2048×14 73 20
PIC16C58B 2048×12 73 20
PIC16C61 1024×14 36 20
PIC16C620 512×14 80 20
PIC16C620A 512×14 96 20
PIC16C621 1024×14 80 20
PIC16C621A 1024×14 80 20
PIC16C622 2048×14 128 20
PIC16C622A 2048×14 128 20
PIC16C62A 2048×14 128 20
PIC16C62B 2048×14 128 20
PIC16C63 4096×14 192 20
PIC16C63A 4096×14 192 20
PIC16C642 4096×14 176 20
PIC16C64A 2048×14 128 20
PIC16C65A 4096×14 192 20
PIC16C65B 4096×14 192 20
PIC16C66 8192×14 368 20
PIC16C662 4096×14 176 20
PIC16C67 8192×14 368 20
PIC16C71 1024×14 36 20
PIC16C710 512×14 36 20
PIC16C711 1024×14 68 20
PIC16C712 1024×14 128 20
PIC16C715 2048×14 128 20
PIC16C716 2048×14 128 20
PIC16c717 2048×14 256 20
PIC16C72 2048×14 128 20
PIC16C72A 2048×14 128 20
PIC16C73 4096×14 192 20
PIC16C73A 4096×14 192 20
PIC16C73B 4096×14 192 20
PIC16C74 4096×14 192 20
PIC16C745 8192×14 256 24
PIC16C74A 4096×14 192 20
PIC16C74B 4096×14 192 20
PIC16C76 8192×14 368 20
PIC16C765 8192×14 256 24
PIC16C77 8192×14 368 20
PIC16C770 2048×14 256 20
PIC16C771 4096×14 256 20
PIC16C773 2048×14 256 20
PIC16C774 2048×14 256 20
PIC16C781 1024×14 128 20
PIC16C782 2048×14 128 20
PIC16C923 4096×14 176 8
PIC16C924 4096×14 176 8
PIC16C925 4096×14 196 20
PIC16C926 4096×14 336 20
PIC16CE623 512×14 96 20
PIC16CE624 1024×14 96 20
PIC16CR54A 512×12 25 20
PIC16CR54b 512×12 25 20
PIC16CR54C 512×12 25 20
PIC16CR56A 2048×14 25 20
PIC16CR57A 4096×14 72 20
PIC16CR57b 2048×12 72 20
PIC16CR57C 2048×12 72 20
PIC16CR58A 2048×12 73 20
PIC16CR58B 2048×12 73 20
PIC16CR62 2048×14 128 20
PIC16CR63 4096×14 192 20
PIC16CR64 4096×14 192 20
PIC16CR65 4096×14 192 20
PIC16CR72 2048×14 128 20
PIC16CR83 512×14 36 10
PIC16CR84 1024×14 68 10
PIC16F627 1024×14 224 20
PIC16F627A 1024 224 20
PIC16F628 2048×14 224 20
PIC16F628A 2048 224 20
PIC16F630 1024 64 20
PIC16F648A 4096 256 20
PIC16F676 1024 64 20
PIC16F72 2048 128 20
PIC16F73 4096×14 192 20
PIC16F74 4096×14 192 20
PIC16F76 8192×14 368 20
PIC16F77 8192×14 368 20
PIC16F818 1024 128 20
PIC16F819 2048 256 20
PIC16F83 512×14 36 10
PIC16F84 1024×14 68 10
PIC16F84A 1024×14 68 10
PIC16F85 1024×14 128 20
PIC16F86 2048×14 128 20
PIC16F87 4096×14 192 20
PIC16F870 2048×14 128 20
PIC16F871 2048×14 128 20
PIC16F872 2048×14 128 20
PIC16F873 4096×14 192 20
PIC16F873A 4096×14 192 20
PIC16F874 4096×14 192 20
PIC16F874A 4096×14 192 20
PIC16F876 8192×14 368 20
PIC16F876A 8192×14 368 20
PIC16F877 8192×14 368 20
PIC16F877A 8192×14 368 20
PIC16F88 4096×14 192 20
PIC16F89 4096×14 192 20
PIC16HV540 512×12 25 20
PIC16LC74B 4096×14 192 16
PIC17C42 2048×16 232 33
PIC17C42A 2048×16 232 33
PIC17C43 4096×16 454 33
PIC17C44 8092×16 454 33
PIC17C752 8192×16 454 33
PIC17C756 16384×16 902 33
PIC17C756a 16384×16 902 33
PIC17C762 8192×16 678 33
PIC17C766 16384×16 902 33
PIC17CR42A 2048×16 232 33
PIC17CR43 2048×16 232 33
PIC17LC752 8192×16 678 16
PIC17LC756A 16384×16 902 16
PIC18C242 8192×16 512 40
PIC18C252 16384×16 1536 40
PIC18C442 8192×16 512 40
PIC18C452 16384×16 1536 40
PIC18C658 16384×16 1536 40
PIC18C858 16384×16 1536 40
PIC18F010 1024×16 256 40
PIC18F012 1024×16 256 40
PIC18F020 2048×16 256 40
PIC18F022 2048×16 256 40
PIC18F1220 2048 256 40
PIC18F1230 2048×16 256 40
PIC18F1320 4096 256 40
PIC18F1330 4096×16 256 40
PIC18F2220 2048 512 40
PIC18F232 8192×12 512 40
PIC18F2320 4096 512 40
PIC18F2331 4096×16 512 40
PIC18F242 8192×16 768 40
PIC18F2431 8192×16 768 40
PIC18F2450 8192×16 1024 40
PIC18F248 8192×16 768 40
PIC18F252 16384×16 1536 40
PIC18F2550 16384×16 1024 40
PIC18F258 16384×16 1536 40
PIC18F4220 2048 512 40
PIC18F432 8192×12 512 40
PIC18F4320 4096 512 40
PIC18F4331 4096×16 512 40
PIC18F442 8192×16 768 40
PIC18F4431 8192×16 768 40
PIC18F4450 8192×16 1024 40
PIC18F448 8192×16 768 40
PIC18F452 16384×16 1536 40
PIC18F4550 16384×16 1024 40
PIC18F458 16384×16 1536 40
PIC18F6520 16384×16 2048 40
PIC18F6585 24576 3072 40
PIC18F6620 32768×16 3840 40
PIC18F6680 32768 3072 40
PIC18F6720 65536×16 3840 40
PIC18F8520 16384×16 2048 40
PIC18F8585 24576 3072 40
PIC18F8620 32768×16 3840 40
PIC18F8680 32768 3072 40
PIC18F8720 65536×16 3840 40
Для программирования контроллеров нужны компьютеp, пpогpамматоp, подключаемый к паpаллельному поpту компьютеpа, сама микpосхема контроллер (PIC16F84), макетная плата, 8 светодиодов, источник +5 В и панелька для микpосхемы. Простую и популярную программу PonyProg2000 можно скачать в разделе софт.
ФОРУМ по микрорконтроллерам
Схемы на микроконтроллерахelwo.ru
Что бы узнать, какие биты в каких регистрах нам потребуются для конкретного модуля — придется снова заглянуть в документацию.
Для примера, взглянем на таблицу регистров, имеющих отношение к цифровым входам\выходам порта B:
Считав значения регистра PORTB мы получим текущий логический уровень на каждой ножке порта.
Запись в регистр устанавливает указанный уровень на соответсующих ножках порта.
Каждый бит регистра нам доступен в виде отдельной переменной, именно через них мы управляли светодиодом и считывали состояние кнопки.
Регистр TRISB отвечает за направление данных через порт. Каждый из 8 битов регистра привязан к соответсвующей ножке МК.
Присвоив нужному биту единицу — мы сделаем из него вход, а присвоив ноль — выход.
Именно в этом регистре мы меняли биты через переменные pin_Bx_direction.
В регистре OPTION_REG к порту относится только старший бит:
RBPU: PORTB Pull-up Enable bit
1 = PORTB pull-ups are disabled
0 = PORTB pull-ups are enabled by individual port latch values
OPTION_REG_NRBPU = 0
При желании узнать принцип работы конкретного модуля поближе всегда можно найти в документации принципиальную схему.
Допустим, нужно нам мигать одним светодиодом постоянно с большим периодом, а второй переключать по нажатию кнопки.
Какой бы порядок действий мы не выбрали, как надо у нас ничего не заработает: ведь пока микроконтролер отсчитывает время до переключения первого светодиода он может пропустить факт нажатия кнопки.
Тут нам и придут на помощь прерывания.
При определенных условиях микроконтроллер может прервать выполнение бесконечного цикла и выполнить небольшую подпрограмму, после чего вернуться к выполнению основной задачи.
В выбранном нами МК 16f628a имеется 10 возможных источников прерываний:
Прерывание по каждому источнику можно как разрешить, так и запретить индивидуально изменяя соответствуюющие биты в регистрах INTCON и PIE1.
Для разрешения прерываний, управляемых регистром PIE1 необоходимо разрешить прерывания от перифирии битом PEIE в регистре INTCON.
После выбора необходимых источников прерываний необходимо глобально разрешить прерывания битом GIE в регистре INTCON.
Для каждого прерывания имеется еще один бит в регистре INTCON или PIR1 — флаг прерывания.
При срабатывании прерывания соответсвующему флагу присваивается значение 1, по которому можно легко определить какое из прерываний сработало.
Сбрасывать флаги прерываний необходимо вручную после входа в обработчик прерываний, иначе при нескольких источниках разобрать кто конкретно его вызвал будет невозможно.
В качестве примера использования прерываний перепишем нашу программу по миганию светодиодом.
Воспользуемся источником прерываний INT. В зависимости от состояния бита INTEDG в регистре OPTION прерывание будет генерироваться либо по переднему фронту сигнала (переход с низкого уровня к высокому), либо по заднему.
Для изменения уровня сигнала на INT неободимо перенести кнопку на соответсвующую ногу (pin 6).
include 16f628a -- target PICmicro
--
pragma target clock 4_000_000 -- указываем рабочую частоту, необходимо для некоторых функций расчета времени
-- конфигурация микроконтролера
pragma target OSC INTOSC_NOCLKOUT -- используем внутренний кварц
pragma target WDT disabled -- сторожевой таймер отключен
pragma target PWRTE disabled -- таймер питания отключен
pragma target MCLR external -- внешний сброс активен
pragma target BROWNOUT disabled -- сбос при падении питания отключен
pragma target LVP disabled -- программирование низким напряжением отключено
pragma target CPD disabled -- защита EEPROM отключена
pragma target CP disabled -- защита кода отключена
--
enable_digital_io() -- переключение всех входов\выходов на цифровой режим
--
alias led is pin_B5 -- светодиод подключен к RB5
pin_B5_direction = output -- настраиваем RB5 как цифровой выход
--
alias button is pin_B0 -- кнопка подключена к RB0
pin_B0_direction = input -- настраиваем RB0 как вход
var volatile bit led_blink = false -- объявляем переменную
-- настраиваем прерывание
INTCON_INTE = on -- разрешаем прерывание по изменению сигнала на INT
INTCON_INTF = off -- сбрасываем флаг прерывания по INT
OPTION_REG_INTEDG = 0 -- генерировать прерывания при переходе 1->0
INTCON_GIE = on -- включаем обработку прерываний
-- обработчик прерывания INT
procedure INT_ISR is
pragma interrupt
if INTCON_INTF then -- проверяем флаг нужного нам прерывания
INTCON_INTF = off -- сбрасываем флаг прерывания
led_blink = !led_blink -- перключаем флаг светодиода
end if
end procedure
led = off -- выключаем светодиод
forever loop
led = off -- выключаем светодиод
_usec_delay(100000) -- ждем 0,1 сек
if led_blink then -- моргаем только при активном флаге
led = on -- ждем 0,1 сек
_usec_delay(100000) -- ждем 0,1 сек
end if
end loop
При тактировании таймера от внешнего источника таймер превращается в счетчик внешних импульсов. В принципе счета ничего не меняется, просто в зависимости от источника может не получиться постоянная частота прерываний. Счетчиком можно считать количество нажатий кнопки, оборотов колеса и пр. При этом никто не обязывает считать от нуля до прерывания: текущее значение счетчика всегда доступно как для чтения, так и для записи.
При желании в режиме таймера можно увеличить частоту прерываний изменяя стартовое значение счетчика при каждом прерывании, но так как за время перехода на процедуру обработки уйдет неизвестное время, точно расчитать частоту не удастся.
Помимо постделителя, сигнал при совпадении PR2 может идти на модуль CCP в качестве базы тайминга ШИМ.
Как и TMR1, данный таймер можно отключить.
Описание каждого бита можно найти в документации на микроконтроллер.
include 16f628a -- target PICmicro
--
pragma target clock 4_000_000 -- указываем рабочую частоту, необходимо для некоторых функций расчета времени
-- конфигурация микроконтролера
pragma target OSC INTOSC_NOCLKOUT -- используем внутренний кварц
pragma target WDT disabled -- сторожевой таймер отключен
pragma target PWRTE disabled -- таймер питания отключен
pragma target MCLR external -- внешний сброс активен
pragma target BROWNOUT disabled -- сбос при падении питания отключен
pragma target LVP disabled -- программирование низким напряжением отключено
pragma target CPD disabled -- защита EEPROM отключена
pragma target CP disabled -- защита кода отключена
--
enable_digital_io() -- переключение всех входов\выходов на цифровой режим
--
alias led is pin_B5 -- светодиод подключен к RB5
pin_B5_direction = output -- настраиваем RB5 как цифровой выход
--
-- настраиваем таймер
T1CON_T1CKPS = 0b_11 -- предделитель, 2 бита
T1CON_TMR1CS = 0 -- тактирование от системной частоты
PIE1_TMR1IE = on -- разрешаем прерывание от TMR1
PIR1_TMR1IF = off -- сбрасываем флаг прерывания от TMR1
INTCON_PEIE = on -- разрешаем прерывания от периферии
T1CON_TMR1ON = on -- включаем таймер
INTCON_GIE = on -- включаем обработку прерываний--
;таймер тактируется от Fosc/4 : 4MHz/4 = 1 Mhz
;предделитель установлен на 1:8 : 1Mhz/8 = 125 kHz
;таймер - 16 бит : 125 kHz/65536 = 1.9 Hz
;светодиод включится и выключится за 2 прерывания : итоговая частота моргания 0,95 Hz
---- обработчик прерывания TMR1
procedure TMR1_ISR is
pragma interrupt
if PIR1_TMR1IF then -- проверяем флаг нужного нам прерывания
PIR1_TMR1IF = off -- сбрасываем флаг прерывания
led = !led -- переключаем состояние светодиода
end if
end procedureforever loop
-- полностью свободный основной цикл
end loop
Что такое ШИМ-сигнал?
Микроконтроллер может выдавать только цифровой сигнал — логические 1 и 0.
В ШИМ сигнале с постоянной частотой первую часть периода на выход подается 1, а вторую часть — 0. Меняя соотношение длительности обоих частей меняется скважность сигнала. Скважность ШИМ — это соотношение продолжительности импульса логической единицы и периода ШИМ. 10-битный ШИМ может обеспечить точность изменения скважности в 1/1024 длительности периода.
Как этим можно пользоваться?
Так как частота сигнала достаточно велика, то низкоскоростным нагрузкам будет казаться, что они получают напряжение, равное проценту скважности от максимума. Таким образом из ШИМ у нас выйдет обычный аналоговый выход с диапазоном напряжения от 0 до Vdd (в нашем случае — 5В).
Для высокоскоростных нагрузок (к примеру, для светодиодов) ШИМ сигнал будет регулировать процент времени работы. Для человеческого глаза мигание светодиода с большой частотой и переменной скважностью будет казаться постоянным горением с переменной яркостью.
Для работы с ШИМ имеется библиотека, потому нам не потребуется особых усилий по расчетам и настройке регистров.
Пример использования библиотеки:
-- настраиваем ШИМ
pin_CCP1_direction = output -- настраиваем pin 9 как выход
include pwm_hardware -- подключаем библиотеку, упрощающую работу с ШИМ
pwm_max_resolution(4) -- устанавливаем значение предделителя TMR2 для выбора нужной частоты (976 Hz)
pwm1_on() -- включаем ШИМvar bit fade_type = 1 -- переменная для направления изменения яркости
var byte i = 0 -- переменная для текущего уровня яркости
forever loop
-- меняем текущее значение
if fade_type then
i = i + 1
if i == 100 then
fade_type = 0
end if
else
i = i - 1
if i == 0 then
fade_type = 1
end if
end if
pwm1_set_percent_dutycycle(i) -- применяем новое значение яркости
_usec_delay(20000) -- делаем паузу, иначе процесс изменения яркости будет очень быстрым
end loop
В зависимости от настроек, компараторы могут работать в восьми режимах:
По схемам хорошо видно какие напряжения сравниваются в каждом режиме, стоит только пояснить что такое опорное напряжение Vref.
При использовании ассемблера нам пришлось бы много прочитать про порядок записи и чтения в память, нам же понадобится лишь подключить одну бибилотеку для работы с eeprom.
Для подключения библиотеки достаточно написать
include pic_data_eeprom
data_eeprom_read([offset],[byte]) -- процедура читает байт с номером [offset] и -- заносит результат в переменную [byte] data_eeprom_write([offset],[byte]) -- процедура записвает полученный байт [byte] на место [offset] data_eeprom_read_word([offset],[word]) -- процедура считывает 2 байта: [offset] и [offset]+1 data_eeprom_write_word([ofset],[word]) -- процедура записывает 2 байта подряд data_eeprom_read_dword([offset],[dword]) -- процедура считывает 4 байта подряд data_eeprom_write_dword([offset],[dword]) -- процедура записывает 4 байта подряд [byte] = data_eeprom([offset]) -- чтение байта через функцию [word] = data_eeprom_word([offset]) -- чтение двух байт через функцию [dword] = data_eeprom_dword([offset]) -- чтение 4 байт через функцию
const serial_hw_baudrate = 2400 -- задаем скорость
include serial_hardware -- подключаем библиотеку
serial_hw_init() -- производим настройку модуля
serial_hw_write([byte]) -- процедура отправки байта [byte] serial_hw_data = [byte] -- отправка байта через псевдопеременную serial_hw_read([byte]):[boolean] -- при наличии присланного байта заносит значение в -- переменную [byte] и возвращает true -- при отсуствии присланных данных возвращает false serial_hw_data_available -- при наличии принятых байт данная переменная возвращает true, иначе - false [byte] = serial_hw_data -- чтение байта через псевдопеременную, при отсутствии -- принятых байт микроконтролер будет ожидать их прихода -- при использовании такого способа чтения необходимо проверять -- факт прихода данных
Подключать внешний кварц нужно к ногам OSC1 и OSC2 (pin16 и pin 15):
Для распространенных кварцев резистор не нужен, ёмкость конденсаторов выбирается в зависимости от частоты кварца. Так же в зависимости от частоты выбирается режим, выставляемый в конфигурационном бите OSC:
Вместо кварца можно так же использовать керамический резонатор, он уже содержит в себе конденсаторы — для подключения резонатора достаточно подсоединить третий контакт к земле.
С текущим набором перифирии можно выполнить довольно много разнообразных устройств, но иногда бывает проще перейти на более укомплектованный микроконтроллер. Благодаря универсальным библиотекам, начать работать с любым другим поддерживаемым МК не составит особого труда.
habr.com
PIC — это programmable integrated circuit, «программируемая интегральная схема» — так фирма Microchip преподносит свои микроконтроллеры.
Фирма микрочип на данный момент выпускает несколько семейств КМОП микроконтроллеров с внутренним ПЗУ, ОЗУ, таймерами, АЦП, ШИМ и другими периферийными модулями. Самые маленькие это PIC10 -3–6 вывода, PIC12 — 8 выводов, PIC16- 14-68 выводов, PIC17- 40-84 вывода, PIC18- 28-84 вывода, dsPIC30-28-64 вывода, rfPIC12- 18-20 выводов, со встроенным радиоканалом. Каждое семейство имеет свое назначение и область применения.
Идентифицируют тип микроконтроллера согласно коду, следующему за семейством. То есть в обозначении идут буквы указывающие на тип памяти программ : EPROM- обозначается индексом “С”, ROM- обозначается индексом “CR”, FLASH- обозначается индексом «F». Если перед этими буквами стоит индекс “L” то это означает что данный микроконтроллер работает в расширенном диапазоне питания .
Например, PIC16LF
Далее идет порядковый номер разработки, 2-4 цифры.
Например, 84 — вроде как модель.
Буква A после номера — модификация (улучшенный вариант)
Следующие 2 цифры после номера через дефис обозначают максимальную частоту кварцевого генератора в мГц.
Например, 04 — максимальная паспортная тактовая частота (4MHz)
Последующая буква за тактовой частотой — означает рабочую температуру кристалла
I=-40°C…+85°C,
E=-40°C…+125°C,
при отсутствии буквы = 0°C…+70°C.
И, наконец, последние буквы через косую черту — обозначают тип корпуса табл1.
Например, PIC16F873-20/P — означает микроконтроллер фирмы микрочип среднего семейства, с FLASH памятью программ (многократное перепрограммирование порядка 1000 циклов), максимальная частота кварца 20мГц, рабочий диапазон температур 0°C…+70°C, корпус пластиковый типа DIP.
L | PLCC (пластиковый выводной кристаллоноситель) |
P | пластиковый DIP |
S | кристалл в ячеистой упаковке |
W | кристалл в форме пластины |
MR | микромодуль на ленте, 8 контактный, 35 мм |
MT | микромодуль на подносе, 8 контактный |
OT | SOT-23, 5 контактный |
SL | SO 150 mil, 14 выводный |
SM | SO 207 mil, 8 выводный |
SN | SO 150 mil, 8 выводный |
SO | SOIC 300 mil |
SS | пластиковый узкий SSOP |
ST | тонкий узкий SO (4.4 мм) |
TO | пластиковый транзисторный, 3 выводный |
TS | тонкий SO (8×20 мм) |
TT | маленький пластиковый транзисторный, 3 выводный |
VS | очень маленький SO (8×12 мм) |
WF | нарезанная пластина |
CL | CERQUAD с окошком |
JW | CERDIP с окошком для УФ стирания |
PQ | PQFP (пластиковый, квадратный, плоский) |
PT | TQFP (тонкий, пластиковый, квадратный, плоский) |
SP | пластиковый DIP |
SB | COB (кристалл на плате) |
СИСТЕМА КОМАНД PIC МИКРОКОНТРОЛЛЕРОВ
— содержит 35 инструкций, полный список приведен в табл.2. Команды разделены на три группы: байт ориентированные, бит ориентированные, команды управления и операций с константами.
Табл.2
Мнемоника команды | Описание | Циклов | Изм. флаги |
Байт ориентированные команды | |||
ADDWF f,d | Сложение W и f | 1 | C,DC,Z |
ANDWF f,d | Побитное ‘И’ W и f | 1 | z |
CLRF f | Очистить f | 1 | z |
CLRW> | Очистить W | 1 | z |
COMF f,d | Инвертировать f | 1 | z |
DECF f,d | Вычесть 1 из f | 1 | z |
DECFSZ f,d | Вычесть 1 из f и пропустить если 0 | 1(2) | |
INCF f,d | Прибавить 1 Kf | 1 | z |
INCFSZ f,d | Прибавить 1 к f и пропустить если 0 | 1(2) | |
IORWF f,d | Побитное ‘ИЛИ’ W и f | 1 | z |
MOVF f,d | Переслать f | 1 | z |
MOVWF f | Переслать W в f | 1 | |
NOP | Нет операции | 1 | |
RLF f,d | Циклический сдвиг f влево через перенос | 1 | с |
RRF f,d | Циклический сдвиг f вправо через перенос | 1 | с |
SUBWF f,d | Вычесть W из f | 1 | C.DC.Z |
SWAPF f,d | Поменять местами полубайты в регистре f | 1 | |
XORWF f,d | Побитное исключающее ИЛИ1 W и f | 1 | z |
Бит ориентированные команды | |||
BCF f,b | Очистить бит b в регистре f | 1 | |
BSF f,b | Установить бит b в регистре f | 1 | |
BTFSC f,b | Проверить бит b в регистре f, пропустить если 0 | 1(2) | |
BTFSS f,b | Проверить бит b в регистре f, пропустить если 1 | 1(2) | |
Команды управления и операций с константами | |||
ADDLW k | Сложить константу с W | 1 | C,DC,Z |
ANDLW k | Побитное ‘И’ константы и W | 1 | Z |
CALL k | Вызов подпрограммы | 2 | |
CLRWDT | Очистить WDT | 1 | -TO,-PD |
GOTO k | Безусловный переход | 2 | |
IORLW k | Побитное ‘ИЛИ’ константы и W | 1 | Z |
MOVLW k | Переслать константу в W | 1 | |
RETFIE | Возврат из подпрограммы с разрешением прерываний | 2 | |
RETLW k | Возврат из подпрограммы с загрузкой константы в W | 2 | |
RETURN | Возврат из подпрограммы | 2 | |
SLEEP | Перейти в режим SLEEP | 1 | -TO.-PD |
SUBLW k | Вычесть W из константы | 1 | C,DC,Z |
XORLW k | Побитное ‘исключающее ИЛИ’ константы и W | 1 | Z |
В таблице:
w -означает рабочий регистр, в некоторых микроконтроллерах данный регистр называют аккумулятором. Например при выполнении команды над регистром w и константой результат будет помещен в w (аккумулятор).
f – означает адрес регистра.
d –указатель адресата результата операции, при d=0 –результат сохраняется в регистре w, при d=1 –результат сохраняется в регистре f. В кодах программы вместо d иногда напрямую указывают регистр f или w.
b – номер бита в 8 –разрядном регистре.
k – константа, под которой понимается метка или 8 –разрядные данные.
C – флаг признака переноса.
DC- флаг признака вспомогательного переноса из младшего полубайта в старший.
Z – флаг признака нулевого результата, выполненной арифметической или логической операции.
–TO=1 – флаг выполнения команды clrwdt, sleep или включено питание,
–TO=0 – сработал wdt .
–PD=1 — флаг выполнения команды clrwdt или включено питание,
–PD=0 – выполнена команда sleep .
shemu.ru
PIC — микроконтроллеры Гарвардской архитектуры, производимые американской компанией Microchip Technology Inc. Название PIC является сокращением от Peripheral Interface Controller, что означает «периферийный интерфейсный контроллер». Название объясняется тем, что изначально PIC предназначались для расширения возможностей ввода-вывода 16-битных микропроцессоров CP1600.[1]
В номенклатуре Microchip Technology Inc. представлен широкий спектр 8-и, 16-и и 32-битных микроконтроллеров и цифровых сигнальных контроллеров под маркой PIC. Отличительной особенностью PIC-контроллеров является хорошая преемственность различных семейств. Это и программная совместимость (единая бесплатная среда разработки MPLAB IDE), и совместимость по выводам, по периферии, по напряжениям питания, по средствам разработки, по библиотекам и стекам наиболее популярных коммуникационных протоколов. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, памяти, количеством выводов, производительностью, диапазонами питания и температуры и т. д.
8-битные микроконтроллеры имеют модифицированную Гарвардскую архитектуру и делятся на 2 больших семейства: PIC10/12/16 и PIC18.
8-битные микроконтроллеры PIC10/12/16 представлены двумя базовыми архитектурами ядра: BASELINE и MID-RANGE.
Базовая архитектура (BASELINE) состоит из контроллеров семейства PIC10 и части контроллеров семейств PIC12 и PIC16. Основываются они на 12-и разрядной архитектуре слова программ и представлены контроллерами в корпусах от 6 до 28-и выводов. Упрощенная архитектура базового семейства предоставляет наиболее дешевое решение из предлагаемых Microchip. Широкий диапазон напряжений питания, возможность работы при низких напряжениях преследует целью возможность применения микроконтроллеров в батарейных устройствах.
Архитектура среднего семейства (Mid-Range) нашла применение в микроконтроллерах серий PIC12 и PIC16, и имеет ширину слова памяти программ 14 бит. Эти микроконтроллеры выпускаются в корпусах от 8 до 64 выводов. Микроконтроллеры с Flash памятью работают в диапазоне напряжений питания от 2.0 до 5.5В, имеют систему прерываний, аппаратный стек и энергонезависимую память данных EEPROM, а также богатый набор периферии, такой как USB, SPI, I²C, USART, LCD, компараторы, АЦП и т. п.
Расширенное ядро микроконтроллеров среднего семейства
В более новых микроконтроллерах Microchip применяет улучшенную архитектуру 8-битных PIC микроконтроллеров среднего семейства PIC12 и PIC16:
Высокопроизводительное семейство 8-битных микроконтроллеров PIC18F представлено широкой гаммой микроконтроллеров, включающих большой набор периферийных модулей: 10бит АЦП, компараторы, ШИМ, захват/сравнение, драйвер ЖКИ; интерфейсы связи USB, CAN, I2C, SPI, USART, Ethernet и т. д.
Компания Microchip Technology Inc. производит два семейства 16-и разрядных микроконтроллеров (MCU) и два семейства 16-и разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Общие атрибуты всех 16-и разрядных семейств — это совместимость по выводам, общая система команд и, соответственно, общие компиляторы Си и средства разработки. Широкая линейка 16-битных контроллеров включает контроллеры от 18 до 100 выводов с объемом flash памяти от 6 Кб до 536 Кб.
Основные особенности:
16-битные микроконтроллеры представлены в двух модификациях — PIC24F и PIC24H, которые отличаются технологией изготовления FLASH программной памяти. Это определяет диапазон питающих напряжений — для PIC24F — 2,0…3,6 В, для PIC24H — 3,0…3,6 В. Первое семейство (PIC24F) производится по более дешевой технологии (0,25 мкм) и работает с максимальной производительностью ядра 16MIPS@32МГц. Второе семейство (PIC24H) производится с использованием более сложного техпроцесса изготовления, что позволяет добиться большей скорости работы (40MIPS@80МГц). Оба семейства поддерживают внутрисхемное программирование (ICSP), а также самопрограммирование (RTSP).
Компания Microchip предлагает два семейства 16-ти разрядных Flash микроконтроллеров с поддержкой команд цифровой обработки сигналов — dsPIC30F и dsPIC33F. Высокое быстродействие в (30 MIPS для dsPIC30F, 40 MIPS для dsPIC33FJ, 70 MIPS для dsPIC33EP) и эффективная система команд позволяет использовать контроллеры в сложных системах реального времени. Ключевые особенности:
Если о PIC24F можно говорить, как об усеченном доработанном варианте dsPIC30F (без ядра ЦОС, с трехвольтовым питанием и переработанным конвейером), то PIC24H — это усеченный вариант dsPIC33F. Хотя в данном сравнении нарушены причинно-следственные связи, технически оно верно. Ядро dsPIC33F полностью аналогично ядру dsPIC30F, за исключение того что в dsPIC33F команда выполняется за два такта генератора. Семейства полностью совместимы по набору инструкций, программной модели и способам адресации, что позволяет использовать библиотеки и исходные коды программ, написанные для dsPIC30F. Особо следует отметить переработанную по сравнению с dsPIC30F систему тактирования. dsPIC33F, как и семейство PIC24H, имеют PLL с дробным коэффициентом умножения (конфигурируемым программно), что позволяет получить сетку частот от 12,5 МГц до 80 МГц с шагом 0,25 МГц при использовании кварцевого резонатора 4 МГц. Кроме того, контроллеры dsPIC33F и PIC24H имеют два внутренних высокостабильных RC-генератора с частотами 7,3728 МГц и 32,768 кГц. Отдельный делитель тактовой частоты ядра (модуль DOZE) присутствует во всех новых 16-битных семействах. Он позволяет уменьшить тактовую частоту, подаваемую на ядро независимо от тактовой частоты периферийных модулей, что необходимо для уменьшения потребления в энергоограниченных приложениях. Большой выбор по периферии контроллеров ЦОС:
Общего назначения:
Для управления двигателями и преобразователями энергии
Для импульсных источников питания (SMPS)
Для работы со звуком:
Для управления графическими дисплеями:
Старшим семейством контроллеров от Microchip Technology является 32-разрядное семейство микроконтроллеров PIC32:
Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объемом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы — те же, что у PIC24, и 16-битный параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидко-кристаллических TFT-индикаторов. Семейство PIC32 построено на ядре MIPS32®, с конкурентоспособной комбинацией низкого потребления энергии, быстрой реакции на прерывание, функциональностью средств разработки и лидирующем в своем классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра.
Для программирования микроконтроллеров семейства PIC применяется фирменный программатор-отладчик IC PROG, ICD-2, ICD-3, REAL ICE, Pickit. Эти программаторы позволяют как программировать, так и отлаживать код: пошаговое выполнение, точки останова, просмотр оперативной и программной памяти, просмотр стека.
dic.academic.ru
Микроконтроллеры семейств PIC (Peripheral Interface Controller) компании Microchip объединяют все передовые технологии микроконтроллеров: электрически программируемые пользователем ППЗУ, минимальное энергопотребление, высокую производительность, хорошо развитую RISC-архитектуру, функциональную законченность и минимальные размеры. Широкая номенклатура изделий обеспечивает использование микроконтроллеров в устройствах, предназначенных для разнообразных сфер применения.
Первые микроконтроллеры компании Microchip PIC16C5x появились в конце 1980-х годов и благодаря своей высокой производительности и низкой стоимости составили серьезную конкуренцию производившимся в то время 8-разрядным МК с CISC-архитектурой.
Высокая скорость выполнения команд в PIC -контроллерах достигается за счет использования двухшинной гарвардской архитектуры вместо традиционной одношинной фон-неймановской. Гарвардская архитектура основывается на наборе регистров с разделенными шинами и адресными пространствами для команд и данных. Все ресурсы микроконтроллера, такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные аппаратные регистры .
Микроконтроллеры PIC содержат RISC-процессор с симметричной системой команд, позволяющей выполнять операции с любым регистром, используя произвольный методадресации. Пользователь может сохранять результат операции в самом регистре -аккумуляторе или во втором регистре, используемом для операции.
В настоящее время компания Microchip выпускает пять основных семейств 8-разрядных RISC-микроконтроллеров, совместимых снизу вверх по программному коду:
PIC12CXXX – семейство микроконтроллеров, выпускаемых в миниатюрном 8-выводном исполнении. Эти микроконтроллеры выпускаются как с 12-разрядной (33 команды), так и с 14-разрядной (35 команд) системой команд. Содержат встроенный тактовый генератор, таймер /счетчик, сторожевой таймер, схему управления прерываниями. В составе семейства есть микроконтроллеры со встроенным 8-разрядным четырехканальным АЦП. Способны работать при напряжении питания до 2,5 В;
PIC16C5X – базовое семейство микроконтроллеров с 12-разрядными командами (33 команды), выпускаемое в 18-, 20- и 28-выводных корпусах. Представляют собой простые недорогие микроконтроллеры с минимальной периферией. Способность работать при малом напряжении питания (до 2 В) делает их удобными для применения в переносных конструкциях. В состав семейства входят микроконтроллеры подгруппы PIC16HV5XX, способные работать непосредственно от батареи в диапазоне питающих напряжений до 15 В;
PIC16CXXX – семейство микроконтроллеров среднего уровня с 14-разрядными командами (35 команд). Наиболее многочисленное семейство, объединяющее микроконтроллеры с разнообразными периферийными устройствами, в число которых входят аналоговые компараторы, аналогово-цифровые преобразователи, контроллеры последовательных интерфейсов SPI, USART и I2C, таймеры-счетчики, модули захвата/сравнения, широтно-импульсные модуляторы, сторожевые таймеры, супервизорные схемы и так далее;
PIC17CXXX – семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (58 команд), работающие на частоте до 33 МГц, с объемом памяти программ до 16 Кслов. Кроме обширной периферии, 16-уровневого аппаратного стека и векторной системы прерываний, почти все микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8х8, выполняющий операцию умножения за один машинный цикл. Являются одними из самых быстродействующих в классе 8-разрядных микроконтроллеров;
PIC18CXXX – семейство высокопроизводительных микроконтроллеров с расширенной системой команд 16-разрядного формата (75 команд) и встроенным 10-разрядным АЦП, работающие на частоте до 40 МГц. Содержат 31-уровневый аппаратный стек, встроенную память команд до 32 Кслов и способны адресовать до 4 Кбайт памяти данных и до 2 Мбайт внешней памяти программ. Расширенное RISC-ядро микроконтроллеров данного семейства оптимизировано под использование нового Си-компилятора.
Большинство PIC -контроллеров выпускаются с однократно программируемой памятью программ (OTP), с возможностью внутрисхемного программирования или масочным ПЗУ. Для целей отладки предлагаются более дорогие версии с ультрафиолетовым стиранием и Flash-памятью. Полный список выпускаемых модификаций PIC -контроллеров включает порядка пятисот наименований. Поэтому продукция компании перекрывает почти весь диапазон применений 8-разрядных микроконтроллеров.
Из программных средств отладки наиболее известны и доступны различные версии ассемблеров, а также интегрированная программная среда MPLAB. Российские производители программаторов и аппаратных отладочных средств также уделяют внимание PIC -контроллерам. Выпускаются как специализированные программаторы, такие как PICPROG, программирующие почти весь спектр PIC -микроконтроллеров, так и универсальные: UNIPRO и СТЕРХ, поддерживающие наиболее известные версии PIC -контроллеров.
Наиболее распространенными семействами PIC -контроллеров являются PIC16CXXX и PIC17CXXX.
studfiles.net
Информация\Микроконтроллеры\Микроконтроллеры фирмы Microchip
Здесь представлена информация по микроконтроллерам фирмы Microchip, иначе именуемым PIC-микроконтроллерам. Представлены для свободного скачивания книги и справочники. Вы можете здесь же заказать бумажный вариант книги.
radiotract.ru
В настоящее время появилось много принципиальных схем с использованием различных микроконтроллеров, в том числе и микроконтроллеров PIC фирмы MicroChip. Это позволило получить достаточно функциональные устройства, несмотря на их простоту.
Но работа микроконтроллера невозможна без программы управления, которую необходимо записать. В данной статье мы рассмотрим универсальный программатор PIC — EXTRA-PIC позволяющий программировать PIC контроллеры и память EEPROM I2C через COM порт либо через переходник COM-USB.
Список поддерживаемых микросхем, при использовании с программой IC-PROG v1.05D:
PIC-контроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*, PIC16C782*, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16F877A, PIC16C923*, PIC16C924*, PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*
Примечание: микроконтроллеры, которые отмечены звездочкой (*) необходимо подключить к программатору через ICSP разъем.
Последовательная память EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.
Непосредственно сама схема программатора EXTRA-PIC:
В качестве источника питания можно использовать стабилизатор напряжения построенный на микросхеме LM317.
Программатор (1,5 Mb, скачано: 10 743)
Программируемый контроллер подключается через разъем X3. Ниже приведена распиновка выводов программирования под разные контроллеры:
А теперь инструкция как запрограммировать микроконтроллер.
В виде примера возьмем микроконтроллер PIC16F876A.
Соберите программатор и подготовьте блок питания с напряжением на выходе не менее 15В
Программа icpr105d (1,6 Mb, скачано: 8 530)
Распакуйте программу в отдельный каталог. В созданном каталоге должны находиться три файла:
icprog.exe — файл оболочки программатора;
icprog.sys — драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы;
icprog.chm — файл помощи (Help file).
Настройка программы IC-PROG v1.05D.
Для Windows95, 98, ME | Для Windows NT, 2000, XP |
(Только для Windows XP ): Правой кнопкой щёлкните на файле icprog.exe. «Свойства » >> вкладка «Совместимость » >> Установите «галочку» на «Запустить программу в режиме совместимости с: » >> выберите «Windows 2000 «. | |
| |
«Настройки » >> «Программатор «.Проверьте установки, выберите используемый вами COM-порт, нажмите «Ok «. | |
Далее, «Настройки » >> «Опции » >> выберите вкладку «Общие » >> установите «галочку» на пункте «Вкл. NT/2000/XP драйвер » >> Нажмите «Ok » >> если драйвер до этого не был установлен в системе, в появившемся окне «Confirm » нажмите «Ok «. Драйвер установится, и оболочка программатора перезапустится. | |
Примечание: Для очень «быстрых» компьютеров возможно потребуется увеличить параметр «Задержка Ввода/Вывода «. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы. | |
«Настройки » >> «Опции » >> выберите вкладку «I2C » >> установите «галочки» на пунктах:»Включить MCLR как VCC » и «Включить запись блоками «. Нажмите «Ok «. | |
Программа готова к работе. |
Установите микросхему в панель программатора, соблюдая положение ключа.
Подключите шнур удлинителя, включите питание.
Запустите программу IC-PROG.
В выпадающем списке выберите контроллер PIC16F876A.
Если у вас нет файла с прошивкой — подготовьте его:
откройте стандартную программу «Блокнот»;
вставьте в документ текст прошивки;
сохраните под любым именем, например, prohivka.txt (расширение *.txt или *.hex).
Далее в IC-PROG Файл >> Открыть файл (! не путать с Открыть файл данных ) >> найти наш файл с прошивкой (если у нас файл с расширением *.txt , то в типе файлов выберите Any File *.* ). Окошко «Программного кода» должно заполнится информацией.
Нажимаем кнопку «Программировать микросхему» (загорается красный светодиод).
Ожидаем завершения программирования (около 30 сек.).
Для контроля нажимаем «Сравнить микросхему с буфером».
www.joyta.ru