Power-Off Reset: Як розблокувати CH32V003 у корпусі SOP-8
Продовжую розбиратися з мікроконтролерами CH32V. Сьогодні в мене на столі малюк CH32V003J4M6 у корпусі SOP-8. Це найменший корпус із мінімумом пінів — 2 йдуть на живлення, і 6 залишаються доступними для використання. У ньому немає навіть піна апаратного скидання (NRST). Як і інші мікроконтролери серії CH32V00x, він програмується по одному дроту SWIO ( 8-й пін ). І ось тут криється цікава проблема: якщо ініціалізувати цей пін у прошивці під інші задачі, він перестає працювати як SWIO. Після цього запрограмувати чіп стандартним способом стає неможливо. Наприклад, такий код виводить “Hello world” в UART: #include <ch32v00x.h> #include <debug.h> void NMI_Handler ( void ) __attribute__ (( interrupt ( "WCH-Interrupt-fast" ))); void HardFault_Handler ( void ) __attribute__ (( interrupt ( "WCH-Interrupt-fast" ))); int main ( void ) { SystemCoreClockUpdate (); Delay_Init (); USART_Printf_Init ( 9600 ); while ( 1 ) { ...