介紹
該方案的主控型號為RL78/G14系列的R5F104LJ,64pin。其Flash ROM 256k,RAM 24k,Data Flash 8k。主要用到的資源為Data Flash、串口以及高速片上振蕩器。-20~85℃范圍內(nèi)高速片上振蕩器的誤差為±1%。
RL78/G14微控制器平衡了業(yè)界最低水平的消費電流(CPU:66 μA/MHz,待機(STOP):240 nA)和51.2 DMIPS(32 MHz)的高計算性能。內(nèi)置的高功能定時器支持使用三相互補的PWM輸出的三相電機控制。它們有一個片上振蕩器、數(shù)據(jù)閃存、A/D和D/A轉(zhuǎn)換器、比較器等。內(nèi)置的安全功能(檢測硬件非法操作的功能)能夠支持家用電器安全標準(IEC/UL 60730)。這些微控制器具有廣泛的30至100引腳陣容和高達512KB的片上閃存,可用于各種應用,如電機控制和消費及工業(yè)設備。
主要內(nèi)容
一、實現(xiàn)目標示意

1將兩塊開發(fā)板及上位機如上圖示意,通過串口連接。
2串口助手發(fā)送信息給A板(消息接收協(xié)議自定)。
1)A板內(nèi)未保存序號,則接受當前序號,保存到dataflash中,然后返回A板保存的序號發(fā)給串口助手;
2)A板保存了序號,則回復電腦自己的序號,并將接收到的序號發(fā)送給B板,B板接收序號;
3)如果B板本身無序號,則保存接收到的序號,然后將B板的序號回復給A板,A板再將接收到的B板序號回復給上位機;
4)如果B板本身有序號,則不處理當前序號,并將B板本身的序號回復給A板,A板再將接收到B板的序號回復給上位機。
二、軟件配置
開發(fā)環(huán)境:CS+ for CC
芯片型號:R5F104LJ
1. 工程配置
1)啟動CS+ for CC,新建工程
按照下圖箭頭指向的順序所示,完成工程的新建。

2)雙擊“Clock Generator”,進行時鐘配置
【1】Pin assignment
按照下圖箭頭指向的順序所示,設置PIOR register,默認:PIOR = 0x00 (設置外設對應的IO重定向寄存器)。

【2】Clock setting
按照下圖箭頭指向的順序所示,使用內(nèi)部振蕩器為32MHz,其余不變。

【3】On-chip debug setting
按照下圖箭頭指向的順序所示,選擇使用在線調(diào)試,具體根據(jù)個人所用的仿真器進行設置,此處我用的是E2 lite(黃色方框內(nèi))。

3)雙擊“Serial”,進行串行通訊接口配置
【1】SAU0→Channel0/2
按照下圖箭頭指向的順序所示,設置[SAU0],點擊[Channel 0]選項卡,設置[UART0]; 選擇“Transmit/receive function“;點擊[Channel 2]選項卡,設置[UART1]; 選擇“Transmit/receive function“。

【2】SAU0→UART0/1
A.按照下圖箭頭指向的順序所示,設置接收。分別設置“數(shù)據(jù)長度”,“數(shù)據(jù)傳輸方向”,“校驗位”,“波特率”,此處皆為默認設置,后續(xù)可根據(jù)實際情況更改。
注意:此處不取消接收錯誤callback函數(shù)設置(黃色方框內(nèi))。

B.按照下圖箭頭指向的順序所示,設置發(fā)送。分別設置“數(shù)據(jù)長度”,“數(shù)據(jù)傳輸方向”,“校驗位”,“波特率”,此處皆為默認設置,后續(xù)可根據(jù)實際情況更改。

由于任務是兩塊板子之間的連接,所以我們還要照葫蘆畫瓢地再配置一下UART1。
4)點擊“Generate Code”,生成代碼。

