Ярлыки

_GetPixelIndex (1) _SetPixelIndex (1) 3-phase (1) 800x480 (1) АЦП (1) генератор (1) синхронный усилитель (2) структура (1) учебный курс (1) шаговый двигатель (1) ШИМ (2) accert (1) AD7608 (1) AD8429 (1) ADC (5) amplifer (1) arccos (1) arcsin (1) arctang (2) arctg (3) ARM (2) arm_sqrt_q15 (2) assembler (6) ASSERT (1) atan (2) bit (1) Bitband (1) boot (3) bootlloader (1) BUTTON (1) C (5) C# (1) CAN (2) CC2530 (5) CMSIS (4) command (1) Cordic (1) Core746I (1) CubeMX (4) DBGMCU (2) debug (2) debug.ini (1) delegate (1) Digital Potentiometers (1) DigitalPOT (1) Discovery (1) DMA (9) DMA2D (1) DSP (1) DSP library (1) DWT (1) EFM32 (5) EmWin (9) EXTI (1) FATFS (1) FMC (2) FreeRTOS (2) gl868-dual cmux (1) GPIO (4) GUI (2) GUIBuilder (1) GUIDRV_CompactColor_16 (1) HAL (3) HappyGecko (1) Hard Fault (2) heap (1) I2C (1) ID (1) ILI9320 (1) ILI9325 (1) Initialisation (1) InitLTDC (1) Instrumentithion (1) Interrupt (4) ITR (1) JTAG (1) Keil (5) LCDConf (2) lock-in (1) LTCD (1) LTDC (3) main (1) memory (1) MINI_STM32 Revision 01 (1) nBoot0 (1) NVIC (1) OnePulse (2) OSAL (4) pack (1) phase (1) printf (3) Pulse (1) PWM (12) RCC (2) RCR (1) Register (1) RESET (2) RS232 (3) RSS (1) RTC (3) RTOS-RTX (1) RTT (1) RTX-RTOS (1) SDCard (1) SDRAM (6) Segger (2) SPI (3) sqrt (3) SSD1298 (1) SSD1963 (1) Standart Peripherial Library (3) STANDBAY (1) startup (1) STemWin (8) stepper motor (1) STlink (2) STM32 (17) STM32429ZI (1) STM32Cube (1) STM32DBG.IN (1) STM32F (28) STM32F0 (4) STM32F1 (13) STM32F4 (10) STM32F4 Discovery (1) STM32F407ZG (1) STM32F429 (2) STM32F746 (1) STOP (1) string (1) struct (1) SWD (1) SWD JTAG (1) Synhronization (1) system_stm32f4xx.c (1) SystemInit (1) SysTick (1) task (4) telit (1) TIM (27) typedef (1) UART (1) USART (9) viewer (2) WM_PAINT (1) Z-stack (5) ZigBee (5)

четверг, 7 ноября 2013 г.

STM32F103 Bootloader (загрузчик)

Подключаем контроллер к компьютеру через интерфейс USART1. 

                                         LQFP48  LQFP64  LQFP100  LQFP144 

  • USART1_TX/PA9          30           42            68            101 
  • USART1_RX/PA10        31           43            69            102 
  • BOOT0                       44           60            94
  • BOOT1/PB2                 20           28            37
  • NST                            7             7            14


 например для LQFP48



Для управления загрузкой контроллера существуют два вывода BOOT1 и BOOT0. В зависимости комбинаций логических уровней на них, контроллер при включении питания начнет выполнять код из разных областей памяти. Это видно из таблицы ниже:
BOOT1          BOOT0           Что запускается
X                         0               Программа прошитая во FLASH
0                         1               Загрузчик
1                         1               Программа из SRAM
Загрузчик сидит в области памяти под названием Sytem Memory. Каким либо образом изменить его нельзя. Это делает контроллер не убиваемым в плане софта, даже если процесс обращения к устройству неожиданно прервут - микроконтроллеру ничего не грозит. Всегда можно будет начать прошивку заново. Чтобы ввести наш контроллер в режим прошивки, удерживаем кнопку PROG и жмем RESET. После этого кнопку можно отпустить. Для прошивки используется специальный софт который называется Flash Loader Demonstrator .Вы можете скачать его на сайте ST. Запускаем эту программу, после устанавливаем номер используемого порта, который должен быть в пределах от 1 до 99, остальные настройки не трогаем. Затем нажимаем обе кнопки, указанные на рисунке, после этого отпускаем RESET и сразу же жмем на NEXT в окне программы ("cразу же" это тот период времени который указан в окошке Timeout ) и входим в следующее меню программы.

2 комментария:

  1. "Чтобы ввести наш контроллер в режим прошивки, удерживаем кнопку BOOT и жмем RESET."
    На рисунке подписано "PROG"...Исправьте.

    ОтветитьУдалить
  2. Спасибо, за внимательность, исправил

    ОтветитьУдалить