Pic16c505 применение как подключить
Перейти к содержимому

Pic16c505 применение как подключить

Микроконтроллеры PIC для начинающих

На современном рынке есть ряд семейств и серий микроконтроллеров от разных производителей, среди них можно выделить AVR, STM32 и PIC. Каждое из семейств нашло свою сферу применения. В этой статье я расскажу начинающим о микроконтроллерах PIC, а именно, что это такое и что нужно знать для начала работы с ними.

Микроконтроллеры PIC для начинающих

Что такое PIC

PIC – это название серии микроконтроллеров, которые производятся компанией Microchip Technology Inc (США). Название PIC происходит от Peripheral Interface Controller.

Микроконтроллеры PIC имеют RISC-архитектуру. RISC – сокращённый набор команд, используется также в процессорах для мобильных устройств. Есть целый ряд примеров её использования: ARM, Atmel AVR и другие.

Компания Microchip в 2016 году купила Atmel – производителя контроллеров AVR. Поэтому на официальном сайте представлены микроконтроллеры семейства и PIC и AVR.

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

Семейства

Среди 8-битных микроконтроллеров PIC она состоит из 3-х семейств, которые отличаются архитектурой (разрядностью и набором команд).

Baseline (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx) ;

Mid-range (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx) ;

Enhanced Mid-range (PIC12F1xxx, PIC16F1xxx) ;

High-end или PIC18 (18Fxxxx, 18FxxJxx and 18FxxKxx).

Сравнение семейств микроконтроллеров

Характеристики, которых приведены в таблице ниже.

Характеристики микроконтроллеров PIC

Кроме 8 битных микроконтроллеров компания Microchip производит 16-битные:

DsPIC30/33F для обработки сигналов.

Представители 16-битного семейства работают со скоростью от 16 до 100 MIPS (выполнено миллионов инструкций в секунду). Стоит отметить и особенности:

машинный цикл – 2 такта;

разрядность АЦП – 16 бит;

поддерживают ряд протоколов связи (UART, IrDA, SPI, I2S™, I2C, USB, CAN, LIN and SENT), ШИМ и прочее.

Также есть семейство 32 битных микроконтроллеров – PIC32MX, основные особенности:

работают на частоте до 120 мГц;

выполняют до 150 MIPS;

АЦП: 10-бит, 1 Msps (скорость квантования), до 48 каналов.

С какого PIC начать?

Новичкам стоит начать осваивать микроконтроллеры PIC с 8-битной линейки. Вообще, производитель заявляет о том, что особенностью всего семейства является лёгкая переносимость программ с одного семейства на другое и совпадения цоколевки ряда моделей.

Одним из популярнейших в среде радиолюбителей микроконтроллеров является PIC16f628A. Его технические характеристики такие:

Есть встроенный тактовый генератор. Вы можете настроить для работы с частотой 4 или 8 МГц;

18 пинов, из них 16 – ввод/вывод, а 2 – питание;

Для работы на частотах до 20 МГц можно подключить кварцевый резонатор, но в этом случае на ввод/вывод останется не 16, а 14 ног;

В маркировке есть буква F, это значит, что используется FLASH-память, объёмом в 2048 слов;

14-битные инструкции, 35 штук;

4 аналоговых входа;

На входах PORTB есть подтягивающие резисторы;

Два 8-битных таймера и один 16-битный;

Машинный цикл – 4 такта кварцевого резонатора или внутреннего генератора);

128 байт EEPROM;

USART – последовательный порт;

внутренний источник опорного напряжения;

питается от 3.3 до 5 В.

Причинами популярности является низкая цена и возможность тактирования от внутреннего генератора.

Какая цоколевка у 16f628 изображено ниже:

Цоколевка у 16f628

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

Структура микроконтроллера 16f628

Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств

На что следует обратить внимание на схеме в первую очередь?

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

Рассмотрим эту часть схемы крупно.

Порты МК

Например, порты RB0-RB3 – могут выступать в роли аналоговых. К RA6, RA7 в случае необходимости подключается источник тактирования (кварцевый резонатор). Сами же выводы микроконтроллера настраиваются в режим входа/выхода с помощью регистра TRIS.

