Utilisation du circuit Maple Mini clone

Introduction

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.

Caractéristiques principales

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.

Photos du circuit

Photo du circuit coté processeur.

Photo du circuit coté prise usb.

Schéma de raccordement

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.
schéma de raccordement - cliquer pour agrandir
schéma électrique
raccordement SD, microsd - cliquer pour agrandir
raccordement SD, microsd
raccordement flash série
raccordement flash série

Photo du montage

montage  du circuit Maple Mini clone

Environnement de développement

Voir page Développement sur stm32

Bootloader sur liaison série

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 :

  1. Connecter Boot1 (pin 4 dip40) à 0
  2. Appuyer sur le bouton But pour connecter Boot0 à 1, puis sur le bouton reset
  3. Sur PC, lancer l'application stm32flash

Bootloader DFU (Device firmware update)

Voir page usbdu

Pour atteindre le mode Bootloader Usb, il faut, après avoir brancher le cable mini-usb:

  1. Relier Boot1 à 0
  2. Appuyer sur le bouton Reset

Références

  1. Open source flash program for STM32 using the ST serial bootloader.
  2. dfu-util - Device Firmware Upgrade Utilities.
  3. Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors.
  4. libopencm3 - Open Source ARM cortex m microcontroller library.
  5. Stm32 Blue Pill.