本文來源電子發(fā)燒友社區(qū),作者:ALSET, 帖子地址:https://bbs.elecfans.com/jishu_2248799_1_1.html
芯片概述
應(yīng)用測試描述
主要軟件實現(xiàn)
相關(guān)性能測試結(jié)果
應(yīng)用評測總結(jié)
芯片概述
CSM32RV20 是一顆基于RISC-V 指令的32位國產(chǎn)低功耗芯片,芯片內(nèi)置了一個4k字節(jié)的SRAM。它可以以字節(jié)、半字(16位)或全字(32位)方式訪問,支持4種低功耗模式,最低功耗小于1uA。可以按低電源消耗、啟動時間和可用的喚醒源的組合方式,來選取一個最佳的方案來選定一個低功耗模式,實現(xiàn)不同場景下的低功耗應(yīng)用。非常適合物聯(lián)網(wǎng)環(huán)境下的針對各種場景的應(yīng)用的MCU計算處理的需求,給嵌入式開發(fā)帶來更加靈活的選擇,能夠?qū)崿F(xiàn)更多特色功能的電子設(shè)計。
芯片主要特性
圖1. 芯片架構(gòu)圖
● 最高 32MHz 工作頻率;
● 內(nèi)置 4kB 的 SRAM;
● 內(nèi)置 8B 的 ALWAYS 寄存器,能在掉電模式 2 下保存數(shù)據(jù);
● 內(nèi)置 4~40kB 的嵌入式 FLASH,512B 的 NVM;
● 內(nèi)置 2 個 SPI MASTER;
● 內(nèi)置 1 個 I2C MASTER;
● 內(nèi)置 4 個 UART 支持最高 1Mbps;
● 寬 ADC 輸入電壓范圍:0 ~ VDD(VDD ≤ 4.8V);
● ADC 支持 11 個輸入通道,最多支持 9 個觸摸按鍵;
● 內(nèi)置 3 個快速比較器;
● 內(nèi)置低壓檢測模塊;
● 最多支持 30 個 GPIO 和 16 個外部中斷;
● 支持 4 種低功耗模式,最低功耗小于 1uA(看門狗工作);
● 內(nèi)置 32 位真隨機(jī)數(shù)發(fā)生器;
● 支持串口和無線 ISP 在線升級(無線 ISP 需外接 Si24R1);
● 支持 JTAG 2 線調(diào)試接口;
● 工作電壓范圍:1.8 ~ 5.5V;
● 支持 4x4mm QFN32 或 TSSOP20 封裝。
芯片引腳圖
芯片引腳圖如圖2所示,芯片有兩種分裝,一種為尺寸為TSSOP20 / 6.5mm*6.4mm*1.0mm封裝,另外一種是QFN32 / 4mm*4mm*0.8mm封裝。兩者差別是前者引腳為20腳,后者為32腳,后者比前者IO資源更豐富,同時封裝體積更小,適合小體積要求產(chǎn)品的開發(fā)。
圖2CSM32RV20芯片引腳圖
芯片功能描述
這里QFN32的芯片為測試對象,該芯片所有外設(shè)功能被引出。該芯片引腳功能描述如圖3所示。
圖3CSM32RV20芯片引腳功能描述
最小開發(fā)板
原廠提供了最小開飯,開發(fā)板將芯片的所有引腳已2.54mm排針引出。外接一顆CH34N USB轉(zhuǎn)串口芯片,通過Type-C 接口與PC連接。同時板子上有3.3v/5.1v開關(guān)的選擇,通過撥動開關(guān)可以選擇不同的工作電壓,可見此MCU可以在這兩種電壓下工作。開發(fā)板采用串口方式下載,J-Link調(diào)試器進(jìn)行調(diào)試,板上右側(cè)4根排針即為接J-Link的接口,需要注意的是J-Link需要支持v11版本以上的。
圖4CSM32RV20開發(fā)板
開發(fā)環(huán)境配置
開發(fā)板開發(fā)主要開發(fā)語言為c/c++, 開發(fā)工具為CSMStudio,CSMStudio是集成開發(fā)環(huán)境,集成代碼編輯,編譯,連接,調(diào)試仿真為一體。在Win10上安裝完CSMStudio后,打開開發(fā)工具如圖5所示。
圖5 CSMStudio IDE 集成開發(fā)工具
安裝好CSMStudio后,直接通過菜單“文件”創(chuàng)建一個新工程,創(chuàng)建時選擇CSM32RV20芯片,即可創(chuàng)建新工程,然后編譯,在工程 default 目錄下成功生成 elf 目標(biāo)文件,如圖6所示。
圖6 CSMStudio IDE 創(chuàng)建測試工程
編譯得到elf文件后,通過CSM提供的下載工具 CSMISP 進(jìn)行下載。安裝好CH34N窗口驅(qū)動和CSMISP軟件。安裝完CSMISP啟動后如圖7所示。
圖7 CSMISP PC下載調(diào)試工具
安裝完CSM_ISP后,設(shè)置好MCU型號,串口號和通訊速度即可連接到開發(fā)板。可以通過檢測MCU型號來檢測與開發(fā)板是否連接正常,點(diǎn)擊檢測MCU型號并且按開發(fā)板復(fù)位鍵,后會在下載信息窗口出現(xiàn)如圖8所示,表示已和開發(fā)板連接成功。
圖8 CSMISP 檢測MCU型號成功
在確認(rèn)下載工具與開發(fā)板連接正常后,再點(diǎn)程序文件,選擇編譯好的elf文件后,在調(diào)試信息里會顯示程序文件加載成功。
圖9 程序文件加載成功
再點(diǎn)下載/編程按鈕,且按開發(fā)板復(fù)位鍵,在調(diào)試信息里會程序下載和flash刷寫過程,如一切順利,則顯示程序下載成功。如果顯示失敗,可以重復(fù)下載動作幾次,也能獲得下載成功。下載過程如圖10所示。
圖10 下載編程到板子上成功
下載目標(biāo)程序到板子上后,按按開發(fā)板復(fù)位鍵,程序就會被運(yùn)行,默認(rèn)創(chuàng)建的測試工程是一個點(diǎn)亮 LED的代碼,程序在串口助手打印出信息,開發(fā)板上可以見到LED閃爍,如圖11所示。到此整個開發(fā)、編譯、下載和串口調(diào)試過建立程完成。
圖11 按reset鍵程序在板子上運(yùn)行成功
此次測試目標(biāo),我們根據(jù)次芯片低功耗的特點(diǎn),搭配電子墨水顯示屏,使用紐扣電池或鋰電充電電池的應(yīng)用場景作為應(yīng)用測試目標(biāo)。電子墨水屏具有掉電保持顯示內(nèi)容,驅(qū)動功耗低等優(yōu)點(diǎn),方案可用于物聯(lián)網(wǎng)現(xiàn)場數(shù)據(jù)采集顯示、電子價簽、智能工牌等應(yīng)用。此次配合測試使用的是GDEW027W3一款2.7寸黑白兩色的電紙屏, 屏幕分辨率為264x176,像素點(diǎn)為0.2毫米,屏幕顯示對比度高,刷新速度快,溫度適應(yīng)范圍寬,體積也很小巧。
測試硬件連接
該墨水屏采用SPI4線串口方式通訊,根據(jù)其使用說明,它與CSM32RV20 開發(fā)板連接電路如圖12所示。
圖12 CSM32RV20與GDEW027W3墨水屏連接電路圖
物理連接使用CSM32RV20 SPI1通訊,SPI1的定義是:SCK為GPIOA PIN2,MISO為GPIOA PIN3 ,MOSI為GPIOA PIN4, 其它墨水屏需要的端口可以從空閑的端口選用,這里PA5,PA6為串口,因此這里依次使用的CS - PA7,DC – PA8, RES-PA9, BUSY PA10,這樣連線即可。實際接線如圖13圖14所示。
圖13 CSM32RV20與GDEW027W3墨水屏連接圖
圖14 CSM32RV20與GDEW027W3引線連接圖
硬件連接完后,則需開發(fā)相應(yīng)的軟件,通過SPI1來驅(qū)動墨水屏。墨水屏的驅(qū)動軟件主要有3部分,第一部分是各引腳接口的定義,用來定義通信接口。第二部分是SPI通信操作的封裝,第三部分是墨水屏各個功能的實現(xiàn)。這個墨水屏帶有STM32的實例代碼,那么下來主要的任務(wù),就是將STM32代碼移植適配到CSM32RV20這個MCU的軟件上。工程軟件代碼文件主要有這eink_edp.c , eink_edp_gdew027w3.c, eink27_image.c 三個文件,其中eink_edp.c主要是對SPI操作的封裝,也是移植不同MCU時需要修改的代碼。eink_edp_gdew027w3.c則是這個屏的操作函數(shù)接口,eink27_image.c是由圖像抽取工具制作的測試圖像數(shù)據(jù)。如圖15所示。
圖15 CSM32RV20墨水屏軟件工程
在墨水屏對CSM32RV20移植中,對照上面的硬件連接,各引腳IO對應(yīng)做下面的定義:
//SCK--PA2MISO--PA3 MOSI--PA4CS--PA7 DC--PA8 RST--PA9BUSY--PA10
#define EPD_GPIO_PORT GPIOA
#define EPD_LED_PIN PIN12//RED LED
#define EPD_BUSY_PIN PIN10
#define EPD_RST_PIN PIN9
#define EPD_DC_PIN PIN8
#define EPD_CS_PIN PIN7
#define EPD_SDA_PIN PIN4
#define EPD_DIN_PIN PIN3 //沒有用到
#define EPD_CLK_PIN PIN2
#define SET_SPI_CS(EPD_GPIO_PORT->BSR=0x00000001#define CLR_SPI_CS??(EPD_GPIO_PORT->BSR=0x00010000#define SET_SPI_CLK??(EPD_GPIO_PORT->BSR=0x00000001#define CLR_SPI_CLK??(EPD_GPIO_PORT->BSR=0x00010000#define SET_SPI_MOSI??(EPD_GPIO_PORT->BSR=0x00000001#define CLR_SPI_MOSI??(EPD_GPIO_PORT->BSR=0x00010000#define GET_SPI_MISO??(EPD_GPIO_PORT->IDR&(0x00000001#define GET_BUSY_PIN??(EPD_GPIO_PORT->IDR&(0x00000001<))>))>)
)>)
)>)
)>
主要移植修改的函數(shù)主要由下面幾個,分別是墨水屏初始化,墨水屏的數(shù)據(jù)讀寫操作,以及延時函數(shù)。按函數(shù)的功能非常簡單的適配開發(fā)就完成適配層的封裝修改。
void DEV_Digital_Write(u8 gpio_pin, u8 s)
{
GPIO_Write(EPD_GPIO_PORT,gpio_pin,s);
}
void DEV_SPI_WriteByte(u8 t)
{
#ifUSE_SOFT_SPI
SPIWriteByte(t);
#else
uint8_t sTxpack[2];
uint8_t sRxpack[2];
sTxpack[0]=t;
SPI_Transceive(spi,sTxpack,sRxpack,1);
#endif
}
void DEV_Delay_ms(u32 ticks)
{
delay_ms(ticks);
}
int EPD_setup(uint8_t w, uint8_t h)
{
Paint_Init(&paint, frame_buffer,w, h);
Paint_Clear(&paint,0x1);
return 0;
}
int DEV_SPI_init()
{
spi = (SPI_TypeDef *)SPI1_BASE;
SPI_Init_case1(spi,0,0,6);
SPI1_CSN_Init_case1();
ee_printf("CS--PA7, CLK--PA2, DI--PA3, DO--PA4n");
ee_printf("BUSY--PA10, RST--PA9, DC--PA8n");
return SUCCESS;
}
這里在隨后的調(diào)試時,通過反復(fù)測試驗證,對CSM32RV20芯片驅(qū)動層的 SPI_Init_case1 做了一些修改,修改如下:
void SPI_Init_case1(SPI_TypeDef*SPIx, uint8_t cpol, uint8_t cpha, uint8_t fvk);
將原函數(shù)里SPI的CPOL與CPHA和主頻分頻數(shù)fvk通過參數(shù)方式傳入,是為方便調(diào)試,通過實際測試驗證傳入不同的參數(shù)來調(diào)試相關(guān)參數(shù)。
在main.c 中則是直接調(diào)用封裝后的函數(shù),完成SPI對墨水屏操作的測試。測試?yán)臃浅:唵危嚓P(guān)的函數(shù)已以在代碼中給出注釋,非常簡單的十幾行代碼完成墨水屏的操作測試。
int main(void){///----System Init ----------------------CLIC_Init();//系統(tǒng)中斷配置System_Clock_Init();//系統(tǒng)時鐘初始化UART_Init_case1(UART1);//串口1初始化 TX1--PA6 RX1--PA5ee_printf("nCSM32RV20 Eink Display testing ...n");ee_printf("GPIO_Config completed! ...n");GPIO_Config();DEV_SPI_init();ee_printf("DEV_SPI_init completed! ...n");ee_printf("Start eink_edp27 testing ...n");eink_edp27();while(1){delay_ms(1000);}}
編譯下載到板子上運(yùn)行調(diào)試。開始幾次運(yùn)行并沒有出現(xiàn)正確的輸出,例子運(yùn)行總卡在ReadBusy(void)函數(shù)中,這個函數(shù)是檢測墨水屏的狀態(tài)的Check Busy,檢測是通過讀取PIN10的電平,引腳在初始化時配置為輸入,并且默認(rèn)拉低。按技術(shù)說明設(shè)備初始化如果正確,那么在會在檢測ReadBusy時應(yīng)該輸出高電平,輸出高電平后才能進(jìn)行下一步,如果沒有輸出則代表這步操作沒有完成,需要等待并且繼續(xù)查詢該狀態(tài)直到通過。從初始化到顯示的操作流程如圖16所示。
圖16 GDEW027W3操作程序流程圖
因為這個屏在STM32的主控芯片下驗證通過,其主要的代碼也是在STM32上運(yùn)行正確的,因此這次主要的調(diào)試就是檢查硬件的連接以及相關(guān)參數(shù)的修改,確定適配部分的正確。通過經(jīng)過n次的修改調(diào)試,硬件連接檢查,最終在串口助手得到了全部正確的輸出,輸出調(diào)試信息如圖17所示,這也意味著CSM32RV20驅(qū)動SPI串口系列屏驗證通過。
圖17 板上運(yùn)行輸出完整的正確信息
墨水屏上也顯示出了正確的內(nèi)容,如圖18,圖19所示。
圖18 墨水屏上的顯示輸出
圖19 墨水屏上的顯示放大欣賞
墨水屏應(yīng)用測試的主要性能測試指標(biāo)有:正常操作時的整體功耗,待機(jī)功耗,以及SPI通訊速度,墨水屏刷新速度。
通過反復(fù)運(yùn)行測試,得到數(shù)據(jù)如下:
32Mhz主頻設(shè)置下,3.3V 電壓CSM32RV20驅(qū)動墨水屏顯示最大電流為8.6mA。
待機(jī)時,墨水屏可以保持顯示,主要待機(jī)電流為CSM32RV20待機(jī)電流,測試為 20uA左右。
SPI穩(wěn)定刷寫墨水屏,速率在0.5Mbps
墨水屏刷寫速度,擦除在2秒左右,寫入顯示在0.5秒。
經(jīng)過對CSM32RV20操作墨水屏顯示的應(yīng)用測試,此款芯片上手比較容易,開發(fā)難度不大,在熟悉STM32開發(fā)的小伙伴們轉(zhuǎn)到這款芯片時非常容易,開發(fā)編譯還是非常方便的,編譯速度也很快。此款芯片功耗較低能夠較好的適用在電池供電等有嚴(yán)苛的電源限制的嵌入式環(huán)境下。從正常工作模式到待機(jī)模式轉(zhuǎn)換很快,也很穩(wěn)定。對于SPI速率問題,測試數(shù)據(jù)表現(xiàn)較低,對比在STM32下有2M以上的表現(xiàn),分析主要原因可能由于,開發(fā)板連接墨水屏用的線較長,有20cm左右,因此干擾增大,造成較高速度通訊時失敗率較高,不得不降低通訊速度才能穩(wěn)定的運(yùn)行。另外連接線插接不夠穩(wěn)固,也造成信號不夠穩(wěn)定,測試發(fā)現(xiàn)墨水屏驅(qū)動板電壓經(jīng)常只有1.2v,這是因為連線存在不穩(wěn)固,線路上有較大電阻。經(jīng)過反復(fù)插接壓緊才達(dá)到3.3v的電壓,因此建議采用布線打測試板的方式來進(jìn)行驗證,這樣盡可能排除測試環(huán)境造成的影響。
因此此次是測試,直接采用制作好的圖片數(shù)據(jù),在實際應(yīng)用中需要實時繪制圖片的內(nèi)容,以及對外通訊,因此需要考慮再加入Si24R1這樣的無線通訊芯片,而 CSM32RV20已帶有對該通訊芯片的例程,因此加入無線通訊也是比較容易的事了。
最后在此次測試時,恰逢虎年春節(jié),順手刷一張祝福圖送給大家。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
南京中科微
+關(guān)注
關(guān)注
0文章
60瀏覽量
743 -
CSM32RV20
+關(guān)注
關(guān)注
0文章
40瀏覽量
216
發(fā)布評論請先 登錄
相關(guān)推薦
瑞芯微主板/開發(fā)板Linux系統(tǒng)播放音頻方法,觸覺智能RK3562開發(fā)板演示
本文介紹瑞芯微方案主板/開發(fā)板Linux系統(tǒng)播放音頻的方法,觸覺智能RK3562開發(fā)板演示,通用RK3566、RK3568、RK3588等
追加名額丨米爾瑞芯微RK3576開發(fā)板有獎試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動加碼啦~~米爾追加了2塊價值849元的MYD-LR3576
常用在工業(yè)控制系統(tǒng)上的MCU芯片資料:CSM32RV20
CSM32RV20是一款基于RISC-V核的低功耗MCU芯片。 內(nèi)置RISC-V RV32IMAC內(nèi)核(2.6CoreMark/MHz); 蕞高32MHz工作頻率; 內(nèi)置4kB的SRAM; 內(nèi)置8B
有獎丨米爾 瑞芯微RK3576開發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576
瑞芯微RK3568開發(fā)板Linux編譯報錯404怎么辦?觸覺智能教你輕松解決
本文介紹瑞芯微RK3568主板/開發(fā)板SDK編譯流程和編譯報錯404的解決方法,使用觸覺智能EVB3568鴻蒙開發(fā)板演示,具有豐富的視頻輸入輸出接口(HDMI/eDP/MIPI/LVDS) 與多種高速接口(千兆網(wǎng)口/PCIe/S
香橙派發(fā)布首款RISC-V開發(fā)板OrangePi RV
2024年3月,香橙派在全球開發(fā)者會議上發(fā)布了其首款基于RISC-V開發(fā)的OrangePi RV主板。這款開發(fā)板擁有四核RISC-V U74與S7協(xié)處理器,配備 2MB L2緩存。同時
fpga開發(fā)板是什么?fpga開發(fā)板有哪些?
FPGA開發(fā)板是一種基于FPGA(現(xiàn)場可編程門陣列)技術(shù)的開發(fā)平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現(xiàn)各種數(shù)字電路和邏輯功能。FPGA開發(fā)板通常包括FPGA芯片、時鐘模塊、電源模塊、輸入輸出接口等組
fpga開發(fā)板與linux開發(fā)板區(qū)別
FPGA開發(fā)板與Linux開發(fā)板是兩種不同的硬件開發(fā)平臺,各自具有不同的特點(diǎn)和應(yīng)用場景。在以下的文章中,我將詳細(xì)介紹FPGA開發(fā)板和Linux開發(fā)板
rv1126和rk3568對比
視頻編解碼。而RK3568開發(fā)板創(chuàng)龍科技旗下工業(yè)開發(fā)板,基于瑞芯微RK3568J/RK3568B2處理器設(shè)計,四核ARM Cortex-A55,每核主頻高達(dá)1.8GHz/2.0GHz。 rv
大聯(lián)大推出基于中科藍(lán)訊產(chǎn)品的藍(lán)牙音箱開發(fā)板方案
2024年1月9日,致力于亞太地區(qū)市場的領(lǐng)先半導(dǎo)體元器件分銷商---大聯(lián)大控股宣布其旗下世平推出基于中科藍(lán)訊(Bluetrum)AB5301A的藍(lán)牙音箱開發(fā)板方案。
評論