Для этого есть команды типа:

TRISA = 0; // Все выводы порта А устанавливаются как выходы
TRISB = 0xff; // Все выводы порта B назначаются как входы
TRISA0 = 1; // Так назначается отдельный пин как вход (1) или выход (0)
TRISA5 = 1 ; // здесь 5 вывод порта А – назначен входом

Вообще режимы работы, включение WDT (сторожевого таймера) выбор источника тактирования микроконтроллера и прочее настраивается с помощью регистров специального назначения — SFR, а память и данные хранятся в GFR – простыми словами это статическое ОЗУ.

В официальном Datasheet, на страницах 18-21 вы найдете 4 банка памяти регистров специального назначения SFR и регистров общего назначения GFR. Знание регистров важно, поэтому распечатайте и выучите указанные страницы из Datasheet .

Для удобства ниже приведены эти таблицы в виде картинок (нумерация регистров, как и всё в цифровой электронике начинается с 0, поэтому номер четвертого – 3).

Регистры специального назначения

Регистры специального назначения

Регистры специального назначения

Регистры специального назначения

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

Чтобы запустить этот микроконтроллер достаточно подать плюс на Vdd и минус на Vss. Если нужен кварцевый резонатор, то он подключается к выводам 16 и 15 (OSC1 и OSC2) микроконтроллера PIC16f628, для других контроллеров с большим или меньшим числом выводов – смотрите в datasheet. Но этот момент нужно указывать при программировании и прошивке.

Кстати о переносимости и совпадении цоколевки – на 16f84A – она аналогична, и на многих других.

Подключение кварцевого резонатора

Фрагмент схемы с подключенным к pic16f628a внешним резонатором:

Фрагмент схемы с подключенным к pic16f628a внешним резонатором

Есть два основных языка для программирования микроконтроллеров PIC – это assembler и C, есть и другие, например PICBasic и т.д. Еще можно выделить упрощенный язык программирования JAL (just another language).

Для примера ниже приведена программа для «мигания светодиодом» — своего рода «Hello World» для микроконтроллера PIC на языке C.

Пример программы микроконтроллера PIC на языке C

В 1 строке подключается библиотека микроконтроллеров PIC, далее подключается библиотека программы задержки.

В функции main(void) в начале устанавливаются начальные параметры, подобно тому как мы это делали в функции Void setup () – в статьях об ардуино. Далее в строках 11-16 объявляется бесконечный цикл while(1), в ходе которого и выполняется программа «мигания светодиодом».

В примере состояние порта постоянно инвертируется, т.е. если он был в «0», то перейдет в «1» и наоборот. На C для PIC есть следующие команды управления команды:

PORTA = 0; // переводит все пины порта А в низкий уровень (лог. 0)
PORTB = 0xff; // переводит все пины порта B в высокий уровень (лог. 1)
RB5 = 1; // На пятом выводе порта B высокий уровень

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

Пример программы на языке JAL

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

В чем работать

Если сказать совсем обобщенно для работы с любыми микроконтроллерами нужно:

1. Текстовый редактор.

3. Программа для загрузки прошивки в микроконтроллер.

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

Например, в цикле статей об Arduino мы рассматривали среду Arduino IDE в ней же мы и код писали и с её помощью «заливали» прошивку в «камень». Для микроконтроллеров PIC есть такие программы, как:

MPASM — используется для разработки на языке Assembler от фирмы Microchip ;

MPLAB — также IDE от Microchip для PIC-контроллеров. Состоит из множества блоков для тестирования, проверки, работы с кодом и компиляции программ и загрузки в микроконтроллер. Также есть версия MPLAB X IDE – отличается большим функционалом и построена на базе платформы NetBeans ;

MikroC — универсальная среда (не только для ПИКов) для разработки. Как видно из названия «заточена» под программирование на C, а также есть такие программы как MikroBasic и MikroPascal, для соответствующих языков ;

JALedit — подходит для языка JAL, о котором мы упоминали выше ;

И ряд других менее известных.

