这是一个用89S52加PDIUSBD12模拟的一个U盘,里面涉及到USB接口,USB大容量存储设备,FAT16文件系统等内容。插入电脑后,可显示移动磁盘盘符及一个文本文件。
需要说明一下的是,这个包中的原理图,IDE接口部分、74HC573、以及RS232串口等部分,是作为这个实验板的一部分。在这个模拟U盘的程序中,是没有用到的。在下一个“移动硬盘”的例子中,就用到了IDE接口跟74HC573了。至于RS232,那时笔者在调试程序时用的。如果您不需要通过串口调试程序,RS232部分可以不管它。
相关评论: http://computer00.21ic.org/user1/2198/archives/2006/9858.html
原理图:
注意:图中串口电平转换部分的C8和C10接反了,C11负端应接VDD。D12的SUSPEND(12脚)应该接地。USB接头处的D+和D-应该分别串联22欧姆的匹配电阻。由于图得比较匆忙,所以没留意。
用户1435818 2010-1-13 07:46
用户956387 2010-1-11 16:41
用户808327 2009-12-20 20:28
computer00 2009-5-6 00:29
用户98294 2009-5-5 15:23
computer00 2007-11-22 00:52
数据...数据都被扔拉...如果你要做真正的U盘,那么还需要将这些数据写入到对应的扇区中去。
computer00 2007-8-25 11:18
/***************************设置地址***************************************/
void set_usb_address(void)
{
usb_flags.flags.set_addr=1;
set_usb_addr(Control_Data.DeviceRequest.wValue);
while(select_endpoint(1)&0x01);
write_endpoint_buff(1,0,0);
while(select_endpoint(1)&0x01);
usb_flags.flags.usb_endp0_in=0;
usb_flags.flags.setup_packet_out=0;
}
/******************************************************************************/