PEAK PCAN


背景

Github上又发现了宝,不废话先上网址:
PCAN USB 固件 (支持成品 CANtack、CANable 硬件修改 或者 STMF042系列芯片):
https://github.com/moonglow/pcan_cantact
PCAN USB PRO 固件(支持STM32F405\407芯片):
https://github.com/moonglow/pcan_pro_x

pcan_cantact - F072版本

马上拉下代码,一看蒙圈了,没有keil工程,只有Makefile,大体上看了下用的是arm-none-eabi-gcc编译链,我这编译A8的编译链应该不行,懒的配环境了直接动手移植,找个072的工程把其中的源码都删了,然后把pcan_cantact中的代码都先添加进去,然后一编译果然一堆错误,然后就开始对着error一个一个的解决,一番操作猛如虎,一看error 250!应该是startup_stm23f072.s文件的问题,换回之前keil工程里的.s文件,稍作修改就OK了,翻出我的F072的带CAN的小板子down进去一试,居然识别出来了!虽然没有驱动但是很开心,至少说明usb枚举成功了,然后找驱动,官网下载PeakOemDrv.exe安装后,就识别出来了!先上板图留念:
PCAN USB - F072
PCANView成功识别
再翻出之前买的笨重的USB2CAN工具,连接后配置相同的波特率,收发都正常!代码没做啥修改,只是改了改LED就跑起来了,开心ing…

PCAN USB PRO - F407版本

打铁需趁热,翻出407的板子同样的套路移植好代码,usb上电down程序,又是一番操作猛如虎,NaNi?USB豪无反应!左一想应该时钟不正确,改时钟配置重新下进去还是没反应!好吧,看程序里默认的配置用的应该是8M晶振,算了不改时钟了–换晶振!额…还是不行,看了看USB初始化部分代码居然用的是USBHS!难道需要外扩外扩USB3300来跑高速?不怕,哥有的是板子!翻出之前带USB3300的407板子,继续一番猛如虎的操作,还是毫无反应啊!右一想可能是USB的管脚配置不正确,毕竟ULPI要配置好多个腿,巴拉了巴拉发现USB管脚居然用的是PB14、PB15!奇怪,难道407的高速USB内置了PHY?之前的USB FS都是用的PA11、PA12,不管了,找了个能引出PB14、PB15管脚的407板子,然后把它飞到USB座上,USB线一插听到了熟悉的叮咚声音,虎躯一震,赶紧打开设备管理器一看PCAN USB PRO设备直接识别出来了!呼,长呼一口气!
后来看了下人家的README.md文件,上面清晰的注明:

Target hardware:

  • Any STM32F407/405 based boards with 8MHz oscillator
    Pinout:
    PIN/PINS DESCRIPTION
    PC10 STATUS LED
    PA2/PA3 TX/RX CAN1 LED
    PC6/PC7 TX/RX CAN2 LED
    PB8/PB9 CAN1 RX/TX
    PB5/PB6 CAN2 RX/TX
    PB14/PB15 USB DM/DP
  • Be sure to use PB14/PB15 pins for USB
  • PRO FD firmware has better performance on windows ( due internal PEAK driver implementation )

都怪自己太心急绕了些弯路,不过虎躯又一震,还支持CANFD哪!虽然407不支持,但是协议有了,改了改配了配,嗯,果然识别成PCAN-USB Pro FD了,还多了个PCAN-USB-Pro FD LIN!爽歪歪,虽然不知道LIN有啥用。
这里的修改主要是在工程配置选项中增加如下配置:PCAN_PRO_FD=1,INCLUDE_LIN_INTERFACE=1,USB_WITHOUT_ISR=0
开始改版,用407就不要浪费了,两路CAN、两路LIN、两路RS485,六个LED,SPI Flash,按键,然后今天的主角闪亮登场:
MyPCANPro
程序里修改了下LED管脚配置,然后down进去就识别出来了,还是用笨重的USB2CAN工具调试,两路CAN收发都正常!PCAN View可以选择配置CANFD的Norminal Bit Rate和Data Bit Rate,Data Bit Rate只有2MBits/s和6MBits/s两种,不知道是不是固件的原因。
MyPCANPro FD PcanView
还有附送的PLIN,虽然暂时用不到,谁知道以后会不会用上呢~
PLIN View

高速USB + CANFD

至此虽然已经实现了PCAN,但是没有高速USB没有CANFD,心里总有些遗憾,然后东逛西逛在立创商城上下到了GD32E505的datasheet,虎躯震了又震!这货不就是我一直在找寻的嘛!内置高速USB PHY,至此3路CANFD!选择GD32E505RB/C/E,LQFP64 pin就可以实现了,关于CANFD的描述如下:
E505 CAN的描述
三路CAN,支持CAN FD,速率也能到6MBit/S!还等什么哪,407的板子还没捂热乎就在它的基础上改出了一个同时支持高速USB、两路CAN FD、QSPI Flash的高级版,立马下单投板。焦急的等板子的过程中找资料找例程,第一次接触GD的片子,可得仔细点~
事实再一次狠狠的打了我的脸,快就慢!我以为我捡到了宝结果是一坨屎!CANFD在新版本的datasheet上连个鬼影都木的!别说CANFD了,连CAN都没了!带着一丝丝希望咨询GD的工程师得到如下的回复:
“ 505把CAN去掉了,508才有,508还没出样片!”
真是句句扎心啊…太坑了…
可怜我那可爱的GD32E505xUSBHSxCANFD的小裸板了~
E505Board


文章作者: XARM
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 XARM !
评论
  目录