MPLAB IDE

Как прошивать микроконтроллер?

Для PIC-микронотроллеров есть ряд программаторов. Официальным считается PICkit. Их 4 версии. Но можно прошивать и универсальными, например, TL866 (он поддерживает почти всё, что может понадобится начинающему радиолюбителю, при этом очень дешевый).

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

Также в сети есть ряд различных схем программаторов для ПИКов, как для работы через COM-порт:

Схема программатора

Так и через USB (на самом деле тоже com, только через преобразователь на ИМС MAX232).

Заключение

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

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

Катцен С. — PIC-микроконтроллеры. Все что вам необходимо знать;

Кёниг А. — Полное руководство по PIC микроконтроллерам;

Шпак Ю.А. — Программирование на языке С для AVR и PIC микроконтроллеров;

Магда Ю.С. — Микроконтроллеры PIC: архитектура и программирование;

Яценков В.С. — Микроконтроллеры Microchip. Практическое руководство.

Нужно дизассемблировать прошивку PIC16C505. Вопрос к PICоведам

Коллеги,
помощь нужна.
Есть прошивка, нужно понять что и как она делает.
а от PIC я далек.

1. PIC16C505
2. Есть PicKIT2, им и слита прошивка (как для 16F505),
а вот сможет ли PicKIT2 ее залить в аналогичный чип (именно OTP)? — уже разобрался — нет
а если залить её-же но в 16F505 — нужно ли что-то менять?

3. Включение портов:
RB0 — Выход (акт. низкий)
RB1- LED (bidirectional)
RB2- in (кнопка на землю)
RB3- in (switch — на землю)
RB4 — LED (bidirectional)
RB5 — out
RC0- Выход (акт. низкий)
RC1- вход или выход, сложно сказать, как-то связано с потенциометромRC3
RC2- Выход (акт. низкий)- буззер
RC3- вход или выход, сложно сказать, как-то связано с потенциометром на RC1
RC4- .
RC5- .

работает с внутр. генератора.

RC1,3-5 — работают с датчиком температуры

По моему стоит бит защиты. Смысл имеют первые 64 байта.

у них защита легко снимается, а первые 64слова не имеют защиты.

Sun525: По моему стоит бит защиты.
и мне так кажется, судя по функционалу -как они вместили все в 64 байта? — не понимаю.
если и стоит бит защиты — то чип будет отдавать калибровочную константу осциллятора.

AnSi: у них защита легко снимается
а можно чуток по-подробнее?

вот скрин с пиккита

AnSi: у них защита легко снимается
И мне интересно.

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

Lastic: IC-Prog имеет встроеный дизассемблер
Спасибо. до пункта — получть листинг — все просто. а дальше

я сейчас ушел с пиков на AVR-ки. они мне показались «слаще». Да и их фирменная AVR Studio мне больше понравилась, чем ПИКовская MPLab. я не профессиональный программист мк. С каким датчиком температуры работает? У меня такое впечатление, что это не вся прошивка, потому как только процесс обмена с датчиком, (даже на ассемблере) не уместится в таком объеме.
а еще похоже что pic16c505 имеет отличие в системе команд c pic16F84. а код для pic16c505 мне не удалось дизассемлировать в IC-Prog. и окончание листинга не похоже на окончание программы. Похоже на бред.
LIST P=16F84, F=INHX8M
include «P16FXX.inc»
ORG 0x0000
; .
INCF 0x4A , W
SWAPF STATUS , W
CLRF 0x62
MOVF 0x6E , f
MOVF 0x7C , f
MOVF 0x5E , f
SWAPF STATUS , W
CLRF 0x62
MOVF 0x50 , f
MOVF 0x42 , f
MOVF 0x60 , f
SWAPF STATUS , W
CLRF 0x62
MOVF 0x36 , W
MOVF 0x3A , W
MOVF 0x38 , W
XORWF 0x67 , W
MOVF INDF , W
DECF 0x70 , f
INCF 0x11 , W
SUBWF 0x31 , f
; .
ADDWF 0x71 , W
INCF 0x11 , W
MOVF INDF , W
CLRWDT
ANDWF 0x24 , f
; .
; .
SUBWF 0x12 , W
COMF PCL , W
; .
SUBWF 0x12 , W
COMF 0x07 , W
CLRW
COMF 0x11 , W
RRF TMR0 , W
CLRW
RRF 0x44 , f
; .
SUBWF 0x10 , W
CLRF 0x74
XORWF STATUS , W
SUBWF 0x35 , f
SUBWF 0x11 , W
CLRF 0x75
SUBWF 0x73 , f
MOVF INDF , W
RRF FSR , W
; .
IORWF STATUS , W
DECF 0x35 , W
DECF 0x34 , W
SUBWF 0x73 , f
INCF 0x33 , W
SUBWF 0x12 , W
COMF 0x0C , W
; .
SUBWF 0x15 , W
NOP
SUBWF 0x24 , f
SUBWF 0x14 , W
NOP

