文章總列表

玩CAN bus的傢伙們 (2) CandleLight-based USB-CAN DIY

前言
我的CandleLight USB-CAN都是TAOBAO買,最早賣39RMB,後來就漲價到89RMB,早知道就多屯一些在手邊。動心起念DIY除了省錢,另一個是掌握STM32F0系列MCU開發,畢竟這款才能同時開CAN和USB

硬體材料
核心版和我愛用的STM32F103C8T6線路完全一樣,只是MCU換成STM32F072C8T6;然後CAN Transceiver我隨便拿顆手邊5v的來用;講究一點要用TJA1051/3內含level shifter,可以把電壓轉3.3v和MCU對接;只是我手邊沒有就隨便拿一顆用,實測沒問題,原因如下:
  1. CAN-TX pin,收發IC內部有5v pull-up,MCU就算輸出3.3v也沒事
  2. CAN-RX pin,MCU本來就是5v tolerant,所以灌進來也不會有事

PCB比對 & 製作硬體
比對candleLight和核心版線路圖是苦功,答案奉上:只要PB8/PB9接上CAN Transceiver即可;OBD2連接器一般是接PIN6/14,這是汽車標準的CAN bus接口
  1. CandleLight線路圖


  2. 核心板線路圖


  3. 製作結果,4條線從主板到小板子,2條線從小板到OBD2連接器


準備韌體 & 燒錄
這個流程我操作過很多次,寫Blog順便好好記錄下來:
  1. 找一台Linux(我用Raspberry Pi)照著CandleLight FW的說明建構韌體。Codebase能支援不同板子(參考config.h),可以直接打make把所有韌體都build出來。只有candlelight_FW用STM32F072,我用這版韌體

  2. STM32-DFU工具安裝,DFU是Device FW Upgrade縮寫

  3. 核心版斷電,調boot0設high上電啟動STM32 bootloader;驅動程式在C:\Program Files (x86)\STMicroelectronics\Software\DfuSe v3.0.6\Bin\Driver

  4. 執行DFU manager把步驟一的candlelight_fw.bin轉成DFU file,操作參考下面圖片

  5. 然後跑DfuDeDemo程式,操作如下圖,把韌體燒進去

  6. 把核心版斷電,boot0重新放回low再上電,電腦重新看到candleLight裝置,製作完成。可以開始使用



留言

這個網誌中的熱門文章

幼犬書桌椅選擇心得 升降桌 兒童桌椅

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

CANON G3000 廢墨瓶改裝