根據(jù)設置生成的代碼如黃方框所示。
2. 添加庫
Data flash,直譯數(shù)據(jù)閃存,其實就是單片機留給用戶存儲自己數(shù)據(jù)的地方,類似于有些51單片機內(nèi)部的EEPROM,在CS+中也是可以直接配置生成庫函數(shù)的,但是不能直接使用!需要安裝FDL庫。
1)新建一個新的文件夾,命名為lib用來存放庫文件
右擊File→Add→Add New Category,將之前下載的庫文件加入其中,同理將EE.c和EE.h也加入file中,如下圖所示。

2)雙擊“CC-RL(Build Tool)”,在“Common Options”中進行一些更改。

【1】將庫文件加入其中后,我們可以對黃色方框內(nèi)進行查看,看庫路徑是否正確。
【2】將紅色方框內(nèi)的優(yōu)化選項更改一下。
3)“CC-RL(Build Tool)”中“Compile Options”
按照下圖箭頭指向的順序所示,設置”Memory Model”、”C Language”

4)“CC-RL(Build Tool)”中“Link Options”
按照下圖箭頭指向的順序所示,設置“Section”、“Others”。

3. 代碼調(diào)用及編寫
1)基于代碼生成工具生成的程序框架及函數(shù),實現(xiàn)UART通訊。
此處有一點需要注意:在r_main.c中增加“#include "EE.h" ”(即黃色方框內(nèi)容),可以較為方便的調(diào)用定義及申明。

2)啟動串口
修改《r_main.c》文件,在主程序中增加R_UART1_Start();R_UART0_Start();。

3)串口發(fā)送代碼編寫

4)判斷發(fā)送的信息是否符合通信協(xié)議

三、運行現(xiàn)象
1)代碼編譯成功后運行,點擊view→memory→memory1

在“Move when Stop”后面方框內(nèi)輸入0xf1000,點擊“move”,跳轉(zhuǎn)到對應位置。

2)如果我們發(fā)現(xiàn)此位置有值,我們需要用RFP先擦除。
3)再次運行程序,查看0xf1000處是否為空白(FF),空白即可開始實驗。

4)打開串口工具,打開串口,在發(fā)送端輸入c0 41 0d 0a程序運行后點擊發(fā)送。黃色方框內(nèi)不要忘記勾上。

5)實驗現(xiàn)象
【1】發(fā)送41,A板處于空閑狀態(tài),A板接收并發(fā)送41給電腦。

【2】在memory中查看,A板0xf1000處已被寫入41。

【3】發(fā)送42,A板已有內(nèi)存值且兩值不等,A板將自己的內(nèi)存值41發(fā)給電腦并把42發(fā)送給B板,B板空閑接收42,并發(fā)送42返回值。(如果發(fā)送的值與A板內(nèi)存儲的相同,那么就不會繼續(xù)發(fā)送到B板。)

【4】發(fā)送43,A板已有內(nèi)存值且兩值不等,A板將自己的內(nèi)存值41發(fā)給電腦并把43發(fā)送給B板,B板已有內(nèi)存值且兩值不等,B板返回42給A板,將43丟給下一塊板。

審核編輯:湯梓紅
-
微控制器
+關(guān)注
關(guān)注
48文章
8385瀏覽量
164642 -
振蕩器
+關(guān)注
關(guān)注
28文章
4172瀏覽量
142912 -
瑞薩
+關(guān)注
關(guān)注
37文章
22482瀏覽量
90898 -
定時器
+關(guān)注
關(guān)注
23文章
3368瀏覽量
123692 -
信息管理系統(tǒng)
+關(guān)注
關(guān)注
0文章
31瀏覽量
10380
發(fā)布評論請先 登錄
【視頻】瑞薩電子RL78/G14 MCU直流無刷電動工具解決方案
RL78/G14快速原型開發(fā)板的關(guān)鍵特性有哪些?
瑞薩電子發(fā)表RL78/G14系列即時控制微控制器
RL78/G14硬件的詳細中文用戶手冊資料免費下載
基于瑞薩RL78/G14系列信息管理系統(tǒng)
評論