Le circuit Maple Mini clone est un circuit imprimé conportant un microprocesseur STM32F103CBT6, 32-bit ARM Cortex M3 pouvant fonctionner à 72 MHz, avec flash et ram intégré. Le format du circuit imprimé est celui d'un microprocesseur Intel 8031 ou Motorola 6800 avec 2 rangées de 20 pins espacées de 6 pas (0.6 in). On peut le trouver sur internet au prix de environ 4 euros chez Ebay ou Aliexpress.
L'interêt d'un tel circuit est de pouvoir remplacer, dans une application, un AVR ou un PIC à un prix compétitif, lorsque le besoin en puissance se fait sentir.
Ce document présente les caractéristiques de ce module processeur. Les informations sont extraites des documentations officielles qu'il ne faut pas hésiter à consulter.
Voici les caractéristiques principales du processeur:
Le tableau suivant indique Memory mapping du processeur:
| Memory mapping | |||||
|---|---|---|---|---|---|
| Nom | Adresse | Taille | |||
| Cortex-M3 Peripherals | 0xE000 0000 | 0x0010 0000 | |||
| Peripherals | 0x4000 0000 | 0x0002 3400 | |||
| SRAM | 0x2000 0000 | 0x5000 (20 k) | |||
| Option Bytes | 0x1FFF F800 | 0x0F | |||
| System memory | 0x1FFF F000 | 2 k | |||
| Flash | 0x0800 0000 | 0x20000 (128 k) | |||
| Flash ou System memory | 0x0000 0000 | 0x0800 0000 | |||
Le démarrage du processeur, après un reset, est controlé par 2 pins BOOT0 et BOOT1 et résumé dans le tableau suivant:
| Boot pin configuration | |||||
|---|---|---|---|---|---|
| BOOT1 | BOOT0 | Boot mode | Aliasing | ||
| 1 | 0 | User Flash memory | User Flash memory application program | ||
| 0 | 0 | User Flash memory | User Flash memory DFU bootloader | ||
| 0 | 1 | System memory | System memory is selected as the boot space | ||
| 1 | 1 | Embedded SRAM | Embedded SRAM is selected as the boot space | ||
Ce tableau montre l'état initial des pins BOOT0, BOOT1 et NRST sachant que, par défaut, BOOT1 n'est connecté à aucun élément.
| Boot pin initial state | |||||
|---|---|---|---|---|---|
| BOOT1 | BOOT0 | NRST | |||
| X | 0 | 1 | |||
Le signal BOOT1 est connecté au port PB2 dans le processeur. En positionnant PB2 à 0, l'application pourra imposer le démarrage sur le bootloader après un reset.
Photo du circuit coté processeur.
Photo du circuit coté prise usb.
Le schéma proposé ici est un essai de raccordement de différentes fonctions au module maple-mini: carte sd, ds18b20, lm4040, lm35, spi, i2c, usart1, usart3 ...
Le tableau suivant montre la disposition des fonctions nécessaire à l'élaboration du schéma.
STM32F103xx LQFP48
Nr is board DIP40 pin number with 1 at Vin.
Pin is processor pin number
used :
0 used on board
1 alim 5 V
2 connector 2 SPI
3 connector 3 misc
4 connector 4 usart
5 connector 5 I2C
6 connector 6 lm4040, lm35, DS18B20
7 connector 7 config
Nr used Alternate functions
Pin Type Pin name Main Default Remap
1 Vin
18 1 S VBAT VBAT
17 2 7 I/O PC13-TAMPER-RTC PC13 TAMPER-RTC
16 3 I/O PC14-OSC32_IN PC14 OSC32_IN
15 4 I/O PC15-OSC32_OUT PC15 OSC32_OUT
5 0 I OSC_IN OSC_IN PD0
6 0 O OSC_OUT OSC_OUT PD1
14 7 0 I/O NRST NRST
8 0 S VSSA VSSA
9 0 S VDDA VDDA
13 10 6 I/O PA0-WKUP PA0 WKUP/USART2_CTS/ADC12_IN0/TIM2_CH1_ETR
12 11 6 I/O PA1 PA1 USART2_RTS/ADC12_IN1/TIM2_CH2
11 12 6 I/O PA2 PA2 USART2_TX/ADC12_IN2/TIM2_CH3
10 13 6 I/O PA3 PA3 USART2_RX/ADC12_IN3/TIM2_CH4
9 14 2 I/O PA4 PA4 SPI1_NSS/USART2_CK/ADC12_IN4
8 15 2 I/O PA5 PA5 SPI1_SCK/ADC12_IN5
7 16 2 I/O PA6 PA6 SPI1_MISO/ADC12_IN6/TIM3_CH1 TIM1_BKIN
6 17 2 I/O PA7 PA7 SPI1_MOSI/ADC12_IN7/TIM3_CH2 TIM1_CH1N
5 18 2 I/O PB0 PB0 ADC12_IN8/TIM3_CH3 TIM1_CH2N
19 0 I/O PB1 PB1 ADC12_IN9/TIM3_CH4 TIM1_CH3N
4 20 2 I/O PB2 PB2/BOOT1
3 21 3 I/O PB10 PB10 I2C2_SCL/USART3_TX TIM2_CH3
2 22 3 I/O PB11 PB11 I2C2_SDA/USART3_RX TIM2_CH4
19 23 0 S VSS_1
20 24 0 S VDD_1
40 25 3 I/O PB12 PB12 SPI2_NSS/I2C2_SMBAl/USART3_CK/TIM1_BKIN
39 26 3 I/O PB13 PB13 SPI2_SCK/USART3_CTS/TIM1_CH1N
38 27 3 I/O PB14 PB14 SPI2_MISO/USART3_RTS/TIM1_CH2N
37 28 3 I/O PB15 PB15 SPI2_MOSI/TIM1_CH3N
36 29 3 I/O PA8 PA8 USART1_CK/TIM1_CH1/MCO
35 30 4 I/O PA9 PA9 USART1_TX/TIM1_CH2
34 31 4 I/O PA10 PA10 USART1_RX/TIM1_CH3
33 32 0 I/O PA11 PA11 USART1_CTS/CANRX/USBDM/TIM1_CH4
32 33 0 I/O PA12 PA12 USART1_RTS/CANTX/USBDP/TIM1_ETR
31 34 I/O PA13 JTMS/SWDIO "" PA13
35 0 S VSS_2
36 0 S VDD_2
30 37 I/O PA14 JTCK/SWCLK "" PA14
29 38 I/O PA15 JTDI "" TIM2_CH1_ETR/PA15/SPI1_NSS
28 39 I/O PB3 JTDO "" TIM2_CH2/PB3/TRACESWO/SPI1_SCK
27 40 I/O PB4 JNTRST "" TIM3_CH1/PB4/SPI1_MISO
26 41 7 I/O PB5 PB5 I2C1_SMBAl TIM3_CH2/SPI1_MOSI
25 42 5 I/O PB6 PB6 I2C1_SCL/TIM4_CH1 USART1_TX
24 43 5 I/O PB7 PB7 I2C1_SDA/TIM4_CH2 USART1_RX
23 44 0 I BOOT0
45 0 I/O PB8 PB8 TIM4_CH3 I2C1_SCL/CANRX
46 0 I/O PB9 PB9 TIM4_CH4 I2C1_SDA/CANTX
22 47 0 S VSS_3
21 48 0 S VDD_3
PA4 ADC12_IN4 means input channel 4 of ADC1 and ADC2 are connected to pin PA4.
C'est peut être plus lisible avec une image...
Voir page Développement sur stm32
Voir page Boot du processeur stm32f103 par liaison série
Pour atteindre le mode Bootloader en ROM, il faut, après avoir brancher le cable liaison série reliant le PC à la carte :
Pour atteindre le mode Bootloader Usb, il faut, après avoir brancher le cable mini-usb: