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

HSI16MHz
LSI32kHz
HSE8MHz
LSE32.768kHz

Fotki pacjenta:)

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

Schemat płytki:

Schemat w PDF’ie


JTAG SWD pinout:

#FunkcjaPIN
1VCC +3,3V szyna
2VCC+3,3V szyna
3TRST (NA)PB4
4GNDGND
5TDI (NA)PA15
6GNDGND
7TMS / SWDIOPA13
8GNDGND
9TCLK / SWCLKPA14
10GNDGND
11RTCKNC
12GNDGND
13TDO / SWOPB3
14GNDGND
15RESETNRST
16GNDGND
17N.C.N.C.
18GNDGND
19N.C.N.C.
20GNDGND

Slot karty Micro SD:

Na naszej płytce:

Funkcja/Interfejs SDWykorzystany PIN
DAT2/SDIO_D2PC10
CD/DAT3/SDIO_D3PC11
CMD/SDIO_CMDPD2
CLK/SDIO_SCKPC12
DAT0/SDIO_D0PC8
DAT1/SDIO_D1PC9

domyślne piny w STM32CubeMX.


W25Q16 16Mbit SPI Flash.

#FunkcjaPin
1FLASH_CS, F_CSPB0
2FLASH_DO, MISOPB4
3FLAS_WP +3.3V szyna
4GNDGND
5FLASH_DIO, MOSIPB5
6FLASH_CLK, SCKPB3
7/HOLD+3.3V
8VCC+3.3V

Datasheet W25Q16JV.pdf


FSMC dla TFT.

#FunkcjaPin
1GNDGND
2RSTReset przycisk
3FSMC D15PD10
4FSMC D14PD9
5FSMC D13PD8
6FSMC D12PE15
7FSMC D11PE14
8FSMC D10PE13
9FSMC D9PE12
10FSMC D8PE11
11FSMC D7PE10
12FSMC D6PE9
13FSMC D5PE8
14FSMC D4PE7
15FSMC D3PD1
16FSMC D2PD0
17FSMC D1PD15
18FSMC D0PD14
19FSMC NOEPD4
20FSMC NWEPD5
21FSMC A18PD13
22FSMC NE1PD7
23Touch CLKPB13
24Touch CSPB12
25Touch MOSIPB15
26Touch MISOPB14
27Touch PENPC5
28LCD BacklightPB1
29VBATN.C.
30GNDGND
313.3V3.3V
32GNDGND

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. 😉

#FunkcjaPin
1GNDGND
2VCC+3.3V
3CEPB6
4CSNPB7
5SCKPB3
6MOSIPB5
7MISOPB4
8IRQPB8

Przykład użycia (niesprawdzony)

Przykład użycia (niesprawdzony)


USB

USB Mini

#FunkcjaPin
1VCC+3.3V
2D-PA11
3D+PA12
4IDN.C.
5GNDGND

Serial/ISP

#FunkcjaPin
1VCC+5V 
2GNDGND
3RXPA10
4TXPA9

 

 

 

 

Ethernet interfejs (ETH)

 

 

MODE RMII

LAN8720 module FunkcjaSTM32F407VET6 
TX1<=>ETH_TXD1PB_13
TX_EN<=>ETH_TX_ENPB_11
TX0<=>ETH_TXDOPB_12
RX0<=>ETH_RXDOPC_4
RX1<=>ETH_RXD1PC_5
nINT/RETCLK<=>ETH_REF_CLKPA_1
CRS<=>ETH_CRS_DVPA_7
MDIO<=>ETH_MDIOPA_2
MDC<=>ETH_MDCPC_1
GND<=>GNDGND
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 Replies to “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 *