开源: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> liwenz 发表于 2016-6-6 13:01
谢谢你了,但那是iar 的版本。有办法转换成keil 的版本不?
我电脑上有了frdm_kl25 结构差不多,就没那个 ...
是啊。
不过你也可以参考:
https://github.com/mbedmicro/CMSIS-DAP
移植下就行啦。
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模块,支持低功耗模式工作 芯片USB免晶振。 功能很强大,上位机做的也很棒! 楼主不做个板子一起玩玩!!! DavidZH 发表于 2016-6-3 10:54
楼主不做个板子一起玩玩!!!
这就是楼主做的板子啊:pleased: 加精https://bbs.eeworld.com.cn/static/image/smiley/default/pleased.gif 非常好,早就在网站上看到了。。。。。 qwerghf 发表于 2016-6-3 21:51
非常好,早就在网站上看到了。。。。。
谢谢支持:) 本帖最后由 liwenz 于 2016-6-4 16:24 编辑
看上去还不错,谢谢。只是看了一下目前,我要到我的kl25z 板测试下. 我以为是keil 工程, 发现不是,不知是什么开发环境。
有keil 下的工程不?
liwenz 发表于 2016-6-4 13:41
看上去还不错,谢谢。只是看了一下目前,我要到我的kl25z 板测试下. 我以为是keil 工程, 发现不是,不知是 ...
(1) 是Keil的程序。
(2)KL25不支持CAN,系统时钟USB时钟也不一致。
所以KL25上跑比较麻烦的。 sblpp 发表于 2016-6-4 22:44
(1) 是Keil的程序。
(2)KL25不支持CAN,系统时钟USB时钟也不一致。
所以KL25上跑比较麻烦的。
那我怎么用keil 找不到工程文件呢,是不是你的版本比较高,我的是4.71 的版本,找到可以破解又支持kl25z.
我不需要can, 我只是需要可以编译链接就可以了, 然后需要你的usb 通讯部分。
我还不知道怎么去掉can 的那部分。
对于kl25z 我就编译调试了一个控制灯的程序, 很需要一个usb 通讯的程序。 其次我的运行平台是kl25z ,我需要的功能就是usb 通讯,然后包含了加密控制的可能。
我就买了一个kl25z 的板子,如果程序可以了,再设计一个最小系统, 用32脚的芯片。
你有什么好的建议吗?
听你说你是keil 的,我尝试做一个project 看看。 sblpp 很给力啊,赞同加精。:kiss:
存储:EEPROM, SFLAH
通行:RS482,CANx2(11bit, 29bit), SPI, IIC
上位软件没下下来,能看波形,导入导出CAN的dbc文件之类 就太好了。 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
liwenz 发表于 2016-6-5 18:26
那我怎么用keil 找不到工程文件呢,是不是你的版本比较高,我的是4.71 的版本,找到可以破解又支持kl25z. ...
\KS22_Proj\MDK\KS22Proj.uvprojx
就是keil的工程文件,使用KEIL5版本的。
5525 发表于 2016-6-5 21:47
sblpp 很给力啊,赞同加精。
存储:EEPROM, SFLAH
通行:RS482,CANx2(11bit, 29bit), SPI, IIC
...
谢谢支持。
毕竟只是做个简单能用的,没想那么复杂。 本帖最后由 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 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