ALIENTEK MiniSTM32開發板是一款迷你型的開發板,小巧而不小氣,簡約而不簡單。ALIENTEK MiniSTM32開發板的特點包括:
1)小巧。整個板子尺寸為8cm*10cm*2cm(包括液晶,但不計算銅柱的高度)。
2)靈活。板上除晶振外的所有的IO口全部引出,特別還有GPIOA和GPIOB的IO口是按順序引出的,可以極大的方便大家擴展及使用。
3)資源豐富。板載十多種外設及接口,讓你暢游STM32
??????? 她的外觀尺寸只有8cm*10cm大小,如下圖所示:
圖1 MiniSTM32 開發板外觀圖
這款MiniSTM32開發板,不求最全,但求最精!板子的設計充分考慮了成本與功能這兩個矛盾面,再結合實際使用的經驗及STM32的特點,最終確定了這樣的設計。總體來說是該有的都有,不該有的堅決不要,可有可無的選擇性價比最高的留下。現在向大家介紹ALIENTEK MiniSTM32開發板的各部分硬件,讓大家對該開發板的各部分硬件原理有個理解。
??????? CPU
ALIENTEK MiniSTM32選擇的是STM32F103RBT6作為MCU,STM32F103的型號眾多,我們選擇這款的原因是看重其性價比,作為一款低端開發板,選擇STM32F103RBT6是最佳的選擇。128K FLASH、20K SRAM、2個SPI、3個串口、1個USB、1個CAN、2個12位的ADC、RTC、51個可用IO腳…,這樣的配置無論放到哪里都是很不錯的了,更重要的是其價格,18元左右的零售價,足以秒殺很多其他芯片了,所以我們選擇了它作為我們的主芯片。MCU部分原理圖如下:
圖二 MCU部分原理圖
上圖中中上部的BOOT1用于設置STM32的啟動方式,其對應啟動模式如下表所示:
我們用串口下載代碼,則配置BOOT0為1,BOOT1為0即可,如果想讓STM32一按復位鍵就開始跑代碼,則需要配置BOOT0為0,BOOT1隨便設置都可以。
P3和P1分別用于PORTA和PORTB的IO口引出,其中P2還有部分用于PORTC口的引出。PORTA和PORTB都是按順序排列的,這樣設計的目的是為了讓大家更方便地與外部設備連接。
P2連接了DS18B20的數據口以及紅外傳感器的數據線,它們分別對應著PA0和PA1,只需要通過跳線帽將P2和P3連接起來就可以使用了。這里不直接連在一起的原因有二:1,防止紅外傳感器和DS18B20對這兩個IO口作為其他功能使用的時候的影響;2,DS18B20和紅外傳感器還可以用來給其他板子提供輸入,等于我們的板子為別的板子提供了紅外接口和溫度傳感器,在調試的時候,還是蠻有用的。
P4口連接了PL2303的串口輸出,對應著STM32的串口1(PA9/PA10),在使用的時候,也是通過跳線帽將這兩處連接起來。這樣設計有2個好處:1,使得PA9和PA10用作其他用途使用的時候,不受到PL2303的影響。2,USB轉串口可以用作他用,并不僅限這個板上的STM32使用,也可以連接到其他板子上,這樣ALIENEK MiniSTM32就相當于一個USB串口。
P5口是另外一個IO引出排陣,將PORTC和PORTD等的剩余IO口從這里引出。
在此部分原理圖中,我們還可以看到STM32F103RBT6的各個IO口與外設的連接關系,這些將在后面給大家介紹。
這里STM32的VBAT采用CR1220紐扣電池和VCC3.3混合供電的方式,在有外部電源(VCC3.3)的時候,CR1220不給VBAT供電,而在外部電源斷開的時候,則由CR1220給VBAT供電。這樣,VBAT總是有電的,以保證RTC的走時以及后備寄存器的內容不丟失。
該部分還有JTAG,JTAG部分電路如下圖:
圖三 JTAG原理圖
這里采用的是標準的JTAG接法,但是STM32還有SWD接口,SWD只需要最少2跟線(SWCLK和SWDIO)就可以下載并調試代碼了,這同我們使用串口下載代碼差不多,而且速度更快,能調試。所以建議大家在設計產品的時候,可以留出SWD來下載調試代碼,而摒棄JTAG。STM32的SWD接口與JTAG是共用的,只要接上JTAG,你就可以使用SWD模式了(其實并不需要JTAG這么多線),JLINKV8和ULINK2都支持SWD。
EEPROM
ALIENTEK MiniSTM32自帶了24C02的EEPROM芯片,該芯片的容量為2Kbit,也就是256個字節,對于我們普通應用來說是足夠了的。你也可以選擇換大的芯片,因為在原理上是兼容24C02~24C512全系列的EEPROM芯片的。其原理圖如下:
圖四 EEPROM原理圖
這里我們把A0~A2均接地,對24C02來說也就是把地址位設置成了0了,寫程序的時候要注意這點。IIC_SCL接在MCU的PC12上,IIC_SDA接在MCU的PC11上,這里我們并沒有接到STM32內部的IIC上,因為STM32的IIC是雞肋!如果你想在ALIENTEK MiniSTM32開發板上使用硬件IIC,那么也是可以的,你只需要設置PC11和PC12為浮空輸入,然后把PB10和PB11(IIC2)或者PB6和PB7(IIC1)通過飛線連接到PC11和PC12上就可以使用硬件IIC了。
溫度傳感器
溫度傳感器我們使用的是DS18B20,其原理圖如下:
圖五 溫度傳感器原理圖
DS18B20的數據腳(18B20_DQ)接P2的第一腳,并沒有直接連接到MCU,至于為什么,前面已有介紹。要使用這里,我們用跳線帽把PA0和P2-1連接起來就可以了。
按鍵
ALIENTEK MiniSTM32開發板總共有3個按鍵,其原理圖如下:
圖六 按鍵輸入原理圖
KEY0和KEY1用作普通按鍵輸入,分別連接在PA13和PA15上,他們都連接在了JTAG相關的引腳上(KEY0還連接在SWDIO上),這樣,在使用KEY0和KEY1的時候,就不能使用JTAG來調試了,這點在使用的時候要注意。KEY0和KEY1還和PS/2的DAT和CLK線共用,他們都通過JTAG的上拉電阻來提供上拉。
WK_UP按鍵連接到PA0(STM32的WKUP引腳),它除了可以用作普通輸入按鍵外,還可以用作STM32的喚醒輸入。這個按鍵是高電平觸發的。PA0還是DS18B20的輸入引腳,所以在使用的時候要注意哦。
液晶顯示模塊
ALIENTEK MiniSTM32開發板載有目前比較通用的液晶顯示模塊接口,還有其比較有特色的兼容性接口,不僅支持2.4、2.8寸的TFTLCD,還支持OLED顯示器。其原理圖如下:
圖七 液晶顯示模塊原理圖
LCD1是一個通用的液晶模塊接口。OLED是一個給OLED顯示模塊供電的接口,它和LCD1拼接在一起。當使用2.4’/2.8’的LCD時,我們接到LCD1上就可以了,而當我們使用ALIENTEK 的OLED模塊時,則接OLED排陣做電源,同時會連接到LCD1上的部分管腳,從而實現OLED與MCU的連接。ALIENTEK MiniSTM32的LCD接口兼容:ALIENTEK的TFTLCD模塊、紅牛開發板的液晶模塊、CRE開發板的液晶模塊、STMSKY開發板的液晶模塊等。所以,如果有以上幾款開發板的液晶模塊,或者接口與上面原理圖兼容的,都是可以在ALIENTEK MiniSTM32開發板上使用的。
這些引腳與MCU的連接關系我們在這里就不一一列出了,大家可以從MCU的原理圖上找到。T_PEN是觸摸屏的PEN信號輸出,我們在這里加了濾波電路,使得觸摸屏讀數更加準確。
紅外接收頭
ALIENTEK MiniSTM32開發板載有紅外接收傳感器HS0038,原理圖如下:
圖八 液晶顯示模塊原理圖
REMOTE_IN接到P2的第二腳,也沒有直接接在MCU的IO口上,目的也是防止IO口在做其他功能使用的時候,收到紅外信號的干擾。
PS/2
ALIENTEK MiniSTM32開發板載有PS/2接口,有了該接口,我們就可以用來連接外部標準的PS/2鼠標鍵盤了,也就大大的擴展了ALIENTEK MiniSTM32的輸入。原理圖如下:
圖九 PS/2接口原理圖
PS_CLK和PS_DAT分別接PA15和PA13,PS/2的信號線是需要外部提供上拉電阻的,這里我們和JTAG共用,使用JTAG的上拉電阻來提供,PS/2的CLK和DAT還與兩個按鍵共用。所以在使用這幾部分的時候,要特別注意,別沖突,可以分時復用。在使用PS/2的時候,同樣不能使用JTAG調試。
ALIENTEK MiniSTM32開發板上總共有3個LED,其原理圖如下:
圖十 LED原理圖
其中PWR是系統電源指示燈,為藍色。LED0和LED1分別接在PA8和PD2上,PA8還可以通過TIM1的通道1的PWM輸出來控制DS0的亮度。為了方便大家判斷,我們選擇了DS0為紅色,DS1為綠色的LED燈。
SD卡
ALIENTEK MiniSTM32開發板載有標準的SD卡接口,有了這個接口,我們就可以外擴大容量存儲設備,可以用來記錄數據。其原理圖如下:
圖十一 SD卡接口原理圖
SD卡我們使用的是SPI模式通信,SD卡的SPI接口連接到STM32的SPI1上,SD_CS接在PA3上,ALIENTEK MiniSTM32開發板上的SPI1總共由4個外設共用,他們分別是:SD卡、NRF24L01無線模塊、JF24C無線模塊和W25X16。他們可以通過不同的片選信號來分時復用。
無線模塊
ALIENTEK MiniSTM32開發板板載了2款無線模塊的接口,NRF24L01模塊和JF24C模塊,他們都屬于2.4G通信的無線模塊,并且都有性價比極高的特點。其中NRF24L01模塊的最大通信速率為2Mbps,JF24C的為1Mbps。有了這個兩個接口,我們就無線通信,以及其他很多的應用了。這部分原理圖如下:
圖十二 無線模塊接口原理圖
這兩部分也是共用SPI接口,其余引腳與MCU的對應關系在MCU部分有,我們這里就不列出了。注意這兩個無線模塊是不能同時連接在板子上的!
SPI FLASH
ALIENTEK MiniSTM32開發板載有SPI FLASH芯片W25X16,該芯片的容量為2M字節,與AT45DB161屬于同一級別,ATMEL的東西價格近來很不穩定,因而我們選擇了價格穩定,貨源較好,而且通用性很強的W25X16,其原理圖如下:
圖十三 W25X16原理圖
W25X16也是共用了SPI1,F_CS接在PA2上。至此,總共SPI1的四個器件都已介紹完畢,他們的CS都接在不同的IO口上(兩個無線模塊除外),所以在使用其中一個器件的時候,要記得禁止其他器件的CS腳,否則會有干擾。
USB串口、USB、電源
這里三個部分一起介紹,ALIENTEK MiniSTM32開發板板載了USB串口,并且由USB提供電源,使得我們只需要一根USB線就可以使用ALIENTEK MiniSTM32開發板了,包括下載、供電、調試3位一體。
ALIENTEK MiniSTM32開發板的供電部分還引出了5V和3.3V的排陣,可以用來為外部設備提供電源或者從外部引入電源,這在很多時候是非常有用的,有時候你突然要一個3.3V的電源,但找半天就是沒這樣的電源,而我們的板子則可直接向外部提供3.3V電源,有了它,你就可以給外部設備提供3.3V、5V電源了。注意電流不能太大哦!
ALIENTEK MiniSTM32開發板的USB接口通過獨立的Mini USB頭引出,不和USB_232共用,這樣不但可以同時使用,還可以給系統提供更大的電流。
這幾個部分的原理圖如下:
圖十四 USB串口、USB、電源部分原理圖
此部分還有一個開關BUTTON,用來控制整個系統的供電,如果斷開則整個系統的3.3V部分都將斷電。而5V部分的電源還是開啟的。圖中F1為可恢復保險絲,用于保護USB。
至此,整個開發板的硬件就介紹完了,了解了整個硬件對我們后面的軟件設計會有很大幫助,希望大家細讀!
評論