категории: Микроконтролер вериги
Брой преглеждания: 23111
Коментари към статията: 0
PIC микроконтролери за начинаещи
На съвременния пазар има редица семейства и серия от микроконтролери от различни производители, сред тях могат да се разграничат AVR, STM32 и PIC. Всяко от семействата е намерило свой собствен обхват. В тази статия ще разкажа на начинаещите за PIC микроконтролерите, а именно какво е и какво трябва да знаете, за да започнете с тях.
Какво е PIC
PIC е името на серия микроконтролери, произведени от Microchip Technology Inc (САЩ). Името PIC идва от периферния интерфейсен контролер.
PIC микроконтролерите имат RISC архитектура. RISC - съкратен набор от инструкции, се използва и в процесори за мобилни устройства. Има няколко примера за неговото използване: ARM, Atmel AVR и други.
През 2016 г. Microchip купи Atmel, производител на AVR контролери. Следователно официалният уебсайт представя микроконтролери на семейството и PIC и AVR.
семейство
Сред 8-битовите PIC микроконтролери се състои от 3 фамилии, които се различават по архитектура (битова дълбочина и набор инструкции).
-
Базова линия (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);
-
Среден обхват (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);
-
Подобрен среден обхват (PIC12F1xxx, PIC16F1xxx);
-
High-end или PIC18 (18Fxxxx, 18FxxJxx и 18FxxKxx).
Характеристиките са дадени в таблицата по-долу.
В допълнение към 8-битовите микроконтролери, Microchip произвежда 16-битови:
-
PIC24F;
-
DsPIC30 / 33F за обработка на сигнали.
Представителите на 16-битовото семейство работят със скорост от 16 до 100 MIPS (изпълнени милиони инструкции в секунда). Заслужава да се отбележи и характеристики:
-
машинен цикъл - 2 цикъла;
-
Разделителна способност на ADC - 16 бита;
-
поддържат редица комуникационни протоколи (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN и SENT), PWM и др.
Съществува и фамилия от 32-битови микроконтролери - PIC32MX, основните характеристики:
-
работят с честота до 120 MHz;
-
Изпълнете до 150 MIPS
-
ADC: 10-битов, 1 Msps (скорост на квантоване), до 48 канала.
С какъв PIC да започнете?
Начинаещите трябва да започнат овладяването на PIC микроконтролери от 8-битова линия. Като цяло производителят твърди, че характеристика на цялото семейство е лесната преносимост на програмите от едно семейство в друго и изрязването на редица модели.
Един от най-популярните микроконтролери в любителската радио среда е PIC16f628A. Техническите му характеристики са както следва:
-
Има вграден генератор на часовник. Можете да настроите да работите с честота от 4 или 8 MHz;
-
18 пина, от които 16 - вход / изход и 2 - мощност;
-
За да работите на честоти до 20 MHz, можете да свържете кварцов резонатор, но в този случай не са останали 16, а 14 крака за вход / изход;
-
В маркировката има буква F, което означава, че се използва FLASH-памет с капацитет от 2048 думи;
-
14-битови инструкции, 35 броя;
-
2 сравнителни;
-
4 аналогови входа;
-
PORTB входовете имат издърпващи се резистори;
-
Два 8-битови таймера и един 16-битов;
-
Машинен цикъл - 4 цикъла на кварцов резонатор или вътрешен осцилатор);
-
224 байта RAM;
-
128 байта EEPROM;
-
USART - сериен порт;
-
вътрешно референтно напрежение
-
захранва се от 3.3 до 5 V.
Причините за неговата популярност са ниската цена и възможността за часовник от вътрешен генератор.
Коя фигура 16f628 е показана по-долу:
Блокът вътрешна схема на този микроконтролер е показан по-долу.
На какво на първо място трябва да обърна внимание в схемата?
Този микроконтролер има два порта PORTA и PORTB. Всеки щифт, всеки от тях може да се използва като вход и изход, както и за свързване на периферни устройства или активиране на други модули на микроконтролера.
Обмислете подробно тази част от схемата.
Например, портовете RB0-RB3 - могат да действат като аналог. Ако е необходимо, източник на часовник е свързан към RA6, RA7 (кварцов резонатор). Изходите на самия микроконтролер се конфигурират в режим на вход / изход, като се използва регистърът TRIS.
Има команди за този тип:
TRISA = 0; // Всички пинове на порт А са зададени като изходи
TRISB = 0xff; // Всички пинове на порт B се задават като входове
TRISA0 = 1; // Значи отделен пин е зададен като вход (1) или изход (0)
TRISA5 = 1; // тук петият изход на порт А е зададен като вход
Като цяло режимите на работа, включването на WDT (часовник за наблюдение), изборът на тактовия източник на микроконтролера и т.н. се конфигурират с помощта на регистри със специално предназначение - SFR, а паметта и данните се съхраняват в GFR - с прости думи, това е статична RAM памет.
В официалния лист с данни на страници 18-21 ще намерите 4 банки с памет за регистър със специално предназначение SFR и регистри с общо предназначение GFR. Познаването на регистрите е важно, затова отпечатайте и научете посочените страници от Технически данни.
За удобство тези таблици са представени под формата на снимки по-долу (номерирането на регистрите, като всичко в цифровата електроника, започва от 0, така че четвъртото число е 3).
Как да се свържете и на какъв език да програмирате?
За да стартирате този микроконтролер, достатъчно е да приложите плюс към Vdd и минус към Vss. Ако имате нужда от кварцов резонатор, тогава той е свързан към пинове 16 и 15 (OSC1 и OSC2) на микроконтролера PIC16f628, за други контролери с по-голям или по-малък брой пинове - погледнете в информационния лист, Но тази точка трябва да бъде посочена по време на програмиране и фърмуер.
Говорейки за преносимост и съвпадение на pinout - на 16f84A - тя е подобна, както и на много други.
Фрагмент от схема с външен резонатор, свързан към pic16f628a:
Има два основни езика за програмиране на PIC микроконтролери - асемблер и C, има и други, например PICBasic и т.н. Все още можете да подчертаете опростения език за програмиране JAL (просто друг език).
Например, по-долу е програма за „LED мига“ - един вид „Hello World“ за PIC микроконтролера в C.
В ред 1 е свързана библиотеката на PIC микроконтролери, след това е свързана библиотеката на програмата за забавяне.
В основната (void) функция първоначалните параметри се задават в началото, точно както направихме във функцията Void setup () - в статии за ардуино, След това в редове 11-16 се декларира безкраен цикъл, докато (1), по време на който се изпълнява програмата „LED мигаща“.
В примера състоянието на пристанището непрекъснато се обръща, т.е. ако беше на "0", тогава ще премине на "1" и обратно. В C за PIC има следните команди за управление на команди:
ПОРТА = 0; // превежда всички пинове на порт A на ниско ниво (log 0)
PORTB = 0xff; // превежда всички пинове на порт B на високо ниво (log 1)
RB5 = 1; // Петият щифт на порт B е висок
И изглежда като същата програма, но вече на езика JAL, преведох на руски коментари от разработчиците на вградени примери в JALedit (среда за разработка).
Има изкушение да изберете JAL и може да ви се стори по-лесно. Разбира се, можете да реализирате всякакви проекти по него, но от гледна точка на полза за вас като специалист, това е безполезен език. Ще постигнете значително по-големи резултати, като изучавате синтаксиса и принципите на програмиране в C (повечето популярни в момента езици са като C) или в Assembler - това е език на ниско ниво, който ще ви накара да разберете принципа на устройството и какво се случва в програмата във всеки даден момент.
Как се работи
Ако кажете доста обобщена за работа с всички микроконтролери, от които се нуждаете:
1. Текстов редактор.
2. Компилаторът.
3. Програмата за изтегляне на фърмуер на микроконтролера.
И дори прочетох стари учебници, където авторът, работещ от под DOS, пише код, компилира и го променя с различни средства. Сега за всички популярни операционни системи има среда за разработка, както високоспециализирана (за конкретно семейство от микроконтролери или фамилии от един производител), така и универсална (или съдържа всички необходими инструменти, или са свързани като приставки).
Например в поредица от статии за Arduino разгледахме средата на Arduino IDE, в нея написахме код и с негова помощ „изляхме“ фърмуера в „камък“. За микроконтролерите PIC има такива програми като:
-
MPASM - използва се за разработка на езика на Assembler от Microchip;
-
MPLAB е и Microchip IDE за PIC контролери. Състои се от много блокове за тестване, проверка, работа с код и компилиране на програми и изтегляне в микроконтролера. Има и версия на MPLAB X IDE - тя се отличава с голяма функционалност и е изградена на базата на платформата NetBeans;
-
MikroC е универсална среда (не само за PIKs) за развитие. Както подсказва името, той е „заточен“ за програмиране на C, а има и програми като MikroBasic и MikroPascal за съответните езици;
-
JALedit - подходящ за езика JAL, който споменахме по-горе;
-
И редица други по-малко известни.
Как да мига микроконтролер?
Има редица програмисти за PIC микронотролери. Официално се счита PICkit. Техните 4 версии. Но можете да използвате флаш и универсален например TL866 (той поддържа почти всичко, от което може да се нуждае начинаещ радиолюбител, докато е много евтин).
Също така в мрежата има редица различни програмни схеми за PIC, както за работа през COM порта:
Така че е през USB (всъщност също com, само през конвертора на IC MAX232).
заключение
Микроконтролерите PIC16 са подходящи за прости проекти, като обикновена автоматизация, волтметри, термометри и други малки неща. Но това не означава, че не можете да правите сложни и големи проекти на това семейство, дадох пример защо те се използват най-често. За обща идея препоръчвам да гледате няколко видеоклипа:
В една статия е безсмислено да се разглеждат теми за това как да се програмират микроконтролери, независимо от кое семейство. Тъй като това е много голям обем информация.
Вижте също на e.imadeself.com
: