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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3)串口發送代碼編寫

4)判斷發送的信息是否符合通信協議

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

在“Move when Stop”后面方框內輸入0xf1000,點擊“move”,跳轉到對應位置。

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

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

5)實驗現象
【1】發送41,A板處于空閑狀態,A板接收并發送41給電腦。

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

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

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

審核編輯:湯梓紅
-
微控制器
+關注
關注
48文章
8375瀏覽量
164537 -
振蕩器
+關注
關注
28文章
4172瀏覽量
142873 -
瑞薩
+關注
關注
37文章
22481瀏覽量
90848 -
定時器
+關注
關注
23文章
3368瀏覽量
123567 -
信息管理系統
+關注
關注
0文章
31瀏覽量
10380
發布評論請先 登錄
基于瑞薩RL78/G14系列信息管理系統
評論