https://github.com/andrejchoo/usb-pic-programmer-on-arduino
Open USB Programmer project for PIC MCU based on Arduino (ATMEGA328)
https://github.com/andrejchoo/usb-pic-programmer-on-arduino
arduino linux pic programmer qt usb
Last synced: 2 months ago
JSON representation
Open USB Programmer project for PIC MCU based on Arduino (ATMEGA328)
- Host: GitHub
- URL: https://github.com/andrejchoo/usb-pic-programmer-on-arduino
- Owner: AndrejChoo
- License: other
- Created: 2023-02-06T06:04:00.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-03-18T12:11:29.000Z (3 months ago)
- Last Synced: 2026-03-19T02:36:47.637Z (3 months ago)
- Topics: arduino, linux, pic, programmer, qt, usb
- Language: C++
- Homepage:
- Size: 40.8 MB
- Stars: 19
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# USB_PIC_Programmer_on_Arduino
Open USB Programmer project for PIC MCU based on Arduino (ATMEGA328)
Программатор для микроконтроллеров PIC, основанный на atmega328 (arduino nano/uno) с минимальной внешней обвязкой.

Есть возможность добавления новых моделей самостоятельно, для этого необходимо редактировать файл "pic.xml". Он состоит из однотипных структур типа:
```
0x23A0
7
32768
1
256
0
00F000
2
008007
008008
none
none
none
none
none
008009
00800A
none
3
3FFF
```
Для добавления нового чипа - копируем одну структуру от "name" до "/name" и исправляем значения тегов. Где:
>id - devid + revid
>
>type - семейство однотипно программируемых моделей pic, номера взяты абсолютно произвольно, просто находим по даташиту похожую по алгоритму программирования модель из уже поддерживаемых
>
>f_size - размер code сегмента в байтах!
>
>f_psize - размер страницы флеша
>
>ee_size - размер eeprom в байтах
>
>f_start - адрес начала code сегмента (обычно всегда равно нулю)
>
>ee_start - адрес начала data (eeprom) сегмента памяти
>
>ee_type - тип расположения данных eeprom в hex файле (1 - подряд, 2 - через пустой байт)
>
>conf1-conf7 - адреса смещения данных conf битов в hex файле (несуществующие conf должны иметь значение "none")
>
>oscal1-oscal3 - адреса смещения байтов калибровки генератора, аналогично conf
>
>delay - задержка программирования слова/страницы
>
>word - маска слова флеш памяти: 16 бит - FFFF, 14 бит - 3FFF и так далее.
# 06.02.2023
На данный момент поддерживаются следующие модели PIC:
-PIC12: PIC12F1840,PIC12F629/675,PIC12F635,PIC12F683
-PIC16: PIC16F1512,PIC16F1513,PIC16F1516,PIC16F1517,PIC16F1518,PIC16F1519,PIC16F1526,
PIC16F1527,PIC16F1847,PIC16F1933,PIC16F1934,PIC16F1936,PIC16F1937,PIC16F1938,PIC16F1939,
PIC16F1946,PIC16F1947,PIC16F627A,PIC16F628A,PIC16F648A,PIC16F676/630,PIC16F631,
PIC16F636,PIC16F639,PIC16F677,PIC16F684,PIC16F685,PIC16F687,PIC16F688,PIC16F689,
PIC16F690,PIC16F73,PIC16F74,PIC16F76,PIC16F77,PIC16F84A
-PIC18: PIC18F2510,PIC18F2525,PIC18F2550,PIC18F2585,PIC18F25K80,PIC18F2610,PIC18F2620,
PIC18F2680,PIC18F26K80,PIC18F4515,PIC18F4525,PIC18F4550,PIC18F45K80,PIC18F4585,PIC18F4610,
PIC18F4620,PIC18F4680,PIC18F46K80
Тестирую обычно 1-2 модели PIC из линейки однотипно программируемых, остальные просто
добавляю. Так что могут быть ошибки непротестированных моделей. Надо пробовать.
# 10.02.2023
PIC10: PIC10F200, PIC10F202, PIC10F204, PIC10F206
PIC12: PIC12F510
PIC16F: PIC16F505, PIC16F506, PIC16F54, PIC16F57, PIC16F59
# 17.02.2023
PIC16F183xx
Добавлены новые модели без тестирования:
PIC10F32x, PIC16F150x, PIC16F88x
# 29.03.2023
PIC16F170X, PIC16F18XX, PIC16F183XX, PIC16F184XX, PIC18FXXK22, PIC18FXXQ10 (у последней серии некоррекно читается или записывается EEPROM, проверить мне не чем).
# 12.03.2024
PIC16F871/872/873/874/876/877 без проверки работоспособности. Тестируйте.
# 14.03.2024
PIC16F873A/874A/876A/877A
# 19.03.2024
PIC16F627/628(без А)
# 21.02.2026
PIC18F66K22