วันเสาร์ที่ 24 มกราคม พ.ศ. 2558

Microcontroller ARM 32 bit Cortex-M4 STM32F407VGT

           ในบทความนี้ จะขออธิบายถึง คุณสมบัติของไมโครคอนโทลเลอร์ของ ST Micro ที่ผมจะเลือกใช้เป็นตัวอย่างในการทดสอบนะครับ ซึ่งที่ผมเลือกใช้คือ STM32F407VGT เป็นบอร์ดตระกูล F4 ของ ST Micro มีคุณสมบัติและความสามารถดังต่อไปนี้ครับ




ความสามารถของ ไมโครคอนโทลเลอร์ ARM 32 bit Cortex-M4 STM32F407VGT 

แกนกลางเป็น CPU ARM 32 bit Cortex-M4 กับ FPU สามารถปรับเร่งค่าเวลาจริง ทำงานด้วยความถี่สูงสุด 168 MHz โดยมีสมรรถนะ 210 DMIPS/1.25 DMIPS/MHz (Dhystone 2.1) พร้อม DSP
     - หน่วยความจำ Flash Memory ขนาด 1 Mbyte
     -  Static RAM ขนาด 194+4 Kbyte ประกอบด้วย หน่วยความจำแกนกลางแบบคู่ ขนาด 64 Kbyte สำหรับข้อมูล
     -  LCD parallel interface  มี 2 โหมด คือ 8080 และ 6800
     -  แหล่งจ่ายไฟชุดเดียวขนาด 1.8V – 3.6V มีวงจร POR,PDR,PVD และ BOR
     - สามารถใช้ Crystal Oscillator 4- 26 MHz จ่ายให้กับระบบ หรือเลือกใช้ สัญญาณนาฬิกาภายในซึ่งสามารถกำเนิด               สัญญาณนาฬิกาได้ 16 MHz โดยมีวงจร Phase lock loop ภายในเพื่อคูณค่าให้สัญญาณนาฬิกาทำงานที่ความถี่
          สูงสุดถึง 168 MHz
     - มอดูลนาฬิกาจริง (Real Time Clock) ติดต่อกับกับ Crystal ความถี่ 32 kHz หรือเลือกใช้สัญญาณนาฬิกาจาก
          ภายในสำหรับ RTC ที่ความถี่ 32 kHz ต่อแบตเตอรี่ภายนอกพร้อม หน่วยความจำ Backup ขนาด 4 kByte
     - โหมดประหยัดพลังงาน 3 โหมด ได้แก่ Sleep Stop, Standby mode
     - วงจรแปลงแอนะลอกป็นดิจิตอล ความละเอียด 12 bit 3 channel 2.4 MSPS สูงสุดชุดละ 24 channel
     - วงจรแปลงดิจิตอลเป็นแอนะลอก ความละเอียด 12 bit 2 channel
     - DMA โหมด
     -  timers สูงสุด 17 ตัว โดย 12 ตัวมีความละเอียด 16 bit และ 5 ตัว ความละเอียด 32 bit ความถี่สูงสุด 168 MHz
     -  ขาอินพุตและเอาต์พุตสูงสุด 140 ขา โดย 136 ขา ทำงานที่ความถี่ได้สูงสุดถึง 84 MHz และ 138 ขาสามารถใช้
           รับแรงดัน 5V ได้ โดยทุกขาสามารถจัดเป็นอินเตอร์รัปต์ภายนอกกับ CPU ได้
     -  วงจรสื่อสารอนุกรม I2C 3 วงจร รองรับ SMBus และ PMBus
     -  วงจรสื่อสารอนุกรม USART จำนวน 4 ชุด ความเร็ว 10.5Mbit/s รองรับมาตรฐาน ISO 7816  LIN ,IrDA ,ขา
           สัญญาณควบคุมโมเด็ม
     -  วงจรสื่อสารอนุกรม SPI ความเร็ว 42 Mbit/s จำนวน 3 ชุด.
     -  วงจรสื่อสาร CAN 2 ชุด
     -  วงจรสื่อสาร SDIO 

บล๊อกไดอะแกรมของ STM32F407VGT



               timers ที่เชื่อมต่อกับ APB2 คือ สัญญาณนาฬิกาที่เกิดจาก TIM+CLK มีความถี่สูงสุดที่ 168 MHz ในขณะเดียวกัน timers ที่เชื่อมต่อกัย APB1 ที่เกิดจาก TIM+CLK เช่นกัน จะมีความถี่สูงสุดที่ 84 MHz หรือ 168 MHz นั้น อยู่ที่การปรับค่า TIMPRE bit ซึ่งจะปรับได้ใน RCC_DCKFGR

