Кіріспе
Microchip Technology компаниясының бір чипті микропроцессорлар тізімі
PIC (әдетте /pɪk/ деп айтылады) – Microchip Technology компаниясы жасаған микроконтроллерлер отбасы, бастапқыда General Instrument компаниясының микроэлектроника бөлімшесі әзірлеген PIC1640-тан туындаған. PIC атауы бастапқыда перифериялық интерфейс контроллерін білдірді, ал қазіргі уақытта Бағдарламаланатын Интеллектуалды Компьютер ретінде кеңейтілді. Отбасының алғашқы бөліктері 1976 жылы қолжетімді болды; 2013 жылға қарай компания әртүрлі кіріктірілген жүйелерде қолданылатын он екі миллиардтан астам жеке бөліктерді жіберді. 1998 жылы Microchip өзінің сәтті сериялық бағдарламаланатын PIC16C84 нұсқасының флэш-бағдарламаланатын және өшірілетін нұсқасы – PIC 16F84-ті ұсынды. 2001 жылы Microchip флэш-бағдарламаланатын құрылғыларды көптеп енгізді, толық өндіріс 2002 жылы басталды. Бүгінде PIC-тің әртүрлі бортындағы шеттік құрылғыларымен (сериялық байланыс модульдері, UART, моторды басқару ядролары және т.б.) және 256 сөзден 64К сөзге дейін және одан да көп бағдарламалық жады бар (бір "сөз" – 8-16 бит аралығында ұзындығы әр түрлі ассемблерлік тілдегі нұсқау, ол нақты PIC микроотбасысына байланысты). PIC және PICmicro қазір Microchip Technology компаниясының тіркелген тауарлық белгілері болып табылады. PIC-тің Перифериялық Интерфейс Контроллері дегенді білдіретіні жиі айтылады, бірақ General Instruments компаниясының бастапқы PIC1640 және PIC1650 құрылғылары үшін бастапқы аббревиатурасы "Бағдарламаланатын Интерфейс Контроллері" болды. Чиптегі EEPROM жады бар Microchip процессоры. 2013 жылға қарай Microchip жыл сайын бір миллиардтан астам PIC микроконтроллерлерін жеткізіп отырды.
Құрылғылар отбасылары
PIC микрочиптері Гарвард архитектурасымен жасалған және әртүрлі құрылғылар отбасыларында ұсынылады. Базалық және орта деңгейдегі отбасылар 8 биттік деректер жадын, ал жоғары деңгейдегі отбасылар 16 биттік деректер жадын пайдаланады. PIC32MZ соңғы сериясы – 32 биттік MIPS негізіндегі микробасқарушы. Нұсқау сөздерінің мөлшері 12 бит (PIC10 және PIC12), 14 бит (PIC16) және 24 бит (PIC24 және dsPIC) құрайды. Машиналық нұсқаулардың екілік бейнелері отбасы бойынша өзгеше болады және PIC нұсқауларының тізімдерінде көрсетілген. Осы отбасылар ішінде құрылғылар PICnnCxxx (CMOS) немесе PICnnFxxx (Flash) деп белгіленуі мүмкін. "C" құрылғылары көбінесе "жаңа әзірлемелер үшін жарамсыз" деп жіктеледі (Microchip тарапынан белсенді түрде қолдау көрсетілмейді). "C" құрылғыларының бағдарламалық жады OTP, ROM немесе EEPROM ретінде әртүрлі сипатталады. 2016 жылғы қазан айының мәліметі бойынша, "өндірісте" саналатын жалғыз OTP өнімі – pic16HV540. Кварц терезесі бар "C" құрылғылары (көрінеу жою үшін) қазіргі таңдағыда қол жетімді емес.
PIC10 және PIC12
Бұл құрылғыларда 12 биттік код жады, 32 байттық регистрлік файл және екі деңгейлі шағын қоңырау стегі бар. Олар PIC10 сериясымен, сондай-ақ кейбір PIC12 және PIC16 құрылғыларымен ұсынылады. Базалық құрылғылар 6-дан 40 қосқышқа дейінгі корпус түрлерінде қол жетімді. Әдетте, регистрлік файлдың алғашқы 7-9 байты арнайы мақсаттағы регистрлер, ал қалған байттары жалпы мақсаттағы жедел жад (RAM) болып табылады. Деректер мекенжайламасы регистрлік жұп арқылы жүзеге асырылады: FSR (файлді таңдау регистріне) мекенжай жазылғаннан кейін, INDF (көмекші f) регистрі адрестелген регистрдің псевдониміне айналады. Егер банктелген жедел жад қолданылса, банк нөмірі FSR-дің жоғарғы 3 битімен таңдалады. Бұл 16–31 нөмірлі регистрлерге әсер етеді; 0–15 нөмірлі регистрлер жаһандық және банк таңдау биттеріне тәуелсіз. Реестрлік кеңістік өте шектеулі болғандықтан (5 бит), сирек оқылатын 4 регистрге мекенжайлар тағайындалмаған, бірақ арнайы командалар (OPTION және TRIS) арқылы жазылған. ROM мекенжай кеңістігі 512-ге тең және әрбір 512 сөздік беттің тек алғашқы жартысындағы мекенжайларды ғана көрсетуге болады. Яғни, CALL командасы мекенжайдың төменгі 9 битін анықтайды, бірақ осы мекенжайдың төменгі 8 биті ғана команданың параметрі болып табылады, ал 9-шы бит (8-ші бит) CALL командасының өзімен 0 ретінде белгіленеді. Іздеу кестелері есептелген GOTO (PCL регистріне тапсыру) арқылы RETLW командаларының кестесіне енгізіледі. RETLW командасы W регистрінде 8 биттік тұрақты мәнді қайтарады, ол командада кодталған. Бұл "базалық ядро" үзілістерді қолдамайды; барлық кіріс-шығыс (I/O) сауалнама арқылы тексерілуі керек. Үзілістерді қолдаумен және төрт деңгейлі қоңырау стегімен жабдықталған "жақсартылған базалық" нұсқалары бар. PIC10F32x құрылғылары 256 немесе 512 сөздік орташа диапазондағы 14 биттік код жадымен, 64 байттық SRAM регистрлік файлмен және 8 деңгейлі аппараттық стекпен жабдықталған. Бұл құрылғылар 6 қосқышты SMD және 8 қосқышты DIP корпустарында (екі қосқышы қолданылмайды) қол жетімді. Тек бір кіріс және үш I/O қосқышы бар. Кешенді үзілістер жиынтығы қол жетімді. Сағаттар – 16 МГц жиілікті калибрленген ішкі осциллятор, бағдарламалық қамтамасыз ету арқылы таңдалатын жылдамдықтары және 31 кГц төмен қуат көзі.
PIC16
Бұл құрылғыларда 14 биттік код жады және жақсартылған 8 деңгейлі шақыру стегі бар. Нұсқаулар жиынтығы негізгі құрылғылардан көп ерекшеленбейді, бірақ екі қосымша опкод биті 128 регистрді және 2048 код сөзін тікелей адрестеуге мүмкіндік береді. Бірнеше қосымша әртүрлі нұсқаулар, сондай-ақ екі қосымша 8 биттік әрекет – қосу және алу нұсқаулары бар. Орташа деңгейдегі ядро PIC12 және PIC16 деп белгіленген құрылғылардың көпшілігінде қолданылады. Реестрлер кеңістігінің алғашқы 32 байты арнайы мақсаттағы регистрлерге бөлінеді, ал қалған 96 байты жалпы мақсаттағы RAM үшін пайдаланылады. Банктік RAM қолданылса, жоғары 16 регистр (0x70–0x7F) және ең маңызды арнайы мақсаттағы бірнеше регистрлер, соның ішінде RAM банкін таңдау биттерін сақтайтын STATUS регистрі – жаһандық болады. (Басқа жаһандық регистрлер – FSR және INDF, бағдарламалық тізімдегіштің төменгі 8 биті PCL, PC жоғары жүктемелі регистрі PCLATH және бас үзіліс басқару регистрі INTCON.) PCLATH регистрі, PCL регистріне жазу арқылы берілетін 8 бит немесе GOTO немесе CALL нұсқаулары арқылы берілетін 11 бит қолжетімді ROM кеңістігін адрестеу үшін жеткіліксіз болған кезде жоғары ретті нұсқаулық адрестік биттерді ұсынады.
PIC32MK
Microchip 2017 жылы PIC32MK отбасын ұсынды, ол моторларды басқару, өнеркәсіптік басқару, Өнеркәсіптік Интернет нәрселері (IIoT) және көп арналы CAN қолданбалары үшін арналған.
Деректер кеңістігі (RAM)
PIC-тер жалпы мақсаттағы RAM ретінде жұмыс істейтін регистрлер жиынтығына ие. Чиптегі аппараттық ресурстарды басқаруға арналған арнайы регистрлер де деректер кеңістігіне бейімделеді. Жад адрестеуі құрылғы сериясына байланысты өзгереді, және барлық PIC құрылғылары қосымша жадқа адрестеуді кеңейту үшін бір түрлі банктеу механизміне ие (бірақ кейбір құрылғы модельдерінде тек бір банк іске асырылған). Жаңа құрылғылар сериясында таңдалған банкке тәуелсіз, барлық адрестеу кеңістігін қамтитын жылжыту командалары бар. Ескі құрылғыларда кез келген регистрді жылжыту аккумулятор арқылы орындалуы керек. Тікелей емес адрестеуді іске асыру үшін "файлді таңдау тізілімі" (FSR) және "тікелей емес тізілім" (INDF) пайдаланылады. FSR-ге регистр нөмірі жазылады, содан кейін INDF-тен оқу немесе жазу FSR көрсеткен регистрден немесе оған орындалады. Жаңа құрылғылар бұл концепцияны кезекті сақталған деректерге қол жеткізу тиімділігін арттыру үшін пост және пре-инкремент/декрементпен кеңейтті. Бұл FSR-ді қаптама көрсеткішіне (SP) ұқсас қарауға да мүмкіндік береді. Сыртқы деректер жадына тікелей адрестеуге болмайды, тек кейбір көп түйіндік PIC18 құрылғыларында ғана мүмкіндік бар. Дегенмен, жалпы I/O порттарын сыртқы жадқа және басқа да перифериялық құрылғыларға (ішкі бағдарламаларды пайдалану арқылы) қол жеткізу үшін параллель шинаны немесе тізбекті интерфейсті құру үшін пайдалануға болады, бірақ мұндай бағдарламаланған жадқа қол жеткізу (әрине) PIC микроконтроллерінің негізгі жадына қол жеткізуден әлдеқайда баяу.
Кодты кеңістік
Код кеңістігі әдетте чиптегі ROM, EPROM немесе флэш-ROM арқылы іске асырылады. Әдетте, сыртқы жад интерфейсі болмағандықтан кодты сыртқы жадта сақтау мүмкіндігі қарастырылмаған. Ерекшеліктер – PIC17 және таңдамал жоғары контактілі PIC18 құрылғылары.
Сөздің өлшемі
Барлық PIC-тер деректерді 8 биттік бөліктермен өңдейді (және мекенжайлайды). Дегенмен, код кеңістігінің адрестеу бірлігі әдетте дерек кеңістігінен өзгеше болады. Мысалы, базалық (PIC12) және ортаңғы (PIC16) отбасыларындағы PIC-тердің бағдарламалық жады адрестеуі нұсқау енінің мөлшерімен бірдей, яғни тиісінше 12 немесе 14 бит. PIC18 сериясында бағдарламалық жад 8 биттік қадамдармен (байттармен) адрестеледі, бұл 16 биттік нұсқау енінен өзгеше. Нақтырақ айту үшін, бағдарламалық жадтың сыйымдылығы әдетте байттар емес, (бір сөздік) нұсқаулар санымен көрсетіледі.
Қоры
PIC-терде қайтару мекенжайларын сақтауға арналған аппараттық шақыру стегі бар. Ескі құрылғыларда аппараттық стек бағдарламалық түрде қолжетімді болмаған, бірақ PIC18 сериялы құрылғыларымен бұл өзгерді. Алғашқы серияларда жалпы мақсаттағы параметрлер стегіне аппараттық қолдау жетіспеді, бірақ PIC18 сериясында бұл жақсарып, PIC18 сериясы архитектурасын жоғары деңгейдегі тілдердің компиляторларына қолайлырақ етті.
Өнер көрсету
Архитектуралық шешімдер жылдамдық пен құн арақатынасын максималды деңгейге көтеруге бағытталған. PIC архитектурасы алғашқы скалярлық процессорлардың бірі болды және қазірге дейін ең қарапайым және арзан болып табылады. Гарвард архитектурасы, онда командалар мен деректер бөлек көздерден келеді, уақытты синхрондауды және микросхемалардың жобалануын едәуір жеңілдетеді, бұл процессордың жылдамдығына, бағасына және қуат тұтынуына оң әсер етеді. PIC командалар жиынтығы бағдарламалық кеңістікте жылдам іздеу кестелерін жүзеге асыруға ыңғайлы. Мұндай іздеу бір команданы және екі команда циклын қажет етеді. Көптеген функцияларды осылай модельдеуге болады. Оптимизация PIC-тің салыстырмалы түрде үлкен бағдарламалық кеңістігімен (мысалы, 16F690 моделінде 4096 × 14 биттік сөздер) және кіріктірілген тұрақтыларды қолдануға мүмкіндік беретін командалар жиынтығының құрылымымен жеңілдетіледі. Мысалы, тармақталу командасының мақсаты W регистрімен индекстелуі мүмкін және "RETLW" командасын орындауға болады, ол W регистріндегі мәнді қайтарады. Сыртқы үзілістер төрт тактылік команда циклымен синхрондалуы керек, әйтпесе бір тактылік команда циклына тең тербеліс пайда болуы мүмкін. Ішкі үзілістер бұрыннан синхрондалған. Тұрақты үзіліс күту уақыты PIC процессорларына үзіліске негізделген, төмен тербелісті уақыттық тізбектерді іске асыруға мүмкіндік береді. Бұған видеосинхроимпульс генераторы мысал болады. Бірақ бұл жаңа PIC модельдері үшін енді дұрыс емес, себебі оларда үш немесе төрт циклдік синхронды үзіліс күту уақыты бар.
Interrupt latency is constant at three instruction cycles. External interrupts have to be synchronized with the four clock instruction cycle, otherwise there can be a one instruction cycle jitter. Internal interrupts are already synchronized. The constant interrupt latency allows PICs to achieve interrupt driven low jitter timing sequences. An example of this is a video sync pulse generator. This is no longer true in the newest PIC models, because they have a synchronous interrupt latency of three or four cycles.
Компиляторды әзірлеу
Бірнеше коммерциялық компиляторлар болғанымен, 2008 жылы Microchip 18F, 24F және 30/33F процессорлар тізбегі үшін C18 және C30 деп аталатын өзінің C компиляторларын шығарды. 2013 жылдан бастап Microchip MPLAB X жүйесімен қолдануға арналған XC компиляторлар сериясын ұсынады. Microchip C18 сияқты ескі компиляторларын ақырында біртіндеп тоқтатып, жаңа жобалар үшін XC сериялы компиляторларын пайдалануды ұсынады. PIC ассемблер тілінің RISC нұсқаулар жиынтығы кодтың жалпы логикасын түсінуді қиындатуы мүмкін. Жасырау макростарын тиімді пайдалану PIC ассемблер тілінің түсініктілігін арттырады. Мысалы, бастапқы Parallax PIC ассемблері ("SPASM") W регистрін жасырып, PIC-ті екі адрес машинасы сияқты көрсетуге мүмкіндік беретін макростарды қамтиды. Онда mov b, a (a мекенжайынан b мекенжайына деректерді көшіру) және add b, a (a мекенжайындағы деректерді b мекенжайындағы деректерге қосу) сияқты макро-нұсқаулар бар. Сонымен қатар, cjne a, b, dest (a мен b-ні салыстырып, тең болмаса dest мекенжайына секіру) сияқты үш операндты тармақталу макро-нұсқауларын ұсыну арқылы секіру нұсқауларын да жасырады.
Тенденциялар
EPROM-мен сақталатын PIC-тің бірінші буыны дерлік толығымен флэш-жадты чиптермен алмастырылды. Сол сияқты, PIC1650-нің бастапқы 12 биттік командалар жинағы және оның тікелей ұрпақтары 14 биттік және 16 биттік командалар жинақтарымен ығыстырылды. Microchip әлі де кейбір EPROM-ға негізделген PIC-тердің OTP (бір рет бағдарламаланатын) және терезелі (көзге көрінбейтін сәулемен өшірілетін) нұсқаларын ескі қолдау үшін немесе үлкен көлемдегі тапсырыстар үшін сатады. Microchip веб-сайтында электрлік түрде өшірілмейтін PIC-тер OTP ретінде тізімделген. Бұл чиптердің көзге көрінбейтін сәулемен өшіретін терезелі нұсқаларын тапсырыс етуге болады.
Бөлшек нөмірі
PICMicro бөлшегінің атауындағы F әрпі PICmicro флэш-жадыны қолданатынын және оны электрондық түрде өшіруге болатынын көрсетеді. Керісінше, C әрпі әдетте оны ультракүлгін сәулеге ұшырату арқылы ғана өшіруге болатынын білдіреді (мұндай мүмкіндік тек терезесі бар корпус стилі қолданылғанда ғана болады). Бірақ PIC16C84 бұл ереженің ерекшелігі болып табылады, себебі ол EEPROM-ды пайдаланады, сондықтан оны электрлік жолмен өшіруге болады. Атауындағы L әрпі бөлшектің төмен вольттажда жұмыс істейтінін, көбінесе жиілік шектерімен бірге, көрсетеді. 3–3,6 вольт қатаң диапазонында жұмыс істеуге арналған бөлшектер атауында J әрпімен белгіленеді. Бұл бөлшектер кіріс ретінде 5 В дейін қабылдай алатындықтан, I/O төзімділігімен де ерекшеленеді. PIC үшін C тіліндегі компиляторларды бірнеше үшінші тарап әзірлейді, олардың көпшілігі MPLAB-қа интеграцияланған және/немесе өз IDE-леріне ие. PIC микроконтроллерлерін бағдарламалау үшін PICBASIC тіліне арналған толық мүмкіндіктерге ие компилятор meLabs, Inc. компаниясынан қолжетімді. Mikroelektronika C, BASIC және Pascal бағдарламалау тілдеріндегі PIC компиляторларын ұсынады. 8 және 16 биттік PIC құрылғыларын бағдарламалауға және PIC-ке үйлесімді C кодын жасауға қабілетті Flowcode атты графикалық бағдарламалау тілі де бар. Ол тегін демонстрациялық нұсқадан бастап, толық кәсіби нұсқаға дейін көптеген нұсқаларда қол жетімді. Proteus Design Suite көптеген танымал 8 және 16 биттік PIC құрылғыларын, сондай-ақ PIC-ке қосылған басқа схемаларды симуляциялай алады. Симуляцияланатын бағдарламаны Proteus-тың өзінде, MPLAB-та немесе кез келген басқа даму құралында жасауға болады.
Құрылғы бағдарламашылары
"Программалаушылар" деп аталатын құрылғылар дәстүрлі түрде бағдарламалық кодты мақсатты PIC-ке енгізу үшін қолданылады. Microchip қазіргі уақытта сататын көптеген PIC-тер ICSP (ішкі схемалық тізбектік бағдарламалау) және/немесе LVP (төмен вольтты бағдарламалау) мүмкіндіктерімен жабдықталған, бұл PIC-ті мақсатты тізбекте орналасқан күйінде бағдарламалауға мүмкіндік береді. Microchip MPLAB және PICKit серияларында бағдарламалаушылар/жөндеу құралдарын ұсынады. MPLAB ICD4 және MPLAB REAL ICE – кәсіби инженерлерге арналған бағдарламалаушылар мен жөндеу құралдары, ал PICKit 3 – хоббишілер мен студенттерге арналған төмен бағалы бағдарламалаушы/жөндеу құралдарының желісі.
Жүктеп алу
Жоғары деңгейдегі флеш-негізгі PIC-тердің көптеген түрлері өздігінен бағдарламалана алады (өздерінің бағдарламалық жадына жаза алады), бұл процесс жүктеу деп аталады. RS 232 немесе USB сияқты интерфейс арқылы пайдаланушы бағдарламаларын жүктеуге болатын кішкентай зауыттық бағдарламаланған жүктеуіші бар демонстрациялық тақталар қолжетімді, бұл бағдарламалау құрылғысын пайдалану қажеттілігін жояды. Балама ретінде, пайдаланушы ICSP арқылы PIC-ке жүктей алатын жүктеуіш бағдарламалық жасақтамасы бар. PIC-ке жүктеуішті бағдарламалағаннан кейін, пайдаланушы арнайы компьютерлік бағдарламамен бірге RS232 немесе USB арқылы құрылғыны қайта бағдарламалай алады. Жүктеуіштің ICSP-ге қарағандағы артықшылықтары – жоғары бағдарламалау жылдамдығы, бағдарламалаудан кейін дереу бағдарламаны іске қосу және бір кабельді пайдаланып бағдарламаны түзету және бағдарламалау мүмкіндігі.
Үшінші тарап
PIC микроконтроллерлері үшін көптеген бағдарламалау құрылғылары бар, олар ICSP негізіндегі ең қарапайым конструкциялардан бастап, хост-компьютерден кодты тікелей жүктеуге мүмкіндік беретін, сондай-ақ бірнеше қуаттандыру кернеулерінде құрылғыны тексеруге болатын интеллектуалды бағдарламалау құрылғыларына дейін. Көптеген күрделі бағдарламалау құрылғылары бағдарламаланатын PIC-ке бағдарламалау командаларын жіберу үшін алдын ала бағдарламаланған PIC-ті пайдаланады. Схемалық бағдарламалауды қолдамайтын алдыңғы PIC модельдерін (көбінесе EPROM типі) бағдарламалау үшін интеллектуалды типтегі бағдарламалау құрылғысы қажет. Үшінші тарап бағдарламалау құрылғылары өздігінен құрастыруға арналған жоспарлардан бастап, жинақтарға және толық сынақтан өткен дайын бірліктерге дейін ұсынылады. Кейбіреулері төменгі деңгейдегі бағдарламалау сигналдарын жасау үшін дерлік компьютерді қажет ететін қарапайым конструкциялар (олар әдетте тізбекті немесе параллель портқа қосылады және бірнеше қарапайым компоненттерден тұрады), ал басқаларында бағдарламалау логикасы кіріктірілген (олар әдетте тізбекті немесе USB қосылысын пайдаланады, әдетте жылдамырақ болады және көбінесе басқару үшін PIC-тер қолданылады).
Сұлба ішіндегі жөндеу
Барлық жаңа PIC құрылғыларында CPU ядросына енгізілген ICD (тізбекте жөндеу) интерфейсі бар, ол MPLAB IDE-мен бірге бағдарламаны интерактивті түрде жөндеуге мүмкіндік береді. MPLAB ICD және MPLAB REAL ICE жөндеу құралдары ICSP интерфейсін пайдаланып осы интерфейспен байланыса алады. Алайда, бұл жөндеу жүйесінің бағасы бар, атап айтқанда, шектеулі тоқтау нүктелерінің саны (ескі құрылғыларда 1, жаңа құрылғыларда 3), кейбір I/O-ның жоғалуы (толық жөндеуге арналған арнайы желілері бар кейбір 44 қосқышты PIC-терді қоспағанда) және чиптегі кейбір мүмкіндіктердің жоғалуы. Құны жоғары болғандықтан немесе жеткілікті қосқыштар болмағандықтан кейбір құрылғыларда чиптегі жөндеу қолдауы жоқ. Кейбір үлкен чиптерде жөндеу модулі де жоқ. Бұл құрылғыларды жөндеу үшін арнайы порттармен жабдықталған, еншілес тақтаға орнатылған чиптің арнайы ICD нұсқасы қажет. Бұл жөндеу чиптерінің кейбіреулері еншілес тақтадағы таңдаулы жалғауыштарды пайдаланып, бірнеше типті чип ретінде жұмыс істей алады. Бұл чиптегі барлық шеттік құрылғылары жоқ, бірақ ұқсас архитектураларды бір ICD чипімен алмастыруға мүмкіндік береді. Мысалы, 16F690 ICD чипі алты түрлі бөліктің бірі ретінде жұмыс істейді, олардың әрқайсысының чиптегі бес шеттік құрылғысының ешқайсысы да, кейбіреуі де немесе барлығы да болуы мүмкін.
Электрлік схемадағы эмуляторлар
Microchip үш толық тізбек ішінде эмулятор ұсынады: MPLAB ICE2000 (параллель интерфейс, USB түрлендіргіші қолжетімді); жаңадан шыққан MPLAB ICE4000 (USB 2.0 қосылымы); және ең соңғы REAL ICE (USB 2.0 қосылымы). Бұл құралдардың бәрі әдетте мақсатты құрылғыда іске қосылған кодты бастапқы код деңгейінде интерактивті түрде жөндеу үшін MPLAB IDE-мен бірге қолданылады.
Операциялық жүйелер
PIC жобалары тапсырмаларды жоспарлау және басымдық беру үшін FreeRTOS, AVIX RTOS, uRTOS, Salvo RTOS сияқты немесе басқа ұқсас кітапханаларды қолдана алады. Серж Вакуленконың ашық кодты жобасы 2.11BSD-ді PIC32 архитектурасына RetroBSD деген атпен бейімдейді. Бұл микроконтроллерге таныс Unix сияқты операциялық жүйені, соның ішінде бортындағы дамыту ортасын, бортындағы аппараттық құралдардың шектеулеріне сәйкес әкеледі.
Параллакс
Parallax, PICmicro сияқты микроконтроллерлерден тұратын Parallax SX сериясын жасады. Қазіргі таңдағыда өндірілімі тоқтатылған. Бастапқы BASIC Stamp нұсқаларында қолданылған PIC микроконтроллерлеріне архитектуралық тұрғыдан ұқсас құрылған SX микроконтроллерлері, осы өнімнің кейінгі бірнеше нұсқаларында PIC-тің орнын басты. Parallax-тың SX микроконтроллерлері – 8 биттік RISC микроконтроллерлері, 12 биттік команда сөзін пайдаланады және 75 МГц (75 МИПС) жылдамдықпен жұмыс істейді. Оларға 4096 12 биттік сөзден тұратын флэш-жад және 262 байт кездейсоқ сүйемелдеу жады, сегіз биттік сандық тіркегіш және басқа да қосымша логикалық тізбектер кіреді. I²C және SPI интерфейстерін, UART-тарды, жиілік генераторларын, өлшеу тіркегіштерін, сондай-ақ PWM және сигма-дельта А/Д түрлендіргіштерін эмуляциялауға арналған бағдарламалық кітапхана модульдері бар. Басқа интерфейстерді жазу салыстырмалы түрде оңай, ал қолданыстағы модульдерді өзгерту арқылы жаңа мүмкіндіктерді қосуға болады.
ПКК Миландр
Ресейлік Milandr компаниясы PIC17 архитектурасын қолдана отырып, 1886 сериялы микроконтроллерлерді шығарады. Бағдарламалық жады 1886VE2U (1886ВЕ2У) моделінде 64 кБ Flash жадынан, ал 1886VE5U (1886ВЕ5У) моделінде 8 кБ EEPROM-нан тұрады. 1886VE5U (1886ВЕ5У) және 1886VE7U (1886ВЕ7У) модельдері -60 °C-тан +125 °C-қа дейінгі әскери температура диапазоны үшін арналған. Әртүрлі модельдердегі аппараттық интерфейстерге USB, CAN, I2C, SPI, сондай-ақ А/D және D/A түрлендіргіштері кіреді. 1886VE3U (1886ВЕ3У) моделінде GOST 28147-89 стандартына сәйкес криптографиялық функцияларға арналған аппараттық үдеткіш бар. Сондай-ақ, 1886VE8U (1886ВЕ8У) және 1886VE10U (1886ВЕ10У) белгілерімен сәулеленуге төзімді микросхемалар да бар.
ELAN микроэлектроникасы
Тайваньдағы ELAN Microelectronics Corp. компаниясы PIC16 архитектурасына негізделген микроконтроллерлер қатарын шығарады, олар 13 биттік командалармен және кішірек (6 биттік) RAM адрестік кеңістігімен жұмыс істейді.
Holtek Semiconductor компаниясы
Holtek Semiconductor компаниясы PIC16-ға едәуір ұқсас 14 биттік нұсқаулар жиынтығы бар, көптеген өте арзан микроконтроллерлерді (көп мөлшерде алғанда 8,5 центтен бастап) шығарады.
Азиядағы басқа өндірушілер
Азиялық өндірушілерден шыққан көптеген өте төмен бағалы OTP микробасқарушылары, арзан тұтынушы электроникасында кездеседі және олар PIC архитектурасына немесе оның өзгертілген нұсқасына негізделген. Көптеген клондар негізгі бөліктерге (PIC16C5x/PIC12C50x) ғана бағытталған. Microchip компаниясы көшіру өте айқын жағдайларда кейбір өндірушілерді сотқа беруге тырысты, бірақ нәтижеге қол жеткізе алмады.
without success.