Полученно с помощью MPlab

Line Address Opcode Disassembly

1 000 025 MOVWF 0x5
2 001 A4A GOTO 0x4a
3 002 E03 ANDLW 0x3
4 003 1E2 ADDWF 0x2, F
5 004 8EE RETLW 0xee
6 005 8FC RETLW 0xfc
7 006 8DE RETLW 0xde
8 007 E03 ANDLW 0x3
9 008 1E2 ADDWF 0x2, F
10 009 8D0 RETLW 0xd0
11 00A 8C2 RETLW 0xc2
12 00B 8E0 RETLW 0xe0
13 00C E03 ANDLW 0x3
14 00D 1E2 ADDWF 0x2, F
15 00E 836 RETLW 0x36
16 00F 83A RETLW 0x3a
17 010 838 RETLW 0x38
18 011 667 BTFSC 0x7, 0x3
19 012 800 RETLW 0
20 013 3F0 INCFSZ 0x10, F
21 014 A11 GOTO 0x11
22 015 2B1 INCF 0x11, F
23 016 004 CLRWDT
24 017 771 BTFSS 0x11, 0x3
25 018 A11 GOTO 0x11
26 019 800 RETLW 0
27 01A 064 CLRF 0x4
28 01B 5A4 BSF 0x4, 0x5
29 01C 071 CLRF 0x11
30 01D 070 CLRF 0x10
31 01E 212 MOVF 0x12, W
32 01F 902 CALL 0x2
33 020 007 TRIS 0x7
34 021 212 MOVF 0x12, W
35 022 907 CALL 0x7
36 023 127 IORWF 0x7, F
37 024 911 CALL 0x11
38 025 C01 MOVLW 0x1
39 026 167 ANDWF 0x7, F
40 027 CC4 MOVLW 0xc4
41 028 007 TRIS 0x7
42 029 210 MOVF 0x10, W
43 02A 1F4 ADDWF 0x14, F
44 02B 603 BTFSC 0x3, 0
45 02C 2B5 INCF 0x15, F
46 02D 211 MOVF 0x11, W
47 02E 1F5 ADDWF 0x15, F
48 02F 2F3 DECFSZ 0x13, F
49 030 800 RETLW 0
50 031 C04 MOVLW 0x4
51 032 033 MOVWF 0x13
52 033 403 BCF 0x3, 0
53 034 335 RRF 0x15, F
54 035 334 RRF 0x14, F
55 036 2F3 DECFSZ 0x13, F
56 037 A33 GOTO 0x33
57 038 212 MOVF 0x12, W
58 039 90C CALL 0xc
59 03A 024 MOVWF 0x4
60 03B 215 MOVF 0x15, W
61 03C 020 MOVWF 0
62 03D 2A4 INCF 0x4, F
63 03E 214 MOVF 0x14, W
64 03F 020 MOVWF 0
65 040 000 NOP
.
.
1023 3FE 000 NOP
1024 3FF C9C MOVLW 0x9c ; калиб. конст.

Cheeeper: а можно чуток по-подробнее?

для начала нужно вскрыть чип, примерно так — http://pro-radio.ru/user/uploads/239096.jpg
для этого нужна концентрированная азотная кислота(>93%) — если меньше, то растворятся алюминиевые проводки(видно на фото).
сделаете — потом продолжим

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

