本文來源電子發(fā)燒友社區(qū),作者:ALSET, 帖子地址:https://bbs.elecfans.com/jishu_2248799_1_1.html
芯片概述
應(yīng)用測(cè)試描述
主要軟件實(shí)現(xiàn)
相關(guān)性能測(cè)試結(jié)果
應(yīng)用評(píng)測(cè)總結(jié)
芯片概述
CSM32RV20 是一顆基于RISC-V 指令的32位國(guó)產(chǎn)低功耗芯片,芯片內(nèi)置了一個(gè)4k字節(jié)的SRAM。它可以以字節(jié)、半字(16位)或全字(32位)方式訪問,支持4種低功耗模式,最低功耗小于1uA。可以按低電源消耗、啟動(dòng)時(shí)間和可用的喚醒源的組合方式,來選取一個(gè)最佳的方案來選定一個(gè)低功耗模式,實(shí)現(xiàn)不同場(chǎng)景下的低功耗應(yīng)用。非常適合物聯(lián)網(wǎng)環(huán)境下的針對(duì)各種場(chǎng)景的應(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)置低壓檢測(cè)模塊;
● 最多支持 30 個(gè) GPIO 和 16 個(gè)外部中斷;
● 支持 4 種低功耗模式,最低功耗小于 1uA(看門狗工作);
● 內(nèi)置 32 位真隨機(jī)數(shù)發(fā)生器;
● 支持串口和無線 ISP 在線升級(jí)(無線 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的芯片為測(cè)試對(duì)象,該芯片所有外設(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)建測(cè)試工程
編譯得到elf文件后,通過CSM提供的下載工具 CSMISP 進(jìn)行下載。安裝好CH34N窗口驅(qū)動(dòng)和CSMISP軟件。安裝完CSMISP啟動(dòng)后如圖7所示。
圖7 CSMISP PC下載調(diào)試工具
安裝完CSM_ISP后,設(shè)置好MCU型號(hào),串口號(hào)和通訊速度即可連接到開發(fā)板??梢酝ㄟ^檢測(cè)MCU型號(hào)來檢測(cè)與開發(fā)板是否連接正常,點(diǎn)擊檢測(cè)MCU型號(hào)并且按開發(fā)板復(fù)位鍵,后會(huì)在下載信息窗口出現(xiàn)如圖8所示,表示已和開發(fā)板連接成功。
圖8 CSMISP 檢測(cè)MCU型號(hào)成功
在確認(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)建的測(cè)試工程是一個(gè)點(diǎn)亮 LED的代碼,程序在串口助手打印出信息,開發(fā)板上可以見到LED閃爍,如圖11所示。到此整個(gè)開發(fā)、編譯、下載和串口調(diào)試過建立程完成。
圖11 按reset鍵程序在板子上運(yùn)行成功
此次測(cè)試目標(biāo),我們根據(jù)次芯片低功耗的特點(diǎn),搭配電子墨水顯示屏,使用紐扣電池或鋰電充電電池的應(yīng)用場(chǎng)景作為應(yīng)用測(cè)試目標(biāo)。電子墨水屏具有掉電保持顯示內(nèi)容,驅(qū)動(dòng)功耗低等優(yōu)點(diǎn),方案可用于物聯(lián)網(wǎng)現(xiàn)場(chǎng)數(shù)據(jù)采集顯示、電子價(jià)簽、智能工牌等應(yīng)用。此次配合測(cè)試使用的是GDEW027W3一款2.7寸黑白兩色的電紙屏, 屏幕分辨率為264x176,像素點(diǎn)為0.2毫米,屏幕顯示對(duì)比度高,刷新速度快,溫度適應(yīng)范圍寬,體積也很小巧。
測(cè)試硬件連接
該墨水屏采用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主要是對(duì)SPI操作的封裝,也是移植不同MCU時(shí)需要修改的代碼。eink_edp_gdew027w3.c則是這個(gè)屏的操作函數(shù)接口,eink27_image.c是由圖像抽取工具制作的測(cè)試圖像數(shù)據(jù)。如圖15所示。
圖15 CSM32RV20墨水屏軟件工程
在墨水屏對(duì)CSM32RV20移植中,對(duì)照上面的硬件連接,各引腳IO對(duì)應(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ù)的功能非常簡(jiǎn)單的適配開發(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ù)測(cè)試驗(yàn)證,對(duì)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í)際測(cè)試驗(yàn)證傳入不同的參數(shù)來調(diào)試相關(guān)參數(shù)。
在main.c 中則是直接調(diào)用封裝后的函數(shù),完成SPI對(duì)墨水屏操作的測(cè)試。測(cè)試?yán)臃浅:?jiǎn)單,相關(guān)的函數(shù)已以在代碼中給出注釋,非常簡(jiǎn)單的十幾行代碼完成墨水屏的操作測(cè)試。
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ù)是檢測(cè)墨水屏的狀態(tài)的Check Busy,檢測(cè)是通過讀取PIN10的電平,引腳在初始化時(shí)配置為輸入,并且默認(rèn)拉低。按技術(shù)說明設(shè)備初始化如果正確,那么在會(huì)在檢測(cè)ReadBusy時(shí)應(yīng)該輸出高電平,輸出高電平后才能進(jìn)行下一步,如果沒有輸出則代表這步操作沒有完成,需要等待并且繼續(xù)查詢?cè)摖顟B(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)用測(cè)試的主要性能測(cè)試指標(biāo)有:正常操作時(shí)的整體功耗,待機(jī)功耗,以及SPI通訊速度,墨水屏刷新速度。
通過反復(fù)運(yùn)行測(cè)試,得到數(shù)據(jù)如下:
32Mhz主頻設(shè)置下,3.3V 電壓CSM32RV20驅(qū)動(dòng)墨水屏顯示最大電流為8.6mA。
待機(jī)時(shí),墨水屏可以保持顯示,主要待機(jī)電流為CSM32RV20待機(jī)電流,測(cè)試為 20uA左右。
SPI穩(wěn)定刷寫墨水屏,速率在0.5Mbps
墨水屏刷寫速度,擦除在2秒左右,寫入顯示在0.5秒。
經(jīng)過對(duì)CSM32RV20操作墨水屏顯示的應(yīng)用測(cè)試,此款芯片上手比較容易,開發(fā)難度不大,在熟悉STM32開發(fā)的小伙伴們轉(zhuǎn)到這款芯片時(shí)非常容易,開發(fā)編譯還是非常方便的,編譯速度也很快。此款芯片功耗較低能夠較好的適用在電池供電等有嚴(yán)苛的電源限制的嵌入式環(huán)境下。從正常工作模式到待機(jī)模式轉(zhuǎn)換很快,也很穩(wěn)定。對(duì)于SPI速率問題,測(cè)試數(shù)據(jù)表現(xiàn)較低,對(duì)比在STM32下有2M以上的表現(xiàn),分析主要原因可能由于,開發(fā)板連接墨水屏用的線較長(zhǎng),有20cm左右,因此干擾增大,造成較高速度通訊時(shí)失敗率較高,不得不降低通訊速度才能穩(wěn)定的運(yùn)行。另外連接線插接不夠穩(wěn)固,也造成信號(hào)不夠穩(wěn)定,測(cè)試發(fā)現(xiàn)墨水屏驅(qū)動(dòng)板電壓經(jīng)常只有1.2v,這是因?yàn)檫B線存在不穩(wěn)固,線路上有較大電阻。經(jīng)過反復(fù)插接壓緊才達(dá)到3.3v的電壓,因此建議采用布線打測(cè)試板的方式來進(jìn)行驗(yàn)證,這樣盡可能排除測(cè)試環(huán)境造成的影響。
因此此次是測(cè)試,直接采用制作好的圖片數(shù)據(jù),在實(shí)際應(yīng)用中需要實(shí)時(shí)繪制圖片的內(nèi)容,以及對(duì)外通訊,因此需要考慮再加入Si24R1這樣的無線通訊芯片,而 CSM32RV20已帶有對(duì)該通訊芯片的例程,因此加入無線通訊也是比較容易的事了。
最后在此次測(cè)試時(shí),恰逢虎年春節(jié),順手刷一張祝福圖送給大家。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
南京中科微
+關(guān)注
關(guān)注
0文章
60瀏覽量
731 -
CSM32RV20
+關(guān)注
關(guān)注
0文章
40瀏覽量
204
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
瑞芯微RK3568開發(fā)板Linux編譯報(bào)錯(cuò)404怎么辦?觸覺智能教你輕松解決
本文介紹瑞芯微RK3568主板/開發(fā)板SDK編譯流程和編譯報(bào)錯(cuò)404的解決方法,使用觸覺智能EVB3568鴻蒙開發(fā)板演示,具有豐富的視頻輸入輸出接口(HDMI/eDP/MIPI/LVDS) 與多種高速接口(千兆網(wǎng)口/PCIe/S
南京中科微Ci522芯片:智能門鎖應(yīng)用方案推薦
南京中科微這顆Ci522芯片是一個(gè)高度集成的,工作在13.56MHz的非接觸式讀寫器芯片,閱讀器支持ISO/IEC 14443A。其特有的ACD功能(超低功耗自動(dòng)載波偵測(cè)),可以將智能門鎖的功耗降到
鴻蒙OpenHarmony開發(fā)板解析:【芯片解決方案】
芯片解決方案是指基于某款開發(fā)板的完整解決方案,包含驅(qū)動(dòng)、設(shè)備側(cè)接口適配、開發(fā)板sdk等。
香橙派發(fā)布首款RISC-V開發(fā)板OrangePi RV
2024年3月,香橙派在全球開發(fā)者會(huì)議上發(fā)布了其首款基于RISC-V開發(fā)的OrangePi RV主板。這款開發(fā)板擁有四核RISC-V U74與S7協(xié)處理器,配備 2MB L2緩存。同時(shí)
fpga開發(fā)板是什么?fpga開發(fā)板有哪些?
FPGA開發(fā)板是一種基于FPGA(現(xiàn)場(chǎng)可編程門陣列)技術(shù)的開發(fā)平臺(tái),它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實(shí)現(xiàn)各種數(shù)字電路和邏輯功能。FPGA開發(fā)板通常包括FPGA芯片、時(shí)鐘模塊、電源模塊、輸入輸出接口等組
fpga開發(fā)板與linux開發(fā)板區(qū)別
FPGA開發(fā)板與Linux開發(fā)板是兩種不同的硬件開發(fā)平臺(tái),各自具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。在以下的文章中,我將詳細(xì)介紹FPGA開發(fā)板和Linux開發(fā)板
rv1126和rk3568對(duì)比
視頻編解碼。而RK3568開發(fā)板創(chuàng)龍科技旗下工業(yè)開發(fā)板,基于瑞芯微RK3568J/RK3568B2處理器設(shè)計(jì),四核ARM Cortex-A55,每核主頻高達(dá)1.8GHz/2.0GHz。 rv
大聯(lián)大推出基于中科藍(lán)訊產(chǎn)品的藍(lán)牙音箱開發(fā)板方案
2024年1月9日,致力于亞太地區(qū)市場(chǎng)的領(lǐng)先半導(dǎo)體元器件分銷商---大聯(lián)大控股宣布其旗下世平推出基于中科藍(lán)訊(Bluetrum)AB5301A的藍(lán)牙音箱開發(fā)板方案。
【新品體驗(yàn)】國(guó)產(chǎn)FPGA+OMAPL138開發(fā)板免費(fèi)試用
本開發(fā)板基于德州儀器的OMAP-L138(定點(diǎn)/浮點(diǎn)DSP C674x+ARM9)與國(guó)產(chǎn)中科億海微FPGA EO6HL45LL的《DSP+ARM+FPGA三核評(píng)估套件》,通過EMIF、SPI
發(fā)表于 12-07 10:26
基于瑞芯微 RV1103 芯片,微型 Linux 開發(fā)板LuckFox Pico Plus開發(fā)實(shí)踐
、UART、SPI、I2C、USB 等,便于快速開發(fā)和調(diào)試
1.開發(fā)板初體驗(yàn)
LuckFox Pico Plus是一款基于瑞芯微RV110
發(fā)表于 11-30 14:10
評(píng)論