Назад к истокам: pic16
2018-03-09 12:15![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Первым микроконтроллером, с которым мне довелось иметь дело, был PIC17C43. На нём мы в Крониксе сделали одну из ранних разработок, а именно конвертер E1-L/B. Позже его переделали на процессор ATmega, но в середине 90-х альтернатив Микрочипу не было. Фирменный компилятор Си тогда у Микрочипа был ужасный: генерил такой код, что смотреть было противно. Мне пришлось соорудить свой собственный компилятор, ассемблер и симулятор. Но сам процессор оказался крайне удачным, и конвертер имел успех (руководство пользователя, PDF).

С тех пор многое изменилось в мире микроконтроллеров: пришёл Atmel AVR, TI MSP430, потом ARM7 и Cortex-M, MIPS PIC32 и другие. Однако понадобилось мне подобрать для транзисторного измерителя простой DAC/ADC, и оказалось, что кроме PIC16 выбора нету. В результате остановился на PIC16F1705: восьмибитный DAC, восемь каналов 10-битного ADC и впридачу пара встроенных операционных усилителей. Остальная периферия типа UART, SPI и I2C тоже при нём. Внешний кварц не нужен. Всё добро в 14-ногом корпусе за цену меньше доллара.
Свой компилятор Микрочип с тех пор выкинул на свалку и купил фирму Hi-tech Software с их замечательным компилятором для микроконтроллеров. Позже это превратилось в компилятор Microchip XC8, бесплатный в базовой версии.
Прошивается процессор посредством фирменого софта Microchip MDB, который входит в состав бесплатного MPLAB X IDE. Нужен USB-адаптер PICkit3, клон которого можно недорого купить на Aliexpress. Втыкаем чип в макетную плату, добавляем один резистор на сигнал Reset, подсоединяем PICkit3 и UART-USB адаптер:

Сооружаем простой пример, который принимает символы от UART и отсылает обратно: uart.c. Компилируем, получаем uart.hex. Чтобы прошить чип, нужно составить скрипт pickit3.cfg для утилиты MDB, типа такого:

С тех пор многое изменилось в мире микроконтроллеров: пришёл Atmel AVR, TI MSP430, потом ARM7 и Cortex-M, MIPS PIC32 и другие. Однако понадобилось мне подобрать для транзисторного измерителя простой DAC/ADC, и оказалось, что кроме PIC16 выбора нету. В результате остановился на PIC16F1705: восьмибитный DAC, восемь каналов 10-битного ADC и впридачу пара встроенных операционных усилителей. Остальная периферия типа UART, SPI и I2C тоже при нём. Внешний кварц не нужен. Всё добро в 14-ногом корпусе за цену меньше доллара.
Свой компилятор Микрочип с тех пор выкинул на свалку и купил фирму Hi-tech Software с их замечательным компилятором для микроконтроллеров. Позже это превратилось в компилятор Microchip XC8, бесплатный в базовой версии.
Прошивается процессор посредством фирменого софта Microchip MDB, который входит в состав бесплатного MPLAB X IDE. Нужен USB-адаптер PICkit3, клон которого можно недорого купить на Aliexpress. Втыкаем чип в макетную плату, добавляем один резистор на сигнал Reset, подсоединяем PICkit3 и UART-USB адаптер:

Сооружаем простой пример, который принимает символы от UART и отсылает обратно: uart.c. Компилируем, получаем uart.hex. Чтобы прошить чип, нужно составить скрипт pickit3.cfg для утилиты MDB, типа такого:
device pic16f1705 set system.disableerrormsg true hwtool pickit3 -p program "./uart.hex" reset mclr quitПрошиваем:
$ /opt/microchip/mplabx/v4.15/mplab_ide/bin/mdb.sh pickit3.cfg device pic16f1705 set system.disableerrormsg true hwtool pickit3 -p Mar 09, 2018 2:33:16 PM com.microchip.mplab.mdbcore.RealICETool.RIMessages OutputMessage INFO: ***************************************************** Connecting to MPLAB PICkit 3... Currently loaded firmware on PICkit 3 Firmware Suite Version.....01.51.08 Firmware type..............Enhanced Midrange Target voltage detected Target device PIC16F1705 found. Device ID Revision = 2002 program "./uart.hex" Programming target... Device Erased... Programming... The following memory area(s) will be programmed: program memory: start address = 0x0, end address = 0x81f configuration memory Programming/Verify complete Program succeeded. reset mclr Resetting... Target reset quitГотово. Процесс выглядит заметно проще, чем 20 лет назад, когда приходилось стирать чип ультрафиолетом и прошивать специальным дорогим программатором.
no subject
Date: 2019-09-14 18:55 (UTC)no subject
Date: 2019-09-14 19:32 (UTC)no subject
Date: 2019-09-16 18:42 (UTC)