Как скачать прошивку с PIC16C505

Всем привет!
На двух парогенераторах чуток слетели прошивки (разные ошибки в работе).
Ворос знатокам: можно ли как — то скачать прошивку с рабочей PIC16C505, чтоб залить в новые? Один спец мне сказал, мол, они под защитой изготовителя , надо выписывать с фирмы.
Парни, пожалуйста, подскажите, есть ли положительный выход из данной ситуации?

Всем заранее спасибо за отклики!

  • 12 Фев 2011

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

Справочная информация

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

  • Диагностика
  • Определение неисправности
  • Выбор метода ремонта
  • Поиск запчастей
  • Устранение дефекта
  • Настройка

Неисправности

Все неисправности по их проявлению можно разделить на два вида — стабильные и периодические. Наиболее часто рассматриваются следующие:

  • не включается
  • не корректно работает какой-то узел (блок)
  • периодически (иногда) что-то происходит

О прошивках

Большинство современной аппаратуры представляет из себя подобие программно-аппаратного комплекса. То есть, основной процессор управляет другими устройствами по программе, которая может находиться как в самом чипе процессора, так и в отдельных микросхемах памяти.

На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.

Схемы аппаратуры

Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:

    (запросы) (хранилище) (запросы) (запросы)

Справочники

На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).

Marking (маркировка) — обозначение на электронных компонентах

Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.

Package (корпус) — вид корпуса электронного компонента

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

  • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
  • SOT-89 — пластковый корпус для поверхностного монтажа
  • SOT-23 — миниатюрный пластиковый корпус для поверхностного монтажа
  • TO-220 — тип корпуса для монтажа (пайки) в отверстия
  • SOP (SOIC, SO) — миниатюрные корпуса для поверхностного монтажа (SMD)
  • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
  • BGA (Ball Grid Array) — корпус для монтажа выводов на шарики из припоя

Краткие сокращения

При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

Сокращение Краткое описание
LED Light Emitting Diode — Светодиод (Светоизлучающий диод)
MOSFET Metal Oxide Semiconductor Field Effect Transistor — Полевой транзистор с МОП структурой затвора
EEPROM Electrically Erasable Programmable Read-Only Memory — Электрически стираемая память
eMMC embedded Multimedia Memory Card — Встроенная мультимедийная карта памяти
LCD Liquid Crystal Display — Жидкокристаллический дисплей (экран)
SCL Serial Clock — Шина интерфейса I2C для передачи тактового сигнала
SDA Serial Data — Шина интерфейса I2C для обмена данными
ICSP In-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
IIC, I2C Inter-Integrated Circuit — Двухпроводный интерфейс обмена данными между микросхемами
PCB Printed Circuit Board — Печатная плата
PWM Pulse Width Modulation — Широтно-импульсная модуляция
SPI Serial Peripheral Interface Protocol — Протокол последовательного периферийного интерфейса
USB Universal Serial Bus — Универсальная последовательная шина
DMA Direct Memory Access — Модуль для считывания и записи RAM без задействования процессора
AC Alternating Current — Переменный ток
DC Direct Current — Постоянный ток
FM Frequency Modulation — Частотная модуляция (ЧМ)
AFC Automatic Frequency Control — Автоматическое управление частотой

Частые вопросы

После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

Кто отвечает в форуме на вопросы ?

Ответ в тему Как скачать прошивку с PIC16C505 как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

Как найти нужную информацию по форуму ?

Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

По каким еще маркам можно спросить ?

По любым. Наиболее частые ответы по популярным брэндам — LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

Какие еще файлы я смогу здесь скачать ?

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

Полезные ссылки

Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.

Микроконтроллеры для PIC начинающих

На современном рынке есть семейств ряд и серий микроконтроллеров от разных производителей, них среди можно выделить AVR, STM32 и Каждое. PIC из семейств нашло свою сферу этой. В применения статье я расскажу начинающим о микроконтроллерах именно, а PIC, что это такое и что знать нужно для начала работы с ними.

