USB PIC Programmer on Arduino — это открытый проект USB-программатора для микроконтроллеров
PIC, основанный на микроконтроллере
ATmega328 (Arduino Nano/Uno) с минимальной внешней обвязкой. Проект включает прошивку для Arduino, схему аппаратной части и программное обеспечение для ПК.
Поддерживаемые модели PIC
Проект поддерживает широкий спектр PIC-микроконтроллеров, включая семейства
PIC10, PIC12, PIC16 и PIC18. Список постоянно пополняется:
| Семейство | Поддерживаемые модели (примеры) |
|---|
| PIC10 | PIC10F200, PIC10F202, PIC10F204, PIC10F206, PIC10F320, PIC10F322 |
| PIC12 | PIC12F1840, PIC12F510, PIC12F629/675, PIC12F635, PIC12F683 |
| PIC16 | PIC16F1503/1508/1509, PIC16F1512–1519, PIC16F1526/1527, PIC16F1703/1704/1708/1709, PIC16F18313/18323/18324/18325/18326/18344/18345/18346, PIC16F1847, PIC16F18424/18425/18426/18444/18445/18446, PIC16F1933–1939, PIC16F1946/1947, PIC16F627/628/627A/628A, PIC16F630/676, PIC16F631, PIC16F636, PIC16F639, PIC16F648A, PIC16F677, PIC16F684, PIC16F685, PIC16F687, PIC16F688, PIC16F689, PIC16F690, PIC16F73/74/76/77, PIC16F84A, PIC16F871/872/873/874/876/877, PIC16F873A/874A/876A/877A, PIC16F505, PIC16F506, PIC16F54, PIC16F57, PIC16F59 |
| PIC18 | PIC18F2510, PIC18F2525, PIC18F2550, PIC18F2585, PIC18F25K80, PIC18F2610, PIC18F2620, PIC18F2680, PIC18F26K80, PIC18F4515, PIC18F4525, PIC18F4550, PIC18F45K80, PIC18F4585, PIC18F4610, PIC18F4620, PIC18F4680, PIC18F46K80, PIC18F66K22, PIC18FXXK22, PIC18FXXQ10 |
Примечание: Некоторые модели добавлены без тестирования (например, PIC16F183xx, PIC18FXXQ10, у последней некорректно читается или записывается EEPROM — требуется проверка). PIC16F871/872/873/874/876/877, PIC16F873A/874A/876A/877A, PIC16F627/628 (без А) добавлены без проверки работоспособности.
Добавление новых моделей
Для добавления нового чипа необходимо отредактировать файл
pic.xml, добавив структуру с параметрами:
| Тег | Описание |
|---|
name model | Название модели |
id | devid + revid |
type | Семейство однотипно программируемых моделей (номер произвольный, определяется по даташиту по аналогии с уже поддерживаемыми) |
f_size | Размер code-сегмента в байтах |
f_psize | Размер страницы флеша |
ee_size | Размер EEPROM в байтах |
f_start | Адрес начала code-сегмента (обычно 0) |
ee_start | Адрес начала data (EEPROM) |
ee_type | Тип расположения данных EEPROM в hex-файле (1 — подряд, 2 — через пустой байт) |
conf1-conf7 | Адреса смещения config-битов (несуществующие — "none") |
oscal1-oscal3 | Адреса байтов калибровки генератора |
delay | Задержка программирования слова/страницы |
word | Маска слова флеш-памяти (16 бит — FFFF, 14 бит — 3FFF и т.д.) |
Программное обеспечение
- Qt-приложение для управления программатором (исходный код в папке software).
- Прошивка для Arduino (в папке firmware).
- Схема аппаратной части (в папке hardware).
Файлы для загрузки
Полезные ссылки проекта: