查看: 4525|回復: 0
打印 上一主題 下一主題

STM32 基于Nucleo板CAN總線(xiàn)的建立

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2016-10-10 13:44:13 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

前言

STM32 NUCLEO開(kāi)發(fā)平臺是ST最新發(fā)布的易用性好、可擴展性佳的低成本平臺。開(kāi)發(fā)平臺具有mbed功能支持Arduino接口,同時(shí)還提供ST Morpho擴展排針,可連接微控制器的所有周邊外設,可以利用Arduino巨大生態(tài)系統優(yōu)勢,便于快速實(shí)現STM32學(xué)習和評估!這兒我們評估它的CAN外設功能。

一、環(huán)境搭建

1、軟件:

STM32Cube\Repository\STM32Cube_FW_F1_V1.3.0\Projects\STM3210E_EVAL\Examples\CAN\CAN_Networking\EWARM

2、硬件:

NUCLEO-F103RB(STM32F103RBT6)

3、原理圖如下:

上面原理圖是針對 SN65HVD230 的,因為 PB8 是 CAN_TX,是 MCU端的發(fā)送,需要到 CAN transfer 的輸入引腳,即引腳 D(Driver input); 因為 PB9 是 CAN_RX,是 MCU 端的接收,是 CANtransfer 的輸出引腳,即引腳 R(Recv output);

二、Porting

由于參考的是STM3210E_EVAL的示例程序,在用到STM32F103RBT6的Nucleo板子上的時(shí)候,需要做一些porting的工作。

1、系統時(shí)鐘

在10E的EVAL板子上,使用的是HSE,而Nucelo上默認的是沒(méi)有焊接HSE,所以使用到的是HIS;利用CubeMX生成代碼:系統時(shí)鐘為36MHz;

供給CAN外設的時(shí)鐘:是APB1的時(shí)鐘18MHz;

2、CAN的接收/發(fā)送引腳

仍然可以都為PB8 (TX) 和PB9(RX),不需要改變;

3、CAN的波特率

(自己想設置的是500K)

所以,理論上,根據計算公式,

NominalBitTime = 1 × tq + tBS1 + tBS2 = (TS1[3:0] + 1+ TS2[2:0] + 1 + 1)* (BRP[9:0] + 1) x tPCLK;

所以,NominalBitTime = 9* 4* tPCLK; =Freq(APB1)/36 = 18/36 = 0.5MHz = 500K;

4 、 User部分

程序中設計到:

在 10E-EVAL 板子上,用到的是 PG.08,而在 nucleo 上使用到的是 PC.13


至此,移植好了;

三、全速運行

1、按下 USERButton,會(huì )發(fā)出 CAN 報文,CAN 的 PC 端軟件能夠收到。

2、CAN 的 PC 端軟件發(fā)送報文,軟件中的中斷函數也會(huì )進(jìn)入中斷。

說(shuō)明,CAN 的發(fā)送和接收這一基本的操作已經(jīng)完成了。對于 CAN 的復雜的運用特點(diǎn),可以在該基礎上進(jìn)一步衍生。


附錄:

1、針對現有的 CAN 的總線(xiàn)協(xié)議:在數據區域只有固定的 8Byte;也就是說(shuō)一個(gè) CAN 報文發(fā)送的數據只有 8 個(gè),我們的單片機的寄存器也只提供了 8 個(gè)寄存器,符合當前的 CAN 的協(xié)議;如果客戶(hù)想發(fā)送多個(gè)>8 的數據,需要在其上層協(xié)議中,用軟件去多次發(fā)送。也許在下一代的 CAN 總線(xiàn)中,會(huì )對這一特點(diǎn)進(jìn)行改變。

2、CanHandle.Init.NART= ENABLE 的說(shuō)明; 在基于"STM32Cube_FW_F4_V1.10.0\Projects\STM324x9I_EVAL\Examples\CAN\CAN_Networking",  如果只用一塊STM32F429-EVAL 調用HAL_CAN_Transmit()的發(fā)送函數,會(huì )發(fā)現 CAN Controller 會(huì )不斷的發(fā)送數據, 這是因為在我們提供的示例中,是需要兩塊板子互聯(lián)的,在 CAN 協(xié)議中,如果消息沒(méi)有被正確的接收,它將會(huì ) be retransmitted infinitely by the transmitter until it will be acknowledgedby the receiver ,而正我們的環(huán)境中,只有一塊板子,而沒(méi)有 receiver。


重要通知 - 請仔細閱讀
意法半導體公司及其子公司(“ST”)保留隨時(shí)對ST 產(chǎn)品和/ 或本文檔進(jìn)行變更、更正、增強、修改和改進(jìn)的權利,恕不另行通知。買(mǎi)方訂貨之前應獲取關(guān)于ST 產(chǎn)品的最新信息。ST 產(chǎn)品的銷(xiāo)售依照訂單確認時(shí)的相關(guān)ST 銷(xiāo)售條款。
買(mǎi)方自行負責對ST 產(chǎn)品的選擇和使用, ST 概不承擔與應用協(xié)助或買(mǎi)方產(chǎn)品設計相關(guān)的任何責任。
ST 不對任何知識產(chǎn)權進(jìn)行任何明示或默示的授權或許可。
轉售的ST 產(chǎn)品如有不同于此處提供的信息的規定,將導致ST 針對該產(chǎn)品授予的任何保證失效。
ST 和ST 徽標是ST 的商標。所有其他產(chǎn)品或服務(wù)名稱(chēng)均為其各自所有者的財產(chǎn)。

本文檔中的信息取代本文檔所有早期版本中提供的信息。




文章來(lái)源:微信公眾號  融創(chuàng )芯城(一站式電子元器件、PCB、PCBA購買(mǎi)服務(wù)平臺,項目眾包平臺)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页