本文來源電子發(fā)燒友社區(qū),作者:ALSET, 帖子地址:https://bbs.elecfans.com/jishu_2248799_1_1.html
芯片概述
應(yīng)用測試描述
主要軟件實(shí)現(xiàn)
相關(guān)性能測試結(jié)果
應(yīng)用評測總結(jié)
芯片概述
CSM32RV20 是一顆基于RISC-V 指令的32位國產(chǎn)低功耗芯片,芯片內(nèi)置了一個(gè)4k字節(jié)的SRAM。它可以以字節(jié)、半字(16位)或全字(32位)方式訪問,支持4種低功耗模式,最低功耗小于1uA。可以按低電源消耗、啟動(dòng)時(shí)間和可用的喚醒源的組合方式,來選取一個(gè)最佳的方案來選定一個(gè)低功耗模式,實(shí)現(xiàn)不同場景下的低功耗應(yīng)用。非常適合物聯(lián)網(wǎng)環(huán)境下的針對各種場景的應(yīng)用的MCU計(jì)算處理的需求,給嵌入式開發(fā)帶來更加靈活的選擇,能夠?qū)崿F(xiàn)更多特色功能的電子設(shè)計(jì)。
芯片主要特性

圖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 個(gè) SPI MASTER;
● 內(nèi)置 1 個(gè) I2C MASTER;
● 內(nèi)置 4 個(gè) UART 支持最高 1Mbps;
● 寬 ADC 輸入電壓范圍:0 ~ VDD(VDD ≤ 4.8V);
● ADC 支持 11 個(gè)輸入通道,最多支持 9 個(gè)觸摸按鍵;
● 內(nèi)置 3 個(gè)快速比較器;
● 內(nèi)置低壓檢測模塊;
● 內(nèi)置 RF 檢測模塊;
● 最多支持 30 個(gè) GPIO 和 16 個(gè)外部中斷;
● 內(nèi)置硬件看門狗;
● 支持 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資源更豐富,同時(shí)封裝體積更小,適合小體積要求產(chǎn)品的開發(fā)。

圖2CSM32RV20芯片引腳圖
芯片功能描述
這里QFN32的芯片為測試對象,該芯片所有外設(shè)功能被引出。該芯片引腳功能描述如圖3所示。

圖3CSM32RV20芯片引腳功能描述
最小開發(fā)板
原廠提供了最小開飯,開發(fā)板將芯片的所有引腳已2.54mm排針引出。外接一顆CH34N USB轉(zhuǎn)串口芯片,通過Type-C 接口與PC連接。同時(shí)板子上有3.3v/5.1v開關(guān)的選擇,通過撥動(dòng)開關(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)建一個(gè)新工程,創(chuàng)建時(shí)選擇CSM32RV20芯片,即可創(chuàng)建新工程,然后編譯,在工程 default 目錄下成功生成 elf 目標(biāo)文件,如圖6所示。

圖6 CSMStudio IDE 創(chuàng)建測試工程
編譯得到elf文件后,通過CSM提供的下載工具 CSMISP 進(jìn)行下載。安裝好CH34N窗口驅(qū)動(dòng)和CSMISP軟件。安裝完CSMISP啟動(dòng)后如圖7所示。

圖7 CSMISP PC下載調(diào)試工具
安裝完CSM_ISP后,設(shè)置好MCU型號,串口號和通訊速度即可連接到開發(fā)板。可以通過檢測MCU型號來檢測與開發(fā)板是否連接正常,點(diǎn)擊檢測MCU型號并且按開發(fā)板復(fù)位鍵,后會(huì)在下載信息窗口出現(xiàn)如圖8所示,表示已和開發(fā)板連接成功。

圖8 CSMISP 檢測MCU型號成功
在確認(rèn)下載工具與開發(fā)板連接正常后,再點(diǎn)程序文件,選擇編譯好的elf文件后,在調(diào)試信息里會(huì)顯示程序文件加載成功。

圖9 程序文件加載成功
再點(diǎn)下載/編程按鈕,且按開發(fā)板復(fù)位鍵,在調(diào)試信息里會(huì)程序下載和flash刷寫過程,如一切順利,則顯示程序下載成功。如果顯示失敗,可以重復(fù)下載動(dòng)作幾次,也能獲得下載成功。下載過程如圖10所示。

圖10 下載編程到板子上成功
下載目標(biāo)程序到板子上后,按按開發(fā)板復(fù)位鍵,程序就會(huì)被運(yùn)行,默認(rèn)創(chuàng)建的測試工程是一個(gè)點(diǎn)亮 LED的代碼,程序在串口助手打印出信息,開發(fā)板上可以見到LED閃爍,如圖11所示。到此整個(gè)開發(fā)、編譯、下載和串口調(diào)試過建立程完成。

