STM32F4VE / STM32F407VET6 black board

Jakiś czas temu naszła mnie chęć na przesiadkę z mikrokontrolerów 8 bitowych ATMEG na 32 bitowe ARM’y STM32 które dają więcej wszystkiego ;). Może nie zawsze potrzebne jest to „więcej” ale warto je mieć na pokładzie :).

Zacząłem zabawę od blue pill, black pill które wyglądem przypominały Arduino nano. Jednak po zderzeniu z rzeczywistością czyli STM32CubeIde odpuściłem na rok, poprzeczka wisiała za wysoko. STM32 to nie arduino i kombinowanie z gotowymi bibliotekami na zasadzie działa/nie działa.
Minął jakiś czas i w końcu dojrzałem do STM32. Podszedłem do tego systemowo książka jedna druga, kompletne zestawy uruchomieniowe dedykowane do książek i dalej kulawo to idzie.
W końcu znalazłem w necie kurs STM32 prowadzony przez Mateusza Salamona msalamon.pl.  Zapisałem się (zapłaciłem 🙁 bolało 😉 ) i czekałem na pierwszy odcinek kursu on-line. No i zaczęło się …. po 4 tygodniach swobodnie poruszam się po STM32CubeIde i innych narzędziach od STM’a a to dopiero 1/3 kursu 🙂 dalej było trudniej ale tematyka była też bardziej skomplikowana. Przy okazji poznałem innych wariatów 😉 których mogę zapytać o to czy tamto. Nie żałuję ani jednej złotówki wydanej na kurs i mogę go w 100% polecić innym.

Do projektu nowej wersji sterownika do akwarium potrzebowałem wyświetlacza dotykowego. Niewiele się zastanawiając klikam w popularny chiński market a tam oferują piękny zestaw STM32 + dedykowany TFT no idealne rozwiązanie dla mnie. Było to w okresie kiedy moja świadomość o STM32 była równa zero wiec radośnie kliknąłem.

Przyjechało, pełen werwy sklejam kanapkę podłączam USB pięknie uruchamia się wgrany program demonstracyjny i koniec rumakowania. Nic nie działa nie wiem jak coś tam wgrać generalnie katastrofa i porażka. No i to już w 100% zmotywowało mnie do szukania pomocy z tymi STM’ami a co za tym idzie zapisałem się na ww kurs.

Dość tych dywagacji historycznych czas do brzegu…

Jednak intuicja mnie nie zawiodła nieświadomie wybrałem całkiem fajną płytkę rozwojową. Ma na pokładzie wszystko czego trzeba do szczęścia:

Jądrem jest STM32F407VET6:

  • STM32F407VET6 in LQFP100 package
  • ARM®32-bit Cortex®-M4 CPU + FPU
  • 168 MHz max CPU frequency
  • VDD from 1.8 V to 3.6 V
  • 512 KB Flash
  • 192+4 Kbytes of SRAM including 64-Kbyte of CCM (core coupled memory) data RAM
  • GPIO (82) with external interrupt capability
  • 12-bit ADC (3) with 16 channels
  • 12-bit DAC (1) with 2 channels
  • RTC
  • Timers (14)
  • I2C (3) interfaces (SMBus/PMBus)
  • I2S (2)
  • USART (4)
  • SPI (3)
  • USB 2.0 full-speed
  • USB 2.0 OTG
  • CAN (2)
  • ETH 10/100 Ethernet MAC
  • FSMC (TFT)

Natomiast na płytce dodatkowo mamy:

Oscylatory

HSI 16MHz
LSI 32kHz
HSE 8MHz
LSE 32.768kHz

Fotki pacjenta:)

STM32F407VET6_STM32_F4VE_V2.0-1 STM32F407VET6_STM32_F4VE_V2.0-2 STM32F407VET6_STM32_F4VE_V2.0-3

Schemat płytki:

Schemat w PDF’ie


JTAG SWD pinout:

# Funkcja PIN
1 VCC  +3,3V szyna
2 VCC +3,3V szyna
3 TRST (NA) PB4
4 GND GND
5 TDI (NA) PA15
6 GND GND
7 TMS / SWDIO PA13
8 GND GND
9 TCLK / SWCLK PA14
10 GND GND
11 RTCK NC
12 GND GND
13 TDO / SWO PB3
14 GND GND
15 RESET NRST
16 GND GND
17 N.C. N.C.
18 GND GND
19 N.C. N.C.
20 GND GND

