低成本實現USB-CAN收發器
方案:使用UART+CAN實現CAN數據收發
一、器件選擇
1、串口
CH340N特征如下:
串口波特率支持50~2Mbps
支持5V與3.3V串口電平
封裝SOP-8
內置晶振,外圍精簡
2、主控
主控只要求有UART和CAN即可
圖
所以最終選擇了STM32F042F4 其封裝為TSSOP20
3、CAN PHY
選擇了TJA1050
4、電源
電源主要為5V降3.3V,所以選擇AMS1117
二、原理圖
image
三、PCB
image
四、程序
1、庫的選擇
STM32程序編寫主要分兩種形式:庫和寄存器。
HAL庫:
到今天,STM32庫的主流為HAL庫,其主要特點為方便移植開發,芯片間兼容性高。但是也有很多缺點:
BUG多
運行效率低
標準庫:
HAL庫之前就是標準庫,這個庫雖然軟件功能不多,但是硬件功能BUG少,相對于寄存器編寫已經很好了。
所以最終選擇標準庫
在有中斷、速度要求的情況下推薦選擇標準庫或寄存器。
2、數據處理
UART中斷:
接收上位機的消息,并將數據通過CAN發出去
進中斷一定要清中斷標志位!!!
CAN數據:
經測試,在中斷中接受數據,并通過UART發送出去,此方法在數據量比較低的情況下可以,但數據量高的情況下就不行了!!!!!
所以采用在While循環中接受CAN消息,然后在通過串口發送出去。
if(CAN_MessagePending(CAN, CAN_FIFO0) > 0)
{
LedSta = !LedSta;
CAN_Receive(CAN, CAN_FIFO0, &RxMessage);
res_data_cnt = 0;
if(RxMessage.IDE)
id = RxMessage.ExtId;
else
id = RxMessage.StdId;
dlc = RxMessage.DLC;
if(RxMessage.IDE)
ide = 0;
else
ide = 0x1;
if(RxMessage.RTR)
rtr = 0;
else
rtr = 0x2;
res_data_buf[res_data_cnt++] = ide | rtr;
res_data_buf[res_data_cnt++] = id >> 24;
res_data_buf[res_data_cnt++] = id >> 16;
res_data_buf[res_data_cnt++] = id >> 8;
res_data_buf[res_data_cnt++] = id;
res_data_buf[res_data_cnt++] = dlc;
memcpy(res_data_buf + res_data_cnt, RxMessage.Data, 8);
res_data_cnt += 8;
send_cmd_data(UART_DATA_CMD_RECV_CAN_DATA, res_data_buf, res_data_cnt);
}
待開發功能:
固件更新:STM32F042這款芯片有個很好的功能就是可以在程序內選擇啟動模式,不像其他32設置Boot0、Boot1的電平。在程序內可以實現跳轉。
上一篇:2.工程一:BMS通信
下一篇:GD32F407標準庫IAR環境 DMA+ADC+中斷
- 熱門資源推薦
- 熱門放大器推薦
設計資源 培訓 開發板 精華推薦
- KITPF0200EPEVBE: 評估套件 - MMPF0200,12通道電源管理
- LTC6990CS6#TRMPBF 溫度到頻率轉換器的典型應用。從 -20 oC (fOUT - 20kHz) 到 75 oC (fOUT - 25kHz) 的線性度為 3%
- LTM4648IY 3-LTM4648 并聯、1.5V/30A 降壓穩壓器的典型應用電路
- STM32Demo_Pro
- 【訓練營】背著“火箭炮”的狗子
- 雙向非隔離式降壓升壓轉換器
- SSM2380 用于 SSM2380 2X2 W、無濾波器、立體聲、D 類音頻放大器的典型 I2C 控制模式配置(MODE 引腳 = GND)電路
- LTC1147-3.3、3.3V/2A 輸出高效穩壓器的典型應用電路
- 具有有源 PFC 的 RT7310 切相可調光初級側調節 LED 驅動器控制器的典型降壓-升壓應用
- 復刻CV工程師鍵盤(基于CH552的模擬鍵盤)
- 免費申請|ATmega4809 Curiosity Nano
- 有獎直播:ADI數字主動降噪耳機方案 8月6日上午10:00-11:30 邀您聆聽讓技術為我們靜下來
- 【XILINX 主題分享月】 設計工具資料大搜集!!!
- 邀您注冊 VICOR 電池化成與測試迷你站
- 【有獎下載】英飛凌《時尚小家電功率器選型指南》,詳解兼具強大功能與潮流款式的小家電設計!
- vishay消費知識大闖關正式開始
- 來翻牌吧!解鎖示波器的N種玩法
- TE 《新趨勢報告: 如何有效應對當下測試測量領域的挑戰》下載最新趨勢報告
- EEWORLD社區5月明星人物出臺嘍!
- 【評論有禮】大話CC2650,從資料到例程、從應用到生態全方位講解!