佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 3815|回复: 10

【分享】16FUSB 在16F628A 实现软 USB1.1 端口

[复制链接]
发表于 28-5-2013 11:39 AM | 显示全部楼层 |阅读模式

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 编辑

回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 28-5-2013 11:42 AM | 显示全部楼层
有兴趣的网友也可以参考:
AVR ATtiny USB Tutorial Part 1
http://codeandlife.com/2012/01/22/avr-attiny-usb-tutorial-part-1/


Virtual COM Port over Low-Speed USB
AVR-CDC
http://www.recursion.jp/avrcdc/index.html


http://hackaday.com/2012/02/09/learning-to-use-the-v-usb-avr-usb-firmware-library/

本帖最后由 pic 于 28-5-2013 12:17 PM 编辑

评分

参与人数 1人气 +5 收起 理由
sougisyou + 5 这个太强了不能不给好评。

查看全部评分

回复

使用道具 举报

发表于 28-5-2013 08:07 PM | 显示全部楼层
不错不错。收下了。

18F2550 本身集成了USB,好像是Full Speed USB 2.0,价钱廉宜。之前为了制作Pinguino,买了两粒来测试。
回复

使用道具 举报

发表于 28-5-2013 08:22 PM | 显示全部楼层
pic 发表于 28-5-2013 11:42 AM
有兴趣的网友也可以参考:
AVR ATtiny USB Tutorial Part 1
http://codeandlife.com/2012/01/22/avr-att ...

初期学习使用mcu时,就是根据这个AVR-CDC网站弄了一个CDC-IO,结果告吹了。不知怎的,使用不久,Port会自动消失。
cdcio-45.gif

如今看了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就可以实现了。
回复

使用道具 举报

Follow Us
发表于 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 之类的。










评分

参与人数 1人气 +5 收起 理由
weitao + 5 谢谢解释

查看全部评分

回复

使用道具 举报


ADVERTISEMENT

发表于 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 等等
...

谢谢解释!!!
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 26-4-2024 07:42 PM , Processed in 0.093898 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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