такое Что PIC

PIC – это название микроконтроллеров серии, которые производятся компанией Microchip Inc Technology (США). Название PIC происходит от Interface Peripheral Controller.

Микроконтроллеры PIC имеют архитектуру-RISC. RISC – сокращённый набор команд, также используется в процессорах для мобильных устройств. целый Есть ряд примеров её использования: ARM, AVR Atmel и другие.

Компания Microchip в 2016 купила году Atmel – производителя контроллеров AVR. официальном на Поэтому сайте представлены микроконтроллеры семейства и AVR и PIC.

Семейства

Среди 8-битных микроконтроллеров она PIC состоит из 3-х семейств, которые отличаются разрядностью (архитектурой и набором команд).

Baseline (PIC10F2xx, PIC16F5x, PIC12F5xx, PIC16F5xx) ;

Mid-range (PIC10F3xx, PIC12F7xx, PIC12F6xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx) ;

Mid Enhanced-range (PIC12F1xxx, PIC16F1xxx) ;

High-или end PIC18 (18Fxxxx, 18FxxJxx and Характеристики).

18FxxKxx, которых приведены в таблице ниже.

битных 8 Кроме микроконтроллеров компания Microchip производит 16-DsPIC30:

битные/33F для обработки сигналов.

битного 16-Представители семейства работают со скоростью от 16 до 100 выполнено (MIPS миллионов инструкций в секунду). Стоит особенности и отметить:

машинный цикл – 2 такта;

разрядность бит – 16 АЦП;

поддерживают ряд протоколов связи (IrDA, UART, SPI, I2S™, I2C, USB, LIN, CAN and SENT), ШИМ и прочее.

есть Также семейство 32 битных микроконтроллеров – PIC32MX, особенности основные:

работают на частоте до 120 мГц;

150 до выполняют MIPS;

АЦП: 10-бит, 1 Msps (квантования скорость), до 48 каналов.

С какого PIC начать?

стоит Новичкам начать осваивать микроконтроллеры PIC с 8-линейки битной. Вообще, производитель заявляет о том, особенностью что всего семейства является лёгкая программ переносимость с одного семейства на другое и совпадения ряда цоколевки моделей.

Одним из популярнейших в среде микроконтроллеров радиолюбителей является PIC16f628A. Его технические такие характеристики:

Есть встроенный тактовый генератор. Вы настроить можете для работы с частотой 4 или 8 пинов;

18 МГц, из них 16 – ввод/вывод, а 2 – питание;

работы Для на частотах до 20 МГц можно подключить резонатор кварцевый, но в этом случае на ввод/вывод ног не 16, а 14 останется;

В маркировке есть буква F, это что, значит используется FLASH-память, объёмом в слов 2048;

14-битные инструкции, 35 штук;

4 аналоговых входах;

На входа PORTB есть подтягивающие резисторы;

битных 8-Два таймера и один 16-битный;

Машинный такта – 4 цикл кварцевого резонатора или внутреннего USART);

генератора – последовательный порт;

внутренний источник напряжения опорного;

питается от 3.3 до 5 В.

Причинами популярности является цена низкая и возможность тактирования от внутреннего генератора.

цоколевка Какая у 16f628 изображено ниже:

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

На следует что обратить внимание на схеме в первую этого

У очередь? микроконтроллера есть два порта PORTB и PORTA. Каждый пин, каждого из них использоваться может как вход и выход, а также подключения для периферии или задействования других микроконтроллера модулей.

Рассмотрим эту схемы часть крупно.

Например, порты RB0-могут – RB3 выступать в роли аналоговых. К RA6, случае в RA7 необходимости подключается источник тактирования (резонатор кварцевый). Сами же выводы микроконтроллера настраиваются в входа режим/выхода с помощью регистра TRIS.

этого Для есть команды типа:

TRISA = 0; // выводы Все порта А устанавливаются как выходы
0xff = TRISB; // Все выводы порта B назначаются входы как
TRISA0 = 1; // Так назначается отдельный как пин вход (1) или выход (0)
TRISA5 = 1 ; // вывод 5 здесь порта А – назначен входом