การจัดเรียงขาของ STM32F407VGT



            จะเห็นได้ว่า STM32F407VGT อยู่ในตัวถังแบบ Plastic low profile quad flat packet (LQFP100) ที่มีขาต่อ 100 ขา

ข้อมูลขาต่อใช้งานของไมโครคอนโทลเลอร์ STM32F407VGT

S = Supply Pin                   I = Input Only pin             I/O = Input / Output pin

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
1
PE2
I/O
TRACECLK/ FSMC_A23 /
ETH_MII_TXD3 /
EVENTOUT

2
PE3
I/O
TRACED0/FSMC_A19 /
EVENTOUT

3
PE4
I/O
TRACED1/FSMC_A20 /
DCMI_D4/ EVENTOUT

4
PE5
I/O
TRACED2 / FSMC_A21 /
TIM9_CH1 / DCMI_D6 /
EVENTOUT

5
PE6
I/O
TRACED3 / FSMC_A22 /
TIM9_CH2 / DCMI_D7 /
EVENTOUT

6
VBAT
   S


7
PC13
I/O
EVENTOUT
RTC_OUT,
RTC_TAMP1,
RTC_TS
8
PC14/OSC32_IN
(PC14)
I/O
EVENTOUT
     OSC32_IN(4)
9
PC15/
OSC32_OUT
(PC15)
I/O
EVENTOUT
    OSC32_OUT(4)
10
VSS
    S


11
VDD
    S


12
PH0/OSC_IN
(PH0)
I/O
EVENTOUT
OSC_IN(4)
ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
13
PH1/OSC_OUT
(PH1)
I/O
EVENTOUT
OSC_OUT(4)
14
NRST
I/O


15
PC0
I/O
OTG_HS_ULPI_STP/
EVENTOUT
ADC123_IN10
16
PC1
I/O
 ETH_MDC/ EVENTOUT
ADC123_IN11
17
PC2
I/O
SPI2_MISO /
OTG_HS_ULPI_DIR /
ETH_MII_TXD2
/I2S2ext_SD/ EVENTOUT
    ADC123_IN12
18
PC3
I/O
SPI2_MOSI / I2S2_SD /
OTG_HS_ULPI_NXT /
ETH_MII_TX_CLK/
EVENTOUT
ADC123_IN13
19
VDD
    S


20
VSSA
    S


21
VREF+
    S


22
VDDA
    S


23
PA0/WKUP
(PA0)
I/O
USART2_CTS/
UART4_TX/
ETH_MII_CRS /
TIM2_CH1_ETR/
TIM5_CH1 / TIM8_ETR/
EVENTOUT
ADC123_IN0/WKUP(4)

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
24
PA1
I/O
USART2_RTS /
UART4_RX/
ETH_RMII_REF_CLK /
ETH_MII_RX_CLK /
TIM5_CH2 / TIM2_CH2/
EVENTOUT
ADC123_IN1
25
PA2
I/O
USART2_TX/TIM5_CH3 /
TIM9_CH1 / TIM2_CH3 /
ETH_MDIO/ EVENTOUT
ADC123_IN2
26
PA3
I/O
USART2_RX/TIM5_CH4 /
TIM9_CH2 / TIM2_CH4 /
OTG_HS_ULPI_D0 /
ETH_MII_COL/
EVENTOUT
ADC123_IN3
27
VSS
   S


28
VDD
   S


29
PA4
I/O
SPI1_NSS / SPI3_NSS /
USART2_CK /
DCMI_HSYNC /
OTG_HS_SOF/ I2S3_WS/
EVENTOUT
ADC12_IN4
/DAC_OUT1
30
PA5
I/O
SPI1_SCK/
OTG_HS_ULPI_CK /
TIM2_CH1_ETR/
TIM8_CH1N/ EVENTOUT
ADC12_IN5
/DAC_OUT2
ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
31
PA6
I/O
SPI1_MISO /
TIM8_BKIN/TIM13_CH1 /
DCMI_PIXCLK /
TIM3_CH1 / TIM1_BKIN/
EVENTOUT
ADC12_IN6
32
PA7
I/O
SPI1_MOSI/ TIM8_CH1N
/ TIM14_CH1/TIM3_CH2/
ETH_MII_RX_DV /
TIM1_CH1N /
ETH_RMII_CRS_DV/
EVENTOUT
ADC12_IN7
33
PC4
I/O
ETH_RMII_RX_D0 /
ETH_MII_RX_D0/
EVENTOUT
    ADC12_IN14
34
PC5
I/O
ETH_RMII_RX_D1 /
ETH_MII_RX_D1/
EVENTOUT
ADC12_IN15
35
PB0
I/O
TIM3_CH3 / TIM8_CH2N/
OTG_HS_ULPI_D1/
ETH_MII_RXD2 /
TIM1_CH2N/ EVENTOUT
  ADC12_IN8
