查看: 3939|回复: 10
|
【分享】16FUSB 在16F628A 实现软 USB1.1 端口
[复制链接]
|
|

http://www.lendlocus.com/?q=16fusb
这个和Attiny, USBtiny 类似, 只是这个是用在Microchip PIC16F
一般, 在PIC MCU , 要实现USB端口 , 最简单就是使用18Fx550, 如18F4550, 18F2550 等等。。
或者更简单的就是用FTDI 的FT232,或廉价的Prolific PL2303。。
但是目前, 我偏爱Microchip 的MCP2200, 虽然是不便宜的方案。
下面是电路图:

16FUSB USB 1.1 Low Speed, 是用PIC16F628A 软件实现。
从16FUSB的核心可以添加其它协议, 例如,I2C,SPI。。
这个是开源项目,源码可以在http://code.google.com/p/16fusb 下载.
首先, 要使用这个16FUSB,要求你对USB协议有一定的认识。。
参考: http://www.beyondlogic.org/usbnutshell/usb1.shtml 学习基本USB 通讯协议
这个16FUSB 可能没有什么太大的实际用途, 弄这个纯粹抱住学习理解USB 就好了。
但对于那些想要更低成本的产品, 也不需要高速数据传输时, 它还是有可取之处的。
本帖最后由 pic 于 28-5-2013 12:14 PM 编辑
|
|
|
|
|
|
|
|

楼主 |
发表于 28-5-2013 11:42 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 28-5-2013 08:07 PM
|
显示全部楼层
不错不错。收下了。
18F2550 本身集成了USB,好像是Full Speed USB 2.0,价钱廉宜。之前为了制作Pinguino,买了两粒来测试。
|
|
|
|
|
|
|
|
发表于 28-5-2013 08:22 PM
|
显示全部楼层
初期学习使用mcu时,就是根据这个AVR-CDC网站弄了一个CDC-IO,结果告吹了。不知怎的,使用不久,Port会自动消失。
如今看了Digispark,怀疑CDC-IO设计有问题,应该是没有使用zener diode吧?

本帖最后由 西门庆33 于 28-5-2013 08:32 PM 编辑
|
|
|
|
|
|
|
|

楼主 |
发表于 28-5-2013 09:33 PM
|
显示全部楼层
软USB, 玩玩就好。。乘机学习USB。。
不能用来做产品。。
USB, 很复杂。。timing 很讲究。。有时, 就算是那些PL2303, 都可能当机的。更何况是模拟的。。 |
|
|
|
|
|
|
|
发表于 28-5-2013 10:49 PM
|
显示全部楼层
这个强~!! 谢谢版主,这个也是我在找的。。 想不到16F628A就可以实现了。 |
|
|
|
|
|
|
|
发表于 5-6-2013 02:16 PM
|
显示全部楼层
我想问下,为何需要UART-USB converter? |
|
|
|
|
|
|
|

楼主 |
发表于 6-6-2013 09:57 AM
|
显示全部楼层
weitao 发表于 5-6-2013 02:16 PM 
我想问下,为何需要UART-USB converter?
UART ( Universal Asynchronous Receiver/Transmitte)
就是串口 Serial port, COM port, RS232。。
在过去的电脑PC 都配有1~2个Serial port.
比如以前滑鼠是连接到Serial port 的, 后来是PS2, 再后来就是USB (HID)。
因为USB 的成熟, 很多电脑都不配备Serial Port 了。。

因为Serial port 只是一串的 0 或 1, 速度(baud rate)已经知道的资料串。。被普遍使用在单片机做简单的通讯。
所以如果要用单片机 和现代的PC 连接, 那个PC 就要有串口 COM Port。
如果没有, 就可以用UART 转 USB.
注意:
UART 是电平是 0V, 5V(3.3V)
在PC 的COM port, 是RS232 ,电平是 -10V , +10V,要连接去MCU, 要做电平转换, 如是有IC MAX232 之类的。
|
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 6-6-2013 04:19 PM
|
显示全部楼层
如何知道UART的速度?和USB的?可以用电脑test吗? |
|
|
|
|
|
|
|

楼主 |
发表于 7-6-2013 11:07 AM
|
显示全部楼层
weitao 发表于 6-6-2013 04:19 PM 
如何知道UART的速度?和USB的?可以用电脑test吗?
UART
波特率 (Baud rate): 110, 300,600,1200,2400,4800,9600,19200,38400,57600,115200 bit/s 等等
9600, 19200, 115200bps 最常用。
USB 1.1
1.5 Mb/s (Low-Bandwidth) , 12 Mb/s (Full-Bandwidth)
USB 2.0 (High Speed):
最高速是 480 Mbit/s
USB 3.0 (Super Speed)
最高速是 5 Gbit/s , 有效的是 4 Gbit/s.
现在你明白 UART/RS232 在PC 为什么会被淘汰吧。。。相比下, UART 是那么的超低速。。
UART 的速度,是约定的。。你决定要用什么速度,你就设定在双方通信机, 用同样的波特率。
如果PC要测试, 必须要有Ack 之类的协议, 然后, PC 用不同的波特率 去尝试通信,有回答时就是那个波特率了。
P/s: 建议大学生, 当有问题时, 尽量去google自己找答案。。找到了看了不明白的话, 才问那些不明白的。。这样才会提升自己的水平。。
本帖最后由 pic 于 7-6-2013 11:14 AM 编辑
|
|
|
|
|
|
|
|
发表于 7-6-2013 01:48 PM
|
显示全部楼层
pic 发表于 7-6-2013 11:07 AM 
UART
波特率 (Baud rate): 110, 300,600,1200,2400,4800,9600,19200,38400,57600,115200 bit/s 等等
...
谢谢解释!!!
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|