Slot karty Micro SD:

Na naszej płytce:

Funkcja/Interfejs SD Wykorzystany PIN
DAT2/SDIO_D2 PC10
CD/DAT3/SDIO_D3 PC11
CMD/SDIO_CMD PD2
CLK/SDIO_SCK PC12
DAT0/SDIO_D0 PC8
DAT1/SDIO_D1 PC9

domyślne piny w STM32CubeMX.


W25Q16 16Mbit SPI Flash.

# Funkcja Pin
1 FLASH_CS, F_CS PB0
2 FLASH_DO, MISO PB4
3 FLAS_WP  +3.3V szyna
4 GND GND
5 FLASH_DIO, MOSI PB5
6 FLASH_CLK, SCK PB3
7 /HOLD +3.3V
8 VCC +3.3V

Datasheet W25Q16JV.pdf


FSMC dla TFT.

# Funkcja Pin
1 GND GND
2 RST Reset przycisk
3 FSMC D15 PD10
4 FSMC D14 PD9
5 FSMC D13 PD8
6 FSMC D12 PE15
7 FSMC D11 PE14
8 FSMC D10 PE13
9 FSMC D9 PE12
10 FSMC D8 PE11
11 FSMC D7 PE10
12 FSMC D6 PE9
13 FSMC D5 PE8
14 FSMC D4 PE7
15 FSMC D3 PD1
16 FSMC D2 PD0
17 FSMC D1 PD15
18 FSMC D0 PD14
19 FSMC NOE PD4
20 FSMC NWE PD5
21 FSMC A18 PD13
22 FSMC NE1 PD7
23 Touch CLK PB13
24 Touch CS PB12
25 Touch MOSI PB15
26 Touch MISO PB14
27 Touch PEN PC5
28 LCD Backlight PB1
29 VBAT N.C.
30 GND GND
31 3.3V 3.3V
32 GND GND

nRF24L01 slot

Moduł radiowy (nadajnik i odbiornik) działający w paśmie 2,4 GHz z Interfejsem komunikacyjnym SPI. Zasilany napięciem 1,9 V – 3,6 V, wyprowadzeniami są złącza goldpin. Posiada wbudowaną antenę oraz sprzętowe kolejki FIFO. Maks. zasięg do 100m. 😉

# Funkcja Pin
1 GND GND
2 VCC +3.3V
3 CE PB6
4 CSN PB7
5 SCK PB3
6 MOSI PB5
7 MISO PB4
8 IRQ PB8

Przykład użycia (niesprawdzony)

Przykład użycia (niesprawdzony)


USB

USB Mini

# Funkcja Pin
1 VCC +3.3V
2 D- PA11
3 D+ PA12
4 ID N.C.
5 GND GND

Serial/ISP

# Funkcja Pin
1 VCC +5V 
2 GND GND
3 RX PA10
4 TX PA9

 

 

 

 

Ethernet interfejs (ETH)

 

 

MODE RMII

LAN8720 module   Funkcja STM32F407VET6 
TX1 <=> ETH_TXD1 PB_13
TX_EN <=> ETH_TX_EN PB_11
TX0 <=> ETH_TXDO PB_12
RX0 <=> ETH_RXDO PC_4
RX1 <=> ETH_RXD1 PC_5
nINT/RETCLK <=> ETH_REF_CLK PA_1
CRS <=> ETH_CRS_DV PA_7
MDIO <=> ETH_MDIO PA_2
MDC <=> ETH_MDC PC_1
GND <=> GND GND
VCC <=> VCC +3.3V

LAN8720 datasheet.

Żródła:
https://stm32-base.org/boards/STM32F407VET6-STM32-F4VE-V2.0.html
https://os.mbed.com/users/hudakz/code/STM32F407VET6_Hello/shortlog

2 komentarze do “STM32F4VE / STM32F407VET6 black board”

  1. Bardzo fajna płytka, szczególnie w wersji z wyświetlaczem TFT LCD. Twój opis jest wart uwagi jako ściąga do pomocy w programowaniu układu. Na „naszym” forum kursu zadeklarowałeś pochylić się nad tematem obsługi tego wyświetlacza po FSMC. Z wielką ciekawością czekam na jakiś materiał na ten temat. A dotychczasowa praca super!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.