國(guó)產(chǎn)單片機(jī)近年的發(fā)展可謂是如雨后春筍、百花齊放。第一次看到國(guó)產(chǎn)的MCU采用RISC-V的,那是在瀏覽沁恒官方網(wǎng)站的時(shí)候,于是跟風(fēng)申請(qǐng)個(gè)沁恒開發(fā)板來(lái)玩一玩。 CH32V103評(píng)估板板子做工都挺不錯(cuò)的,下面開始玩起吧。
這款板子的型號(hào)是CH32V103C-R1-1V1,板載的芯片是CH32V103C8T6。 一開始還認(rèn)為那個(gè)USB typeC可以用來(lái)下載程序的,看了《CH32V103評(píng)估板說(shuō)明書》,才知道這個(gè)接口只是用來(lái)USB主從設(shè)備接口的,它與USB_A是并聯(lián)的,都是連接PA11(D-)PA12(D+),USB下載需要接PB6(D-)PB7(D+)。所以想用USB燒錄,那不如用串口方式下載,串口方式還可以隨時(shí)打印調(diào)試信息,當(dāng)然,最方便的下載是用WCH Link下載器了。 編譯環(huán)境MounRiver Studio V1.84是早就已經(jīng)安裝到電腦中的。21ic中有一篇關(guān)于CH32V103C應(yīng)用開發(fā)的專題文章《RISC-V MCU應(yīng)用開發(fā)系列教程之CH32V103 》,這個(gè)正好隨手拈來(lái),于是選擇了 硬件I2C讀寫EEPROM例程試試。把壓縮解壓后,用MounRiver Studio打開、編譯,編譯速度還不錯(cuò)的! 主程序很簡(jiǎn)單: int main(void)
{
u8 data[SIZE];
Delay_Init();
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
AT24CXX_Init();
printf("Start Write 24Cxx....\r\n");
AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE); //寫入數(shù)據(jù)
printf("24Cxx Write Sucess!\r\n");
Delay_Ms(500);
printf("Start Read 24Cxx....\r\n");
AT24CXX_Read(100,data,SIZE); //讀取數(shù)據(jù)
printf("The Data Readed Is: \r\n");
printf("%s\r\n", data); //打印輸出數(shù)據(jù)
while(1);
} WCH Link下載器還沒有到手,暫時(shí)用串口下載吧。串口下載有點(diǎn)難,流程如下 : 1、BOOT0通過(guò)杜邦線接入3.3V電源。
2、打開WCHISPTool 工具,選擇相應(yīng)串口下載方式,選擇下載固件,勾選芯片配置,點(diǎn)擊下載。
3、BOOT0接地,重新上電,即可運(yùn)行用戶代碼。 用串口查看打印信息,怎么只有前兩行?
而正常應(yīng)該打印:
后來(lái)通過(guò)查看電路原理圖,才知道犯的是低級(jí)錯(cuò)誤:板載24C的SDA 和SCL引腳還沒有接入單片機(jī)的引腳。通過(guò)查看數(shù)據(jù)手冊(cè)《CH32V103DS0》,將24C的SDA通過(guò)杜邦線接到PB11,24C的SCL接到PB10,結(jié)果完全正常。 在測(cè)試的過(guò)程,有幾點(diǎn)想說(shuō)一下: 1、沁恒單片機(jī)的下載機(jī)制獨(dú)特,無(wú)論是串口下載還是USB下載,都得通過(guò)硬件方法讓芯片從BOOT運(yùn)行。以前玩CH552時(shí),總想從軟件方式來(lái)讓芯片自動(dòng)進(jìn)入燒錄模式,至今未果。自動(dòng)下載模式有待以后再次研究。 2、燒錄工具WCHISPTool如果能添加串口工具,會(huì)使用戶調(diào)試更加方便些。 3、MounRiver Studio V1.84與Keil MDK使用方法基本相同,用戶轉(zhuǎn)型毫無(wú)障礙,一來(lái)支持中文顯示,二來(lái)新建工程隨即得到工程模板,方便快捷。也像VSCode一樣支持函數(shù)跳轉(zhuǎn),閱讀代碼方便。沁恒的例程中有中文注解,咱不懂英文的中國(guó)人覺得蠻好的。 4、CH32V103與CH32F103,可以說(shuō)是大同小異,代碼也大同小異,所以從xx32F移植到CH32V,應(yīng)該不會(huì)有大的難度。
|