sblpp 发表于 2016-6-3 10:21

开源:USB转双CAN调试工具(申精啊)

<div class='showpostmsg'>使用Kinetis系列的KS22做了USB转双路CAN的调试工具,分享给大家。

除了转双CAN外,还支持转RS232、RS485、SPI、IIC等等,功能多多啊!
FlexIO也可以模拟更多接口。

QT做的上位机软件:USB使用USB转串口

与CAN适配器调试:


原理图:


源码:


上位机软件:(比较大)
链接: http://pan.baidu.com/s/1jHbeMUU 密码: j2ge
</div><script>                                var loginstr = '<div class="locked">查看精华帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                               
                                if(parseInt(discuz_uid)==0){
                                                                                        (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                }
</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

sblpp 发表于 2016-6-6 19:02

liwenz 发表于 2016-6-6 13:01
谢谢你了,但那是iar 的版本。有办法转换成keil 的版本不?
我电脑上有了frdm_kl25 结构差不多,就没那个 ...

是啊。
不过你也可以参考:
https://github.com/mbedmicro/CMSIS-DAP
移植下就行啦。

sblpp 发表于 2016-6-3 10:22


KS22官方链接如下:
http://www.nxp.com/zh-Hans/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus/k-series/ks22-mcu:KS22_MCU?cof=0&am=0


KS22系列微控制器基于ARM® Cortex®-M4内核,主频120MHz并支持数字信号处理指令以及单精度浮点运算单元。这一系列具有全速USB2.0 OTG模块,作为USB设备时无须外部振荡器。器件提供128KB或者256KB闪存,64K内存以及LQFP和QFN封装,基于低功耗平台设计,拥有丰富的模拟、通信、定时和控制外设。
10种低功耗模式,提供电源和时钟门控,可以实现最佳的外设活动和恢复时间
工作电压降至1.71 V时,仍可实现完整的存储器和模拟操作,延长了电池使用时间
低漏电唤醒单元,带有多达8个内置模块和16个引脚,可作为低漏电停止(LLS)模式/超低漏电停止(VLLS)模式的唤醒源
低功耗定时器支持低功耗模式运行,无需唤醒内核

ARM Cortex-M4内核+ DSP。120 MHz,单周期MAC,单指令多数据(SIMD)扩展,单精度浮点运算单元
外设和存储器用的多达16通道的DMA,使CPU负载更低,系统吞吐更快
交叉开关支持并发多主设备总线访问,增加总线带宽

分辨率可配置的高速16位模数转换器(ADC)。单输出或差分输出模式运行,可提高噪声抑制水平。利用可编程延迟模块触发功能可实现500 ns的转换时间
12位数模转换器(DAC),可以为音频应用生成模拟波形
高速比较器,通过将脉宽调制(PWM)置于安全状态,提供快速准确的电机过流保护

全速USB2.0 OTG模块,作为USB设备时无须外部振荡器
1个支持低功耗模式下工作的LPUART和多达3个支持IrDA的UART,其中一个UART支持ISO7816智能卡。支持各种数据大小、格式和传输/接收设置,满足多种工业通信协议
两个IC间音频传输(I2S)串行接口,用于接入音频系统
两个CAN模块,适用于工业网络桥接
两个SPI
两个支持低功耗模式下工作的LPI2C
一个可灵活配置为多种接口(如UART/SPI/I2C/I2S)的FlexIO模块,支持低功耗模式工作

sblpp 发表于 2016-6-3 10:24

芯片USB免晶振。

stormbreaker 发表于 2016-6-3 10:35

功能很强大,上位机做的也很棒!

DavidZH 发表于 2016-6-3 10:54

楼主不做个板子一起玩玩!!!

sblpp 发表于 2016-6-3 11:36

DavidZH 发表于 2016-6-3 10:54
楼主不做个板子一起玩玩!!!

这就是楼主做的板子啊:pleased:

littleshrimp 发表于 2016-6-3 11:47

加精https://bbs.eeworld.com.cn/static/image/smiley/default/pleased.gif

qwerghf 发表于 2016-6-3 21:51

非常好,早就在网站上看到了。。。。。

sblpp 发表于 2016-6-3 22:17

qwerghf 发表于 2016-6-3 21:51
非常好,早就在网站上看到了。。。。。

谢谢支持:)

liwenz 发表于 2016-6-4 13:41

本帖最后由 liwenz 于 2016-6-4 16:24 编辑

看上去还不错,谢谢。只是看了一下目前,我要到我的kl25z 板测试下. 我以为是keil 工程, 发现不是,不知是什么开发环境。
有keil 下的工程不?

sblpp 发表于 2016-6-4 22:44

liwenz 发表于 2016-6-4 13:41
看上去还不错,谢谢。只是看了一下目前,我要到我的kl25z 板测试下. 我以为是keil 工程, 发现不是,不知是 ...

(1) 是Keil的程序。
(2)KL25不支持CAN,系统时钟USB时钟也不一致。
所以KL25上跑比较麻烦的。

liwenz 发表于 2016-6-5 18:26

sblpp 发表于 2016-6-4 22:44
(1) 是Keil的程序。
(2)KL25不支持CAN,系统时钟USB时钟也不一致。
所以KL25上跑比较麻烦的。

