Skip to content

Latest commit

 

History

History
277 lines (205 loc) · 10.2 KB

im880a-ds75lx.md

File metadata and controls

277 lines (205 loc) · 10.2 KB

La carte d'essai IMST iM880a DS75LX

La carte d'essai IMST iM880a DS75LX est une carte de prototypage du module iM880a.

Il comporte :

  • un STM32L152
  • un support double batterie AAA
  • un capteur de temperature SPI Maxim DS75LX
  • deux connecteurs X1 et X2 (2x 16 broches) qui donnent accès à l'ensemble des broches du module iM880a (UART, JTAG, SPI, I2C, GPIO)

La schématique de la carte est ici.

Support logiciel

  • Le module IMST iM880a est supporté par RIOTOS.
  • Le capteur DS75LX est supporté par RIOTOS.

Brochage

Vous pouvez inclure ce fichier pinmap.h pour utiliser les GPIO des headers X1 et X2 de la carte:

#ifndef IM880_PINMAP

#define IM880_PINMAP 	1

#define PIN_X1_1  GPIO(0,14)  // P1 @ module SWCLK JTCK PA14 FT
#define PIN_X1_2  GPIO(0,13)  // P2 @ module SWDAT JTMS PA13 FT
#define PIN_X1_3  GPIO(1,3)   // P3 @ module JTDO       PB3  FT
#define PIN_X1_4  GPIO(0,15)  // P4 @ module JTDI       PA15 FT

#define PIN_X1_7  GPIO(0,11)  // P5 @ module  PA11 FT
#define PIN_X1_8  GPIO(0,12)  // P6 @ module  PA12 FT

#define PIN_X1_10 GPIO(1,14)  // P7 @ module  PB14 FT
#define PIN_X1_9  GPIO(1,15)  // P8 @ module  PB15 FT
#define PIN_X1_12 GPIO(1,13)  // P9 @ module  PB13 FT
#define PIN_X1_11 GPIO(1,12)  // P10 @ module PB12 FT

#define PIN_X2_7  GPIO(0,8)  // P11 @ module  PA8  FT
#define PIN_X2_6  GPIO(1,8)  // P12 @ module  PB8  FT
#define PIN_X2_5  GPIO(1,9)  // P13 @ module  PB9  FT
#define PIN_X2_14 GPIO(0,1)  // P14 @ module  PA1  FT 
#define PIN_X2_3  GPIO(0,0)  // P15 @ module  PA0  FT
#define PIN_X2_17 GPIO(0,3)  // P17 @ module  PA3  TC
#define PIN_X2_9 GPIO(0,9)   // P17 @ module  PA9  FT USART1_RX
#define PIN_X2_10 GPIO(0,10) // P17 @ module  PA10 FT USART1_TX

// TC : Standard 3.3 V I/O
// FT : 5 V tolerant I/O

#endif

Flashage

Le module peut être flashé

  • soit via l'interface JTAG (connecteur X1) voir figure 3,
  • soit via l'UART en branche la broche P16-BOOT (broche 2 du connecteur X2) sur une des broches VCC (broches 11,13,15 du connecteur X2) voir figure 4.

Flashage avec un STLinkv2

Il faut connecter les bonnes broches du ST-Linkv2 à la carte vers le connecteur X1 (voir figure 3).

Il faut alimenter la carte soit avec 2 batteries AAA 1.5V soit via un adapteur USB série via les broches 11, 13 ou 15 pour le VCC et 12, 14 ou 16 pour le GND

Nous utiliserons l'adaptateur USB-Serial CH340G de RobotDyn avec son driver car il n'est pas reconnu par défaut sous OSX. Le lien série sera accessible via /dev/tty.wchusbserial1410

Il ne reste plus qu'à flasher :

Si tout fonctionne bien, vous devriez voir les paquets arrivés sur TTN comme pour la LoraMote (cf. Section flashage du LoRaMote)

Si cela ne fonctionne pas, reportez vous à la section problèmes du LoRaMote.

Flashage avec un STLinkv2 d'une carte Nucleo

Si vous ne possédez pas de flasheur ST-Link v2, vous pouvez utiliser le flasheur détachable des cartes Nucleo et connecter les 5 premières broches du connecteur CN4 SWD au connecteur X1 de la carte IMST im880:

Pin 1: VDD_TARGET (VDD from application),
Pin 2: SWCLK (clock),
Pin 3: GND (ground),
Pin 4: SWDIO (SWD data input/output),
Pin 5: NRST (RESET of target STM32).

Flashage via l'UART avec la broche BOOT

Les MCU STM32 peuvent être flashé avec un simple adapteur USB Serial. Il suffit pour cela d'utiliser l'utilitaire STM32CubeProgrammer (en GUI ou en ligne de commande) et de mettre la MCU en mode boot en raccordant la broche BOOT avec le VCC.

Instructions :

  • Branchez l'UART sur les broches 9 (TXD),10 (RXD),11 (VCC),12 (GND) du connecteur X2 en croisant TXD et RXD de l'hôte.
  • Au moyen d'un fil, reliez la broche P16-BOOT (broche 2 du connecteur X2) sur une des broches VCC (broches 11,13,15 du connecteur X2) voir figure 4.
  • Appuyez sur le bouton RESET
  • La carte est en attente des commandes du STM32CubeProgrammer