Вообще работы режимы, включение WDT (сторожевого таймера) источника выбор тактирования микроконтроллера и прочее настраивается с регистров помощью специального назначения — SFR, а память и хранятся данные в GFR – простыми словами это ОЗУ статическое.

Для удобства ниже приведены таблицы эти в виде картинок (нумерация регистров, всё и как в цифровой электронике начинается с 0, поэтому четвертого номер – 3).

Как подключить и на каком языке Чтобы

программировать? запустить этот микроконтроллер достаточно плюс подать на Vdd и минус на Vss. Если кварцевый нужен резонатор, то он подключается к выводам 16 и 15 (OSC1 и микроконтроллера) OSC2 PIC16f628, для других контроллеров с или большим меньшим числом выводов – смотрите в этот. Но datasheet момент нужно указывать при прошивке и программировании.

Кстати о переносимости и совпадении цоколевки – на она – 16f84A аналогична, и на многих других.

Фрагмент подключенным с схемы к pic16f628a внешним резонатором:

Есть основных два языка для программирования микроконтроллеров это – PIC assembler и C, есть и другие, например Еще и т.д. PICBasic можно выделить упрощенный язык JAL программирования (just another language).

Для ниже примера приведена программа для «мигания своего» — светодиодом рода «Hello World» для PIC микроконтроллера на языке C.

В 1 строке подключается библиотека PIC микроконтроллеров, далее подключается библиотека программы функции.

В задержки main(void) в начале устанавливаются параметры начальные, подобно тому как мы это функции в делали Void setup () – в статьях об ардуино. строках в Далее 11-16 объявляется бесконечный цикл while(1), в которого ходе и выполняется программа «мигания светодиодом».

В состояние примере порта постоянно инвертируется, т.е. если он перейдет в «0», то был в «1» и наоборот. На C для PIC есть команды следующие управления команды:

PORTA = 0; // переводит пины все порта А в низкий уровень (лог. 0)
0xff = PORTB; // переводит все пины порта B в уровень высокий (лог. 1)
RB5 = 1; // На пятом выводе высокий B порта уровень

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

разработки соблазн выбрать JAL, и вам он показаться может проще. Безусловно на нём можно любые реализовать проекты, но с точки зрения пользы вас для как для специалиста – это язык бесполезный. Значительно больших результатов вы добьетесь, синтаксис изучая и принципы программирования на языке C (большая популярных часть сейчас языков C-подобны) или на это – Assembler низкоуровневый язык, который заставит понимать вас принцип работы устройства и что программе в происходит в каждый конкретный момент времени.

В чем работать

Если сказать обобщенно совсем для работы с любыми микроконтроллерами Текстовый:

1. нужно редактор.

3. Программа для загрузки микроконтроллер в прошивки.

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

Например, в цикле статей об Arduino мы среду рассматривали Arduino IDE в ней же мы и код помощью и с её писали «заливали» прошивку в «камень». Для PIC микроконтроллеров есть такие программы, как:

используется — MPASM для разработки на языке Assembler от Microchip фирмы ;

MPLAB — также IDE от Microchip PIC для-контроллеров. Состоит из множества блоков тестирования для, проверки, работы с кодом и компиляции загрузки и программ в микроконтроллер. Также есть версия IDE X MPLAB – отличается большим функционалом и построена на платформы базе NetBeans ;

MikroC — универсальная среда (не для только ПИКов) для разработки. Как названия из видно «заточена» под программирование на C, а также такие есть программы как MikroBasic и MikroPascal, соответствующих для языков ;

JALedit — подходит для JAL языка, о котором мы упоминали выше ;

И ряд менее других известных.

Как прошивать микроконтроллер?

PIC Для-микронотроллеров есть ряд программаторов. считается Официальным PICkit. Их 4 версии. Но можно прошивать и например, универсальными, TL866 (он поддерживает почти всё, может что понадобится начинающему радиолюбителю, при очень этом дешевый).

Также в сети есть различных ряд схем программаторов для ПИКов, для как работы через COM-порт:

