社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 10120|回复: 50

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

  [复制链接]

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2016-6-3 10:21:37 | 显示全部楼层 |阅读模式
使用Kinetis系列的KS22做了USB转双路CAN的调试工具,分享给大家。
KS22-USB2CAN.png
除了转双CAN外,还支持转RS232、RS485、SPI、IIC等等,功能多多啊!
FlexIO也可以模拟更多接口。
PCB.png
QT做的上位机软件:USB使用USB转串口
QT上位机.jpg
与CAN适配器调试:
CAN调试助手.jpg

原理图:
KS22原理图.pdf (847.58 KB, 下载次数: 325)

评分

2

查看全部评分



回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

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

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

点评

做了2天尝试都没有在keil 下编译通过, 有如下的错误。 我的做法是 make_new_project-sc_Keil 建立一个新工程,用hello 作为模板。 然后添加几个group bsp,usb project 把对应的文件添加。 include 找不到,就添  详情 回复 发表于 2016-6-8 00:01


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2016-6-3 10:22:23 | 显示全部楼层

KS22官方链接如下:
http://www.nxp.com/zh-Hans/produ ... _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模块,支持低功耗模式工作


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2016-6-3 10:24:11 | 显示全部楼层
芯片USB免晶振。


回复

使用道具 举报

192

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2016-6-3 10:35:26 | 显示全部楼层
功能很强大,上位机做的也很棒!


回复

使用道具 举报

1598

TA的帖子

4

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2016-6-3 10:54:23 | 显示全部楼层
楼主不做个板子一起玩玩!!!

点评

这就是楼主做的板子啊  详情 回复 发表于 2016-6-3 11:36


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2016-6-3 11:36:03 | 显示全部楼层
DavidZH 发表于 2016-6-3 10:54
楼主不做个板子一起玩玩!!!

这就是楼主做的板子啊


回复

使用道具 举报

5077

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2016-6-3 11:47:33 来自手机 | 显示全部楼层
加精http://bbs.eeworld.com.cn/static/image/smiley/default/pleased.gif


回复

使用道具 举报

1013

TA的帖子

1

TA的资源

版主

Rank: 6Rank: 6

发表于 2016-6-3 21:51:34 | 显示全部楼层
非常好,早就在网站上看到了。。。。。

点评

谢谢支持:)  详情 回复 发表于 2016-6-3 22:17


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2016-6-3 22:17:04 | 显示全部楼层
qwerghf 发表于 2016-6-3 21:51
非常好,早就在网站上看到了。。。。。

谢谢支持:)


回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2016-6-4 13:41:32 | 显示全部楼层
本帖最后由 liwenz 于 2016-6-4 16:24 编辑

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

点评

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


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2016-6-4 22:44:30 | 显示全部楼层
liwenz 发表于 2016-6-4 13:41
看上去还不错,谢谢。只是看了一下目前,我要到我的kl25z 板测试下. 我以为是keil 工程, 发现不是,不知是 ...

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

点评

那我怎么用keil 找不到工程文件呢,是不是你的版本比较高,我的是4.71 的版本,找到可以破解又支持kl25z. 我不需要can, 我只是需要可以编译链接就可以了, 然后需要你的usb 通讯部分。 我还不知道怎么去掉can 的那  详情 回复 发表于 2016-6-5 18:26


回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2016-6-5 18:26:04 | 显示全部楼层
sblpp 发表于 2016-6-4 22:44
(1) 是Keil的程序。
(2)KL25不支持CAN,系统时钟USB时钟也不一致。
所以KL25上跑比较麻烦的。

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

点评

\KS22_Proj\MDK\KS22Proj.uvprojx 就是keil的工程文件,使用KEIL5版本的。  详情 回复 发表于 2016-6-6 09:16
那这样你改动太大了。 建议使用KL26的sample code,其中有USB的例程。 解压后 \KL26\FRDM-KL26Z_SC\FRDM-KL26Z_SC_Rev_1.0\klxx-sc-baremetal\build\iar%usb_device 有USB的测试例程,可参考。 我用的USB库使  详情 回复 发表于 2016-6-6 09:14


回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2016-6-5 18:40:24 | 显示全部楼层
其次我的运行平台是kl25z ,  我需要的功能就是usb 通讯,然后包含了加密控制的可能。
我就买了一个kl25z 的板子,如果程序可以了,再设计一个最小系统, 用32脚的芯片。
你有什么好的建议吗?
听你说你是keil 的,我尝试做一个project 看看。


回复

使用道具 举报

2072

TA的帖子

4

TA的资源

版主

Rank: 6Rank: 6

发表于 2016-6-5 21:47:20 | 显示全部楼层
sblpp 很给力啊,赞同加精。
存储:EEPROM, SFLAH
通行:RS482,CANx2(11bit, 29bit), SPI, IIC
上位软件没下下来,能看波形,导入导出CAN的dbc文件之类 就太好了。

点评

谢谢支持。 毕竟只是做个简单能用的,没想那么复杂。  详情 回复 发表于 2016-6-6 09:16
MicroPython中文社区 http://www.micro-python.com/forum.php


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

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

那这样你改动太大了。
建议使用KL26的sample code,其中有USB的例程。 FRDM-KL26Z_SC.exe (15.36 MB, 下载次数: 85)

点评

谢谢你了,但那是iar 的版本。有办法转换成keil 的版本不? 我电脑上有了frdm_kl25 结构差不多,就没那个说明书,有usb_device 的工程。 看来我的装一个iar.  详情 回复 发表于 2016-6-6 13:01


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

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

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


回复

使用道具 举报

1024

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2016-6-6 09:16:52 | 显示全部楼层
5525 发表于 2016-6-5 21:47
sblpp 很给力啊,赞同加精。
存储:EEPROM, SFLAH
通行:RS482,CANx2(11bit, 29bit), SPI, IIC
...

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


回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2016-6-6 13:01:35 | 显示全部楼层
本帖最后由 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 只是没有工程, 源代码却有。看来利用相邻的工程,转换一下文件目录就可以了。

点评

是啊。 不过你也可以参考: https://github.com/mbedmicro/CMSIS-DAP 移植下就行啦。  详情 回复 发表于 2016-6-6 19:02


回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2016-6-8 00:01:29 | 显示全部楼层
本帖最后由 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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-7-23 09:56 , Processed in 0.571119 second(s), 20 queries , Gzip On, Redis On.

快速回复 返回顶部 返回列表