圖11 按reset鍵程序在板子上運(yùn)行成功
此次測試目標(biāo),我們根據(jù)次芯片低功耗的特點(diǎn),搭配電子墨水顯示屏,使用紐扣電池或鋰電充電電池的應(yīng)用場景作為應(yīng)用測試目標(biāo)。電子墨水屏具有掉電保持顯示內(nèi)容,驅(qū)動(dòng)功耗低等優(yōu)點(diǎn),方案可用于物聯(lián)網(wǎng)現(xiàn)場數(shù)據(jù)采集顯示、電子價(jià)簽、智能工牌等應(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,這樣連線即可。實(shí)際接線如圖13圖14所示。

圖13 CSM32RV20與GDEW027W3墨水屏連接圖

圖14 CSM32RV20與GDEW027W3引線連接圖
硬件連接完后,則需開發(fā)相應(yīng)的軟件,通過SPI1來驅(qū)動(dòng)墨水屏。墨水屏的驅(qū)動(dòng)軟件主要有3部分,第一部分是各引腳接口的定義,用來定義通信接口。第二部分是SPI通信操作的封裝,第三部分是墨水屏各個(gè)功能的實(shí)現(xiàn)。這個(gè)墨水屏帶有STM32的實(shí)例代碼,那么下來主要的任務(wù),就是將STM32代碼移植適配到CSM32RV20這個(gè)MCU的軟件上。工程軟件代碼文件主要有這eink_edp.c , eink_edp_gdew027w3.c, eink27_image.c 三個(gè)文件,其中eink_edp.c主要是對SPI操作的封裝,也是移植不同MCU時(shí)需要修改的代碼。eink_edp_gdew027w3.c則是這個(gè)屏的操作函數(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ù)主要由下面幾個(gè),分別是墨水屏初始化,墨水屏的數(shù)據(jù)讀寫操作,以及延時(shí)函數(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)試時(shí),通過反復(fù)測試驗(yàn)證,對CSM32RV20芯片驅(qū)動(dòng)層的 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í)際測試驗(yàn)證傳入不同的參數(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)時(shí)鐘初始化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ù)中,這個(gè)函數(shù)是檢測墨水屏的狀態(tài)的Check Busy,檢測是通過讀取PIN10的電平,引腳在初始化時(shí)配置為輸入,并且默認(rèn)拉低。按技術(shù)說明設(shè)備初始化如果正確,那么在會(huì)在檢測ReadBusy時(shí)應(yīng)該輸出高電平,輸出高電平后才能進(jìn)行下一步,如果沒有輸出則代表這步操作沒有完成,需要等待并且繼續(xù)查詢該狀態(tài)直到通過。從初始化到顯示的操作流程如圖16所示。

圖16 GDEW027W3操作程序流程圖
因?yàn)檫@個(gè)屏在STM32的主控芯片下驗(yàn)證通過,其主要的代碼也是在STM32上運(yùn)行正確的,因此這次主要的調(diào)試就是檢查硬件的連接以及相關(guān)參數(shù)的修改,確定適配部分的正確。通過經(jīng)過n次的修改調(diào)試,硬件連接檢查,最終在串口助手得到了全部正確的輸出,輸出調(diào)試信息如圖17所示,這也意味著CSM32RV20驅(qū)動(dòng)SPI串口系列屏驗(yàn)證通過。

圖17 板上運(yùn)行輸出完整的正確信息
墨水屏上也顯示出了正確的內(nèi)容,如圖18,圖19所示。

圖18 墨水屏上的顯示輸出

