MiniSTM32F103ZE: Difference between revisions

From RevSpace
Jump to navigation Jump to search
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
   {{Project
   {{Project
   |Name=MiniSTM32F103ZE
   |Name=MiniSTM32F103ZE
   |Picture=ohnopicture.jpg
   |Picture=MiniSTM32F103ZE.jpg
   |Omschrijving=Making my miniSTM32F103ZE-EK board work
   |Omschrijving=Making my miniSTM32F103ZE-EK board work
   |Status=Initializing
   |Status=Completed
   |Contact=bertrik
   |Contact=bertrik
   }}
   }}
Line 20: Line 20:
This thing already has all the other things: a fast 1 us ADC converter with DMA support, 64 kB of RAM for buffering ultrasonic audio, an SD card slot, a real-time clock to save files by date/time and a USB port for data transfer.
This thing already has all the other things: a fast 1 us ADC converter with DMA support, 64 kB of RAM for buffering ultrasonic audio, an SD card slot, a real-time clock to save files by date/time and a USB port for data transfer.


The STM32F103ZE appears to be quite similar to the STM32F103VE, with the following differences:
== Hardware ==
The STM32F103ZE processor present on this board appears to be quite similar to the STM32F103VE, with the following differences:
* 144 pin package instead of 100 pin package
* 144 pin package instead of 100 pin package
* more ADC channels
* more ADC channels
* more GPIOs
* more GPIOs


== Hardware ==
Here's the datasheet of this board: [[File:ministm32f103zet6_core_board_schematic.pdf]].
 
Although dated 2013, the LEDs and buttons match up exactly with the actual hardware.
The board is not actually the same as advertised: instead of mounting holes next to the JTAG connector, it has an 8-pin header for an NRF24L01 and room for another 8-pin header (ESP8266?).
The 8-pin nRF24L01 connector is not on the schematic, so I think the board I received is an updated, slightly newer, version.


== Software ==
== Software ==
Software can be found [https://github.com/bertrik/ministm32f103ze on github].
Software can be found [https://github.com/bertrik/ministm32f103ze on github].
It consists of a simple command interpreter, type 'help' to see a list of commands.


=== Flashing the bootloader ===
=== Flashing the bootloader ===
Line 52: Line 56:
If you now reset the board (e.g. press the reset button), you should be able to see the green LED flash.  
If you now reset the board (e.g. press the reset button), you should be able to see the green LED flash.  


You can now upload programs using the 'dfu' method, using the right USB port (marked "USB").
You can now upload programs over USB using the 'dfu' method, using the USB port next to the microsd slot (marked "USB").


=== platformio ===
=== platformio ===
The archive contains a platformio configuration.
The software archive contains a platformio configuration.
Once you have platformio installed, you should be able to compile, upload and run code from the command line as follows.
 
Preparation:
follow the instructions [http://docs.platformio.org/en/latest/faq.html#platformio-udev-rules here] to configure non-root access to your board.


To compile:
To compile:
   pio run
   pio run
To upload:
To upload:
   pio run -t upload
   pio run -t upload
To run:
To run:
   pio device monitor
   pio device monitor

Latest revision as of 13:20, 11 May 2020

Project MiniSTM32F103ZE
MiniSTM32F103ZE.jpg
Making my miniSTM32F103ZE-EK board work
Status Completed
Contact bertrik
Last Update 2020-05-11

Introduction

This page is about a development board named "CZ miniSTM32F103ZE-EK" found on Aliexpress and making it work.

For about E12,- I ordered this STM32 board from AliExpress, it has 64 kB of RAM, micro SD card slot and a real-time clock on board. I'm looking if I can help to add support for this board to stm32duino and platformio.

This board is a nice candidate for a minimal bat call recorder: just add an analog preamplifier for the ultrasonic signal (+ a lot of software!). This thing already has all the other things: a fast 1 us ADC converter with DMA support, 64 kB of RAM for buffering ultrasonic audio, an SD card slot, a real-time clock to save files by date/time and a USB port for data transfer.

Hardware

The STM32F103ZE processor present on this board appears to be quite similar to the STM32F103VE, with the following differences:

  • 144 pin package instead of 100 pin package
  • more ADC channels
  • more GPIOs

Here's the datasheet of this board: File:Ministm32f103zet6 core board schematic.pdf. Although dated 2013, the LEDs and buttons match up exactly with the actual hardware. The board is not actually the same as advertised: instead of mounting holes next to the JTAG connector, it has an 8-pin header for an NRF24L01 and room for another 8-pin header (ESP8266?). The 8-pin nRF24L01 connector is not on the schematic, so I think the board I received is an updated, slightly newer, version.

Software

Software can be found on github. It consists of a simple command interpreter, type 'help' to see a list of commands.

Flashing the bootloader

To make it easy to upload software over USB, I recommend you install the stm32duino bootloader.

You need the stm32flash utility and a bootloader file for use with PE2. Get them from the stm32duino page.

Steps to flash the bootloader:

  • wire a USB-serial converter to the board:
 serial GND -> board GND
 serial +5V -> board 5V
 serial RXD -> board A9
 serial TXD -> board A10
  • put jumper BOOT0 in position 1 (to 3.3V)
  • put jumper BOOT1 in position 0 (to GND)
  • reset or power-cycle the board
  • flash the bootloader using stm32flash:
 ./stm32flash -w ../../../../STM32duino-bootloader/binaries/generic_boot20_pe2.bin -v -g 0x0 /dev/ttyUSB0
  • power down the board, put BOOT0 jumper back in position 0 (to GND)

If you now reset the board (e.g. press the reset button), you should be able to see the green LED flash.

You can now upload programs over USB using the 'dfu' method, using the USB port next to the microsd slot (marked "USB").

platformio

The software archive contains a platformio configuration. Once you have platformio installed, you should be able to compile, upload and run code from the command line as follows.

Preparation: follow the instructions here to configure non-root access to your board.

To compile:

 pio run

To upload:

 pio run -t upload

To run:

 pio device monitor