Skip to content

Программатор STK500v1 совместимый практически на любом микроконтроллере

License

Notifications You must be signed in to change notification settings

AndrejChoo/STK500v1_on_any_MCU

Repository files navigation

STK500v1_on_any_MCU

Данный прооект является переписанным с ардуино на Си проектом https://github.com/clfregis/arduino_nano_ISP (да простит меня автор). Что позволяет адаптировать его для большинства микроконтроллеров с различной архитектурой с минимальным набором периферии (UART, SPI) и ОЗУ от 512 байт. Также из плюсов - это возможность использовать более высокую скорость UART (на той же atmega328 57600 против 19200 на arduino) либо вообще использовать хардверный модуль USB в качестве usb-cdc устройства. Для адаптации проекта под микроконтроллер другой архитектуры достаточно переписать функции инициализации UART, SPI модулей, переписать обработчик прерывания по приёму UART, инициализацию и макросы работы с GPIO. Переработанный код был проверен на atmega328 (что не имеет особого смысла, так как это и есть arduino nano), на stm32f103c8t6 (синяя таблетка) с использованием встроенного usb, pic16f1936 (софтварный SPI, так как я никак не смог побороть его модуль MSSP), stm32f030k6t6 (используется usb-uart переходник). Выкладываю все проекты как есть. Проект для атмеги написан в Eclipse с плагином для avr (легко переписывается под AtmelStudio), проект для stm32f103 написан в Stm32CubeIDE, для 32f030 - sw4stm32 на CMSIS без использования SPL и HAL, для PIC - MplabX IDE (XC8). Так как github не позволяет загрузить файлы с точкой в начале имени, дополнительно упаковал проекты в архив. В проекте для atmega используется хардварный SPI: mosi - PB3, miso - PB4, sck - PB5, reset - PC1 (настраивается произвольно, как и ножки светодиодов в файле "progger.h"). UART - настроен на максимально возможную для этого проекта скорость - 57600 бод. В проекте для STM32F103 используется хардварный SPI1: mosi - PA7, miso - PA6, sck - PA5 (можно переписать на SPI2), reset - PB0 (можно настроить произвольно, как и ножки светодиодов, но требует кроме правки файла "progger.h" еще некоторые изменения в файле "progger.c"). STM подключается по встроенному USB, скорость UART при настройке AVRDUDE можно не настраивать, так как она в любом случае будет максимальной. Данная реализация пока работает нестабильно (вероятно, из-за не совсем корректеой реализации обмена по USB, нормально читаются только fuse-биты и id), выкладываю просто для ознакомления. В проекте для STM32F103 используется хардварный SPI1: mosi - PA7, miso - PA6, sck - PA5, reset - PB0. USART1 на PA2,PA3, скорость 115200. В проекте на PIC16: miso - RC4, mosi - RC5, miso - RC3, reset - RC1 (можно настроить все сигналы на любые ноги, так как SPI - софтовый ногодрыг). В качестве софта используется AVRDUDE в консольной версии или с любой оболочкой, поддерживающей STK500v1, например, SinaProg, avrdudess и т.д.

About

Программатор STK500v1 совместимый практически на любом микроконтроллере

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages