nhchmg 发表于 2009-10-14 16:08:02

请问有人用cpld做过模拟usb吗? 请问最便宜的cpld具有中断功能吗?每秒指行的速度能有AT

我用ATmega16模拟usb,但是这个模拟始终要保持一个中断一直存在,而我一个子程序不能被中断打断,一打断就有问题,所在在avr的芯片上就不能完美解决,我不懂cpld,但看一些说明cpld是并行执行的,那么是否是在中断到来时,不会影响另一个子程序?(用cpld模拟usb是学习,并不想用专用usb芯片)

ivws 发表于 2009-10-14 16:11:42

那还不如用外加PDIUSB12!!

nhchmg 发表于 2009-10-14 16:31:17

外加就没有意思了,学习主要是要自己实现最基础的东西,能直接就带usb的芯片也有,但那样学不到多少啊

sudayan2006 发表于 2009-10-14 16:36:13

一个sie就够呛

nhchmg 发表于 2009-10-14 16:44:08

不懂你说的sie是什么,因为我一点都不懂cpld,不知道你用过avr usb没有,就是一个纯软件,己经写好了源代码的,用的avr芯片的两个io口来模拟D+ D-传输数据,如果要用到cpld上,只需要cpld能提供两个IO口,其中一个IO口需要有中断功能,然后就是代码移植就,也再重新熟悉一遍usb电气传输的实现.

minux 发表于 2009-10-15 21:24:22

看来lz对CPLD理解的有问题…… 可编程逻辑电路的编程也和单片机的完全不一样。

SIE是说的serial interface engine的意思,自己熟悉下USB的协议和体系吧。

caosix 发表于 2009-10-17 11:03:59

单片机的软件包,,是不能“直接移植”到 CPLD 的啊!!

CPLD可以理解成:几乎每个引脚都具有“中断功能”,,而且“中断”执行的速度可以快到 几个ns(纳秒)!!

bynce 发表于 2009-10-17 11:16:01

我个人认为 6楼解释不妥。
   CPLD应该理解实际的电路。CPLD的内部可以实现各个数字IC的功能。LZ应该好好思考一下MCU时根据程序运行,CPLD虽说也是写程序代码,但CPLD实现的数字控制电路(分立元件组成数字电路一样)。

nhchmg 发表于 2009-10-17 13:07:40

那这样看来用硬件模拟 电气时序,比用软件模拟电气时序要难得多了?

minux 发表于 2009-10-17 18:39:12

8楼还是去了解下cpld的真正功能吧。。。。

nhchmg 发表于 2009-10-18 13:34:46

回9楼,如果cpld不行,也可以用别的便宜点的硬件,我的目的是用一个硬件来模拟usb。

zf8848 发表于 2009-10-18 14:26:44

CPLD 完全模拟 USB 容量不够的,模拟 SIE 可以,而且有开源的 Verilog 代码.

nhchmg 发表于 2009-10-20 13:09:09

回11楼,请问要模拟一个USB最低的硬件是哪种呢?

windowsce 发表于 2009-10-20 13:26:30

LZ还是去用USB控制器吧~CH375就不错~坛子里有很多现成的代码。
你用一个单片机模拟USB的成本,并不会比专门的USB控制器低太多

nhchmg 发表于 2009-10-20 16:38:29

不是作产品,是学习的

minux 发表于 2009-10-20 19:07:19

如果你一定要用PLD器件(CPLD/FPGA)直接处理USB,容量大点的估计还是有希望能搞定全速的。
高速一定得有单独的模拟前端(Phy)。
但是你的“不能中断”的AVR程序是很难移植进PLD器件的。
页: [1]
查看完整版本: 请问有人用cpld做过模拟usb吗? 请问最便宜的cpld具有中断功能吗?每秒指行的速度能有AT