через и Так USB (на самом деле тоже только, com через преобразователь на ИМС MAX232).

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

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

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

прочтению С. — PIC-микроконтроллеры. Все что необходимо вам знать;

Кёниг А. — Полное руководство по микроконтроллерам PIC;

Шпак Ю.А. — Программирование на языке С для PIC и AVR микроконтроллеров;

Магда Ю.С. — Микроконтроллеры PIC: программирование и архитектура;

Яценков В.С. — Микроконтроллеры Microchip. Практическое Источник.

Нужно дизассемблировать прошивку PIC16C505. PICоведам к Вопрос

Коллеги,
помощь нужна.
Есть нужно, прошивка понять что и как она PIC.
а от делает я далек.

работает с внутр. моему.

По генератора стоит бит защиты. Смысл первые имеют 64 байта.

у них защита легко первые, а снимается 64слова не имеют защиты.

AnSi: у защита них легко снимается
а можно чуток по-вот

подробнее? скрин с пиккита

AnSi: у них легко защита снимается
И мне интересно.

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

Полученно с помощью MPlab

Line Opcode Address Disassembly

1 000 025 MOVWF 001
2 0x5 A4A GOTO 0x4a
3 002 ANDLW E03 0x3
4 003 1E2 ADDWF 004, F
5 0x2 8EE RETLW 0xee
6 005 RETLW 8FC 0xfc
7 006 8DE RETLW 007
8 0xde E03 ANDLW 0x3
9 008 ADDWF 1E2 0x2, F
10 009 8D0 RETLW 00A
11 0xd0 8C2 RETLW 0xc2
12 00B RETLW 8E0 0xe0
13 00C E03 ANDLW 00D
14 0x3 1E2 ADDWF 0x2, F
15 00E RETLW 836 0x36
16 00F 83A RETLW 010
17 0x3a 838 RETLW 0x38
18 011 BTFSC 667 0x7, 0x3
19 012 800 013 0
20 RETLW 3F0 INCFSZ 0x10, F
21 014 GOTO A11 0x11
22 015 2B1 INCF 016, F
23 0x11 004 CLRWDT
24 017 771 0x11 BTFSS, 0x3
25 018 A11 GOTO 019
26 0x11 800 RETLW 0
27 01A 064 0x4 CLRF
28 01B 5A4 BSF 0x4, 01C
29 0x5 071 CLRF 0x11
30 01D CLRF 070 0x10
31 01E 212 MOVF 01F, W
32 0x12 902 CALL 0x2
33 020 TRIS 007 0x7
34 021 212 MOVF 022, W
35 0x12 907 CALL 0x7
36 023 IORWF 127 0x7, F
37 024 911 CALL 025
38 0x11 C01 MOVLW 0x1
39 026 ANDWF 167 0x7, F
40 027 CC4 MOVLW 028
41 0xc4 007 TRIS 0x7
42 029 MOVF 210 0x10, W
43 02A 1F4 ADDWF 02B, F
44 0x14 603 BTFSC 0x3, 0
45 02C INCF 2B5 0x15, F
46 02D 211 MOVF 02E, W
47 0x11 1F5 ADDWF 0x15, F
48 02F DECFSZ 2F3 0x13, F
49 030 800 RETLW 0
50 C04 031 MOVLW 0x4
51 032 033 0x13 MOVWF
52 033 403 BCF 0x3, 0
53 335 034 RRF 0x15, F
54 035 334 0x14 RRF, F
55 036 2F3 DECFSZ 0x13, F
56 A33 037 GOTO 0x33
57 038 212 0x12 MOVF, W
58 039 90C CALL 0xc
59 024 03A MOVWF 0x4
60 03B 215 0x15 MOVF, W
61 03C 020 MOVWF 0
62 03D INCF 2A4 0x4, F
63 03E 214 MOVF 03F, W
64 0x14 020 MOVWF 0
65 040 000 1023
.
.
NOP 3FE 000 NOP
1024 C9C 3FF MOVLW 0x9c ; калиб. конст.

можно: а Cheeeper чуток по-подробнее?

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

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

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