36
PB1

TIM3_CH4 / TIM8_CH3N/
OTG_HS_ULPI_D2/
ETH_MII_RXD3 /
TIM1_CH3N/ EVENTOUT
ADC12_IN9
ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
37
PB2/BOOT1
(PB2) I
I/O
EVENTOUT

38
PE7
I/O
FSMC_D4/TIM1_ETR/
EVENTOUT

39
PE8
I/O
FSMC_D5/ TIM1_CH1N/
EVENTOUT

40
PE9
I/O
FSMC_D6/TIM1_CH1/
EVENTOUT

41
PE10
I/O
FSMC_D7/TIM1_CH2N/
EVENTOUT

42
PE11
I/O
FSMC_D8/TIM1_CH2/
EVENTOUT

43
PE12
I/O
FSMC_D9/TIM1_CH3N/
EVENTOUT

44
PE13
I/O
FSMC_D10/TIM1_CH3/
EVENTOUT

45
PE14
I/O
FSMC_D11/TIM1_CH4/
EVENTOUT

46
PE15
I/O
FSMC_D12/TIM1_BKIN/
EVENTOUT

47
PB10
I/O
SPI2_SCK / I2S2_CK /
I2C2_SCL/ USART3_TX /
OTG_HS_ULPI_D3 /
ETH_MII_RX_ER /
TIM2_CH3/ EVENTOUT

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
48
PB11
I/O
I2C2_SDA/USART3_RX/
OTG_HS_ULPI_D4 /
ETH_RMII_TX_EN/
ETH_MII_TX_EN /
TIM2_CH4/ EVENTOUT

49
VCAP_1
    S


50
VDD
    S


51
PB12
I/O
SPI2_NSS / I2S2_WS /
I2C2_SMBA/
USART3_CK/ TIM1_BKIN
/ CAN2_RX /
OTG_HS_ULPI_D5/
ETH_RMII_TXD0 /
ETH_MII_TXD0/
OTG_HS_ID/ EVENTOUT

52
PB13
I/O
SPI2_SCK / I2S2_CK /
USART3_CTS/
TIM1_CH1N /CAN2_TX /
OTG_HS_ULPI_D6 /
ETH_RMII_TXD1 /
ETH_MII_TXD1/
EVENTOUT
OTG_HS_VBUS
53
PB14
I/O
SPI2_MISO/ TIM1_CH2N
/ TIM12_CH1 /
OTG_HS_DM/
USART3_RTS /
TIM8_CH2N/I2S2ext_SD/
EVENTOUT

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
54
PB15
I/O
SPI2_MOSI / I2S2_SD/
TIM1_CH3N / TIM8_CH3N
/ TIM12_CH2 /
OTG_HS_DP/
EVENTOUT
RTC_REFIN
55
PD8
I/O
FSMC_D13 /
USART3_TX/ EVENTOUT

56
PD9
I/O
FSMC_D14 /
USART3_RX/ EVENTOUT

57
PD10
I/O
FSMC_D15 /
USART3_CK/ EVENTOUT

58
PD11
I/O
FSMC_CLE /
FSMC_A16/USART3_CT
S/ EVENTOUT

59
PD12
I/O
FSMC_ALE/
FSMC_A17/TIM4_CH1 /
USART3_RTS/
EVENTOUT

60
PD13
I/O
FSMC_A18/TIM4_CH2/
EVENTOUT

61
PD14
I/O
FSMC_D0/TIM4_CH3/
EVENTOUT/ EVENTOUT

62
PD15
I/O
FSMC_D1/TIM4_CH4/
EVENTOUT

63
PC6
I/O
I2S2_MCK /
TIM8_CH1/SDIO_D6 /
USART6_TX /
DCMI_D0/TIM3_CH1/
EVENTOUT

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
64
PC7
I/O
I2S3_MCK /
TIM8_CH2/SDIO_D7 /
USART6_RX /
DCMI_D1/TIM3_CH2/
EVENTOUT

65
PC8
I/O
TIM8_CH3/SDIO_D0
/TIM3_CH3/ USART6_CK
/ DCMI_D2/ EVENTOUT

66
PC9
I/O
I2S_CKIN/ MCO2 /
TIM8_CH4/SDIO_D1 /
/I2C3_SDA / DCMI_D3 /
TIM3_CH4/ EVENTOUT

67
PA8
I/O
MCO1 / USART1_CK/
TIM1_CH1/ I2C3_SCL/
OTG_FS_SOF/ EVENTOUT

68
PA9
I/O
USART1_TX/ TIM1_CH2 /
I2C3_SMBA / DCMI_D0/
EVENTOUT
OTG_FS_VBUS
69
PA10
I/O
USART1_RX/ TIM1_CH3/
OTG_FS_ID/DCMI_D1/
EVENTOUT