那我怎么用keil 找不到工程文件呢,是不是你的版本比较高,我的是4.71 的版本,找到可以破解又支持kl25z.
我不需要can, 我只是需要可以编译链接就可以了, 然后需要你的usb 通讯部分。
我还不知道怎么去掉can 的那部分。
对于kl25z 我就编译调试了一个控制灯的程序, 很需要一个usb 通讯的程序。

liwenz 发表于 2016-6-5 18:40

其次我的运行平台是kl25z ,我需要的功能就是usb 通讯,然后包含了加密控制的可能。
我就买了一个kl25z 的板子,如果程序可以了,再设计一个最小系统, 用32脚的芯片。
你有什么好的建议吗?
听你说你是keil 的,我尝试做一个project 看看。

5525 发表于 2016-6-5 21:47

sblpp 很给力啊,赞同加精。:kiss:
存储:EEPROM, SFLAH
通行:RS482,CANx2(11bit, 29bit), SPI, IIC
上位软件没下下来,能看波形,导入导出CAN的dbc文件之类 就太好了。

sblpp 发表于 2016-6-6 09:14

liwenz 发表于 2016-6-5 18:26
那我怎么用keil 找不到工程文件呢,是不是你的版本比较高,我的是4.71 的版本,找到可以破解又支持kl25z. ...

那这样你改动太大了。
建议使用KL26的sample code,其中有USB的例程。
解压后
\KL26\FRDM-KL26Z_SC\FRDM-KL26Z_SC_Rev_1.0\klxx-sc-baremetal\build\iar\usb_device
有USB的测试例程,可参考。

我用的USB库使用的是MBed的,可到MBed网站下载。
如下链接:http://mbed.org/handbook/cmsis-dap-interface-firmware源码:https://github.com/mbedmicro/CMSIS-DAP

sblpp 发表于 2016-6-6 09:16

liwenz 发表于 2016-6-5 18:26
那我怎么用keil 找不到工程文件呢,是不是你的版本比较高,我的是4.71 的版本,找到可以破解又支持kl25z. ...

\KS22_Proj\MDK\KS22Proj.uvprojx
就是keil的工程文件,使用KEIL5版本的。

sblpp 发表于 2016-6-6 09:16

5525 发表于 2016-6-5 21:47
sblpp 很给力啊,赞同加精。
存储:EEPROM, SFLAH
通行:RS482,CANx2(11bit, 29bit), SPI, IIC
...

谢谢支持。
毕竟只是做个简单能用的,没想那么复杂。

liwenz 发表于 2016-6-6 13:01

本帖最后由 liwenz 于 2016-6-6 13:05 编辑

sblpp 发表于 2016-6-6 09:14
那这样你改动太大了。
建议使用KL26的sample code,其中有USB的例程。
解压后
\KL26\FRDM-KL26Z_SC\FR ...
谢谢你了,但那是iar 的版本。有办法转换成keil 的版本不?
我电脑上有了frdm_kl25 结构差不多,就没那个说明书,有usb_device 的工程。
看来我的装一个iar.
keil 只是没有工程, 源代码却有。看来利用相邻的工程,转换一下文件目录就可以了。

liwenz 发表于 2016-6-8 00:01

本帖最后由 liwenz 于 2016-6-8 07:08 编辑

sblpp 发表于 2016-6-6 19:02
是啊。
不过你也可以参考:
https://github.com/mbedmicro/CMSIS-DAP
移植下就行啦。
做了2天尝试都没有在keil 下编译通过, 有如下的错误。
我的做法是 make_new_project-sc_Keil 建立一个新工程,用hello 作为模板。
然后添加几个group bsp,usb project 把对应的文件添加。
include 找不到,就添加include 路径, 把一些重复的文件去掉。
我对比编译twr_spi_demo 文件结构一样,他就可以编译成功。


compiling usb_main.c...
D:\kl25z\kl25_sc_rev10\klxx-sc-baremetal\src\cpu\arm_cm0.h(19): error:#147-D: declaration is incompatible with "void NVIC_EnableIRQ(IRQn_Type)" (declared at line 626 of "C:\Keil\ARM\CMSIS\Include\core_cm0plus.h")
D:\kl25z\kl25_sc_rev10\klxx-sc-baremetal\src\cpu\arm_cm0.h(20): error:#147-D: declaration is incompatible with "void NVIC_DisableIRQ(IRQn_Type)" (declared at line 638 of "C:\Keil\ARM\CMSIS\Include\core_cm0plus.h")
D:\kl25z\kl25_sc_rev10\klxx-sc-baremetal\src\projects\usb_device\usb\usb_cdc.h(67): warning:#1-D: last line of file ends without a newline
D:\kl25z\kl25_sc_rev10\klxx-sc-baremetal\src\projects\usb_device\usb\ring_buffer.h(26): warning:#1-D: last line of file ends without a newline

D:\kl25z\kl25_sc_rev10\klxx-sc-baremetal\src\projects\usb_device\usb\usb.c(195): error:#20: identifier "INT_USB0" is undefined
D:\kl25z\kl25_sc_rev10\klxx-sc-baremetal\src\projects\usb_device\usb\usb.c(204): error:#20: identifier "tBDTtable" is undefined
D:\kl25z\kl25_sc_rev10\klxx-sc-baremetal\src\projects\usb_device\usb\usb.c(277): error:#20: identifier "tBDTtable" is undefined
页: [1] 2 3
查看完整版本: 开源:USB转双CAN调试工具(申精啊)