alias stm32proj_cli=/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin/STM32_Programmer_CLI

Les exemples suivants sont avec la carte iM880a.

Options du STM32_Programmer_CLI

stm32proj_cli

Liste des UART

stm32proj_cli --list
      -------------------------------------------------------------------
                        STM32CubeProgrammer v2.5.0                  
      -------------------------------------------------------------------

=====  DFU Interface   =====

No STM32 device in DFU mode connected

===== STLink Interface =====
Error: No ST-Link detected!

=====  UART Interface  =====

Total number of serial ports available: 10

...

Port: tty.SLAB_USBtoUART
Location: /dev/tty.SLAB_USBtoUART
Description: CP210x USB to UART Bridge Controller
Manufacturer: Silicon Labs

Port: tty.usbserial-0001
Location: /dev/tty.usbserial-0001
Description: CP2102 USB to UART Bridge Controller
Manufacturer: Silicon Labs

Récupération de la carte

stm32proj_cli --connect port=/dev/tty.usbserial-1410 -vb 3
      -------------------------------------------------------------------
                        STM32CubeProgrammer v2.5.0                  
      -------------------------------------------------------------------

Serial Port /dev/tty.usbserial-1410 is successfully opened.
Port configuration: parity = even, baudrate = 115200, data-bit = 8,
                     stop-bit = 1,0, flow-control = off
No Init bits value is : 0 

Sending init command: 
byte 0x7F sent successfully to target
Wait ends after 1 loop, dataready = 1, delay = 2
Received response from target: 0x79
Activating device: OK
Sending GetID command and its XOR:
byte 0x02 sent successfully to target
byte 0xFD sent successfully to target
Wait ends after 1 loop, dataready = 1, delay = 3
Received response from target: 0x79
Received response from target: 0x01041679
Chip ID: 0x416 
Sending Get command and its XOR:
byte 0x00 sent successfully to target
byte 0xFF sent successfully to target
Wait ends after 1 loop, dataready = 1, delay = 4
Received response from target: 0x79
Received response from target: 0x0b
size of bytes in the response: 11
Received response from target: 0x30000102112131446373829279
Full received response: 0b30000102112131446373829279
BootLoader protocol version: 3.0
byte 0x11 sent successfully to target
byte 0xEE sent successfully to target
data sent successfully to target: 0x0800000008
byte 0x00 sent successfully to target
byte 0xFF sent successfully to target
Sending GetID command and its XOR:
byte 0x02 sent successfully to target
byte 0xFD sent successfully to target
Wait ends after 1 loop, dataready = 1, delay = 3
Received response from target: 0x79
Received response from target: 0x01041679
byte 0x11 sent successfully to target
byte 0xEE sent successfully to target
data sent successfully to target: 0x0800000008
byte 0x00 sent successfully to target
byte 0xFF sent successfully to target
byte 0x11 sent successfully to target
byte 0xEE sent successfully to target
data sent successfully to target: 0x0800000008
byte 0x00 sent successfully to target
byte 0xFF sent successfully to target
Device name : STM32L100x8/STM32L100xB/STM32L15xx6/STM32L15xx8/STM32L15xxB
Flash size  : 128 KBytes (default)
Device type : MCU
Device CPU  : Cortex-M3

Chargement d'une firmware sur la carte

stm32proj_cli --connect port=/dev/tty.usbserial-1410 --download bin/im880b/field-test-device.bin 0x0800000000
      -------------------------------------------------------------------
                        STM32CubeProgrammer v2.5.0                  
      -------------------------------------------------------------------

Serial Port /dev/tty.SLAB_USBtoUART is successfully opened.
Port configuration: parity = even, baudrate = 115200, data-bit = 8,
                     stop-bit = 1,0, flow-control = off
Activating device: OK
Chip ID: 0x416 
BootLoader protocol version: 3.0
Device name : STM32L100x8/STM32L100xB/STM32L15xx6/STM32L15xx8/STM32L15xxB
Flash size  : 128 KBytes (default)
Device type : MCU
Device CPU  : Cortex-M3



Warning: The value of partition ID to download is ignored for STM32 MCU devices.


Memory Programming ...
Opening and parsing file: field-test-device.bin
  File          : field-test-device.bin
  Size          : 61304 Bytes
  Address       : 0x08000000 


Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 239]
Download in Progress:
[==================================================] 100% 

File download complete
Time elapsed during download operation: 00:00:12.327

Flashage via l'UART avec riotboot serial

Si vous utilisez RIOTOS pour développer les firmwares de cette carte, il est possible d'installer un bootloader résident en début de la mémoire Flash (0x80000000). Ce bootloader attend quelques secondes une demande de flashage d'un nouveau firmware après le reset. Le firmware est logé dans les pages Flash suivantes de la MCU (à partir de 0x80000400 pour certaines MCU). Si rien n'est demandé, le bootloader démarre à l'adresse de début du firmware.

A compléter ...

A voir:

Figures

IMST-iM880a-DS75LX Fig. 1: IMST-iM880a-DS75LX

IMST-iM880a-DS75LX
Fig. 2: IMST-iM880a-DS75LX

jtag-X1
Fig. 3: schéma connexion X1 - JTAG

usb-X2
Fig. 4: connexion X2 - adaptateur usb serial