70
PA11
I/O
USART1_CTS / CAN1_RX
/ TIM1_CH4 /
OTG_FS_DM/
EVENTOUT

71
PA12
I/O
USART1_RTS /
CAN1_TX/ TIM1_ETR/
OTG_FS_DP/
EVENTOUT

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
72
PA13
(JTMS-SWDIO)
I/O
JTMS-SWDIO/
EVENTOUT

73
VCAP_2
   S


74
VSS
   S


75
VDD
   S


76
PA14
(JTCK/SWCLK)
I/O
JTCK-SWCLK/
EVENTOUT

77
PA15
(JTDI)
I/O
JTDI/ SPI3_NSS/
I2S3_WS/TIM2_CH1_ET
R / SPI1_NSS /
EVENTOUT

78
PC10
I/O
SPI3_SCK / I2S3_CK/
UART4_TX/SDIO_D2 /
DCMI_D8 / USART3_TX/
EVENTOUT

79
PC11
I/O
UART4_RX/ SPI3_MISO /
SDIO_D3 /
DCMI_D4/USART3_RX /
I2S3ext_SD/ EVENTOUT

80
PC12
I/O
UART5_TX/SDIO_CK /
DCMI_D9 / SPI3_MOSI
/I2S3_SD / USART3_CK/
EVENTOUT

81
PD0
I/O
FSMC_D2/CAN1_RX/
EVENTOUT

82
PD1
I/O
FSMC_D3 / CAN1_TX/
EVENTOUT

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
83
PD2
I/O
TIM3_ETR/UART5_RX/
SDIO_CMD / DCMI_D11/
EVENTOUT

84
PD3
I/O
FSMC_CLK/
USART2_CTS/
EVENTOUT

85
PD4
I/O
FSMC_NOE/
USART2_RTS/
EVENTOUT

86
PD5
I/O
FSMC_NWE/USART2_TX
/ EVENTOUT

87
PD6
I/O
FSMC_NWAIT/
USART2_RX/ EVENTOUT

88
PD7
I/O
USART2_CK/FSMC_NE1/
FSMC_NCE2/
EVENTOUT

89
PB3
(JTDO/
TRACESWO)
I/O
JTDO/ TRACESWO/
SPI3_SCK / I2S3_CK /
TIM2_CH2 / SPI1_SCK/
EVENTOUT

90
PB4
(NJTRST)
I/O
NJTRST/ SPI3_MISO /
TIM3_CH1 / SPI1_MISO /
I2S3ext_SD/ EVENTOUT

91
PB5
I/O
I2C1_SMBA/ CAN2_RX /
OTG_HS_ULPI_D7 /
ETH_PPS_OUT/TIM3_CH
2 / SPI1_MOSI/
SPI3_MOSI / DCMI_D10 /
I2S3_SD/ EVENTOUT

ขาที่
ชื่อขา
ประเภท
ฟังชั่น
ค่าตั้งต้น
จัดใหม่
92
PB6
I/O
I2C1_SCL/ TIM4_CH1 /
CAN2_TX /
DCMI_D5/USART1_TX/
EVENTOUT

93
PB7
I/O
I2C1_SDA / FSMC_NL /
DCMI_VSYNC /
USART1_RX/ TIM4_CH2/
EVENTOUT

94
BOOT0
I

VPP
95
PB8
I/O
TIM4_CH3/SDIO_D4/
TIM10_CH1 / DCMI_D6 /
ETH_MII_TXD3 /
I2C1_SCL/ CAN1_RX/
EVENTOUT

96
PB9
I/O
SPI2_NSS/ I2S2_WS /
TIM4_CH4/ TIM11_CH1/
SDIO_D5 / DCMI_D7 /
I2C1_SDA / CAN1_TX/
EVENTOUT

97
PE0
I/O
TIM4_ETR / FSMC_NBL0
/ DCMI_D2/ EVENTOUT

98
PE1
I/O
FSMC_NBL1 / DCMI_D3/
EVENTOUT

99
VSS
   S


100
VDD
   S



         จากคุณสมบัติต่างๆของ STM32F407VGT จะเห็นได้ว่ามีความโดดเด่นในด้านการสื่อสารเป็นอย่างมาก โดยมีโมดูลต่างๆให้เลือกอย่างมากมาย ทั้ง UART, I2C, CAN Bus, SPI, LIN จึงเป็นอีกตัวเลือกหนึ่งสำหรับผู้ที่สนใจที่จะเลือกใช้งานทางด้านการสื่อสารในรูปแบบต่างๆพร้อมกันหลายๆทาง



สามารถดาวน์โหลดดาต้าชีทแบบเต็มได้ที่นี่    >>>Download<<<