圖19 墨水屏上的顯示放大欣賞
墨水屏應(yīng)用測試的主要性能測試指標(biāo)有:正常操作時(shí)的整體功耗,待機(jī)功耗,以及SPI通訊速度,墨水屏刷新速度。
通過反復(fù)運(yùn)行測試,得到數(shù)據(jù)如下:
32Mhz主頻設(shè)置下,3.3V 電壓CSM32RV20驅(qū)動(dòng)墨水屏顯示最大電流為8.6mA。
待機(jī)時(shí),墨水屏可以保持顯示,主要待機(jī)電流為CSM32RV20待機(jī)電流,測試為 20uA左右。
SPI穩(wěn)定刷寫墨水屏,速率在0.5Mbps
墨水屏刷寫速度,擦除在2秒左右,寫入顯示在0.5秒。
經(jīng)過對CSM32RV20操作墨水屏顯示的應(yīng)用測試,此款芯片上手比較容易,開發(fā)難度不大,在熟悉STM32開發(fā)的小伙伴們轉(zhuǎn)到這款芯片時(shí)非常容易,開發(fā)編譯還是非常方便的,編譯速度也很快。此款芯片功耗較低能夠較好的適用在電池供電等有嚴(yán)苛的電源限制的嵌入式環(huán)境下。從正常工作模式到待機(jī)模式轉(zhuǎn)換很快,也很穩(wěn)定。對于SPI速率問題,測試數(shù)據(jù)表現(xiàn)較低,對比在STM32下有2M以上的表現(xiàn),分析主要原因可能由于,開發(fā)板連接墨水屏用的線較長,有20cm左右,因此干擾增大,造成較高速度通訊時(shí)失敗率較高,不得不降低通訊速度才能穩(wěn)定的運(yùn)行。另外連接線插接不夠穩(wěn)固,也造成信號不夠穩(wěn)定,測試發(fā)現(xiàn)墨水屏驅(qū)動(dòng)板電壓經(jīng)常只有1.2v,這是因?yàn)檫B線存在不穩(wěn)固,線路上有較大電阻。經(jīng)過反復(fù)插接壓緊才達(dá)到3.3v的電壓,因此建議采用布線打測試板的方式來進(jìn)行驗(yàn)證,這樣盡可能排除測試環(huán)境造成的影響。
因此此次是測試,直接采用制作好的圖片數(shù)據(jù),在實(shí)際應(yīng)用中需要實(shí)時(shí)繪制圖片的內(nèi)容,以及對外通訊,因此需要考慮再加入Si24R1這樣的無線通訊芯片,而 CSM32RV20已帶有對該通訊芯片的例程,因此加入無線通訊也是比較容易的事了。
最后在此次測試時(shí),恰逢虎年春節(jié),順手刷一張祝福圖送給大家。




聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
南京中科微
+關(guān)注
關(guān)注
0文章
60瀏覽量
1031 -
CSM32RV20
+關(guān)注
關(guān)注
0文章
40瀏覽量
315
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
瑞芯微rv1106開發(fā)資料 rv1106數(shù)據(jù)手冊 rv1106詳細(xì)說明書免費(fèi)下載
瑞芯微rv1106開發(fā)資料 rv1106數(shù)據(jù)手冊 rv1106詳細(xì)說明書免費(fèi)下載

基于RV1126開發(fā)板實(shí)現(xiàn)人臉檢測方案
在RV1126開發(fā)板上實(shí)現(xiàn)人臉檢測:在圖像中找出人臉,以及每張人臉的landmarks位置。
方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,
算法代碼負(fù)責(zé)人臉檢測功能。

基于RV1126開發(fā)板實(shí)現(xiàn)人臉檢測方案
在RV1126開發(fā)板上實(shí)現(xiàn)人臉檢測:在圖像中找出人臉,以及每張人臉的landmarks位置。
方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,
算法代碼負(fù)責(zé)人臉檢測功能。

基于RV1126開發(fā)板實(shí)現(xiàn)人臉檢測方案
在RV1126開發(fā)板上實(shí)現(xiàn)人臉檢測:在圖像中找出人臉,以及每張人臉的landmarks位置。
方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,
算法代碼負(fù)責(zé)人臉檢測功能。

基于RV1126開發(fā)板網(wǎng)絡(luò)配置方法
RV1126開發(fā)板網(wǎng)絡(luò)硬件資源有:以太網(wǎng)、WiFi,采用的網(wǎng)絡(luò)配置方案是:Netplan。
? ? ? ?Netplan是一個(gè)用于配置Linux網(wǎng)絡(luò)的簡單工具。用戶只需要一個(gè)yaml格式的文件去

有獎(jiǎng)丨米爾 瑞芯微YR3562開發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3562應(yīng)用處理器的MYD-YR3562開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了3塊價(jià)值599元的MYD-YR3562

用AI人臉識別開發(fā)板BW21-CBV-Kit驅(qū)動(dòng)墨水屏
試著用BW21-CBV-Kit點(diǎn)亮2.9寸墨水屏,開發(fā)板例程非常豐富,在arduino上開發(fā)的話上手超級容易。

Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器
Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器

迅為RK3568開發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)
迅為RK3568開發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)

瑞芯微主板/開發(fā)板Linux系統(tǒng)播放音頻方法,觸覺智能RK3562開發(fā)板演示
本文介紹瑞芯微方案主板/開發(fā)板Linux系統(tǒng)播放音頻的方法,觸覺智能RK3562開發(fā)板演示,通用RK3566、RK3568、RK3588等

追加名額丨米爾瑞芯微RK3576開發(fā)板有獎(jiǎng)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動(dòng)加碼啦~~米爾追加了2塊價(jià)值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

有獎(jiǎng)丨米爾 瑞芯微RK3576開發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了7塊價(jià)值849元的MYD-LR3576

評論