搜索
bottom↓
回复: 70

转贴一些圈圈在AT91SAM7S64上玩的代码

[复制链接]

出0入0汤圆

发表于 2009-4-16 22:55:02 | 显示全部楼层 |阅读模式
FFT显示频谱

本实验源代码包下载:http://bbs.21ic.com/upfiles/img/20093/20093712445301.rar

频谱分析演示视频1:http://bbs.21ic.com/upfiles/img/20093/20093712258851.rar

频谱分析演示视频1:http://bbs.21ic.com/upfiles/img/20093/2009371240995.rar

这是一个简单的FFT测试程序,LCD为NOKIA5110 84*48点的单色LCD屏。
使用AD6对音频信号进行采样,然后经过FFT后,将其频谱显示在LCD上。

    程序首先初始化系统时钟,将主时钟设置为48.05MHz。然后将对应
的LCD的IO口设置为输出状态并使能。然后对LCD进行初始化。

    本程序所用的实验平台是21IC的古道热肠设计的“DIY优盘开发板”,
详细的原理图可以去古道热肠的blog下载。

    由于音频信号是交流信号,先要对其进行平移到1/2Vcc才能采样。
从板上的J6引出GND、VCC、AD6这3根线。然后分别在GND和AD6、VCC和
AD6上连接一个10K欧姆的电阻,将AD6偏置到1/2Vcc处。然后再用一个
1K欧姆的电阻和一个10uF的电容串联后连接到AD6上。电阻的作用是保护
芯片,电容的作用是隔直。

    将程序下载到学习板中,然后将音频信号(例如电脑音频输出或者
接到音箱的喇叭线上)接到上面的电路中,播放一段音乐,就可以看到
信号的频谱拉。
   
    这个例子比较简单,使用的是128点的FFT,显示频谱只用前面64点,
因为后面64点是跟前面64点对称的。程序设置的采样频率为44.1KHz,
所以第64点(最右边)的频率就是22.05KHz。最左边那条(无信号输入
时约1.6V高度)为直流成分。你可以将直接将一个直流电压加在AD6上
看它显示的电压值。由于交流成分分散,所以对交流成分显示时是做
了适当的比例放大的,否则交流值显示很小。

    实际上,对音频频谱的显示,通常纵坐标是取对数,横坐标是按照
倍频关系来的,这里为了程序简单,都是用的线性关系。

    另外,为了显示效果美观,增加了峰值保持并下坠的效果(类似
千千静听或者windows多媒体播放器中频谱显示的效果)。

    不再废话了,感兴趣的就赶紧下载代码去玩玩吧~~~欢迎大家多多
交流~~~

                                     圈圈   2009-03-07 01:18


============================================================

改进版程序(改成了512点FFT,并对频率轴和幅度都进行了压缩)

单击次处下载更新版程序:http://bbs.21ic.com/upfiles/img/20093/200937111126472.rar

    又对程序进行了一些修改,将128点FFT改成了512点,更能反映
实际信号的情况。在频率轴上不再是线性显示,第0点为直流信号,
1~13点每两点间频率间隔为86Hz,第14~23点每两点间频率间隔为2*86Hz,
第24~33点每两点间频率间隔为3*86Hz,第34~43点每两点间频率间隔
为4*86Hz,第44~53点每两点间频率间隔为6*86Hz,第54~63点每两点
间频率间隔为9*86Hz。

    在幅度轴上,使用了开根号进行压缩。试用了对数压缩,发现
压缩得太厉害,最后决定使用开根号压缩。

    由于采样和计算时间增加,原来的延迟50ms被去掉。

                                    圈圈  2009-03-07  11:06

较清晰视频下载:http://bbs.21ic.com/upfiles/img/20093/20093711391189.rar


品谱示意图一 (原文件名:1.jpg)


品谱示意图二 (原文件名:2.jpg)


品谱示意图三 (原文件名:3.jpg)

出0入0汤圆

 楼主| 发表于 2009-4-16 22:58:21 | 显示全部楼层
第二个——USB键盘实现

所有USB包中需要修正程序中的一处小错误:
Usbcore.c中,
pSendData=(uint8)DeviceDescriptor;  //需要发送的数据
强制转换漏掉一个“*”号,应该修改为
pSendData=(uint8 *)DeviceDescriptor;  //需要发送的数据

单击这里下载本实验程序:http://bbs.21ic.com/upfiles/img/20093/200938205820165.rar

这是一个简单的USB键盘测试程序,插到电脑上将显示一个USB键盘。
按键功能分布如下:

           K1:Caps Lock键  K2:Num Lock键  K3:字母a键
           K6:左Ctrl键     K5:左Shift键   K4:数字1键

LED2为NUM LOCK灯,LED3为CAPS LOCK灯。

    按键使用定时器1产生5ms周期的中断进行扫描。当开关动作时,
同时会在LCD屏幕上显示相应的键。

    本程序由《圈圈教你玩USB》中的USB键盘程序移植而来,由于所
使用的USB芯片不一样,因而底层函数区别较大,很多地方做了修改。
程序依然使用原来的查询模式,通过查询中断寄存器来判断是否需要
对相应的端点做处理。当然,如果你感兴趣的话,也可以改成中断方式
来处理。在config.h文件中可以打开调试信息,通过串口0显示详细的
调试信息。
   
    端点1作为中断输入端点,返回按键数据;端点2作为中断输出端点,
用来发送LED状态。

    AT91SAM7S64芯片的USB部分比较特殊,有很多地方需要注意。
例如UDP_CSRx寄存器,在操作时要特别注意,需要等待数据写入。
而UDP_FADDR(地址寄存器)的使用也要注意,应该是在发送完0长度
的状态数据包后才能往该地址写入实际设置的地址,然后再设置
UDP_GLB_STAT寄存器中的FADDEN为1。而像D12这样的USB芯片,则
刚好相反,应该先写地址,再返回0长度的状态包,当主机用ACK确认
这个状态包时,芯片会自动启用新地址。圈圈在调试这个芯片的设置
地址阶段时,费了很多时间...另外还要注意的是端点的使能操作。
应该在收到非0的设置配置请求后,才对非0端点使能。否则事先初始化
好的端点,在收到总线复位时,会复位到非使能的状态。圈圈在这个
问题上也费了不少时间,老是无法正确发送出数据(状态寄存器显示
发送完毕了,但是实际上主机没收到数据)。另外该芯片的端点是单
向,只能配置它为输入或者输出,因此总共也就只有3个非0的端点可用。
不像D12,端点1和端点2都是双向的,可以同时有4个非0端点。另外还
需要注意端点1和2的双缓冲机制,在清除端点缓冲区满标志时要自己决定。

                                    圈圈  2009-03-08  21:00
图片:

发现新硬件 (原文件名:发现新硬件图.gif)

出0入0汤圆

 楼主| 发表于 2009-4-16 22:59:36 | 显示全部楼层
USB多媒体键盘移植了上去~~~

单击此处下载本实验程序包:http://bbs.21ic.com/upfiles/img/20093/200939135910242.rar


   USB多媒体键盘,按键分布如下:

           K1:音量加  K2:静音        K3:一键上网
           K6:音量减  K5:播放/停止   K4:待机

LED2为NUM LOCK灯,LED3为CAPS LOCK灯。


                                    圈圈  2009-03-09  13:30


发现新硬件图:
(原文件名:发现新硬件图.gif)

出0入0汤圆

 楼主| 发表于 2009-4-16 23:00:30 | 显示全部楼层
USB鼠标程序

单击这里下载USB鼠标程序:http://bbs.21ic.com/upfiles/img/20093/200939144829168.rar

   USB鼠标,按键分布如下:

           K1:鼠标上移  K2:鼠标下移  K3:鼠标左键
           K6:鼠标左移  K5:鼠标右移  K4:鼠标右键


                          圈圈  2009-03-09  14:46


新硬件图:


(原文件名:发现新硬件图.gif)

出0入0汤圆

 楼主| 发表于 2009-4-16 23:02:50 | 显示全部楼层
USB转串口

单击这里下载USB转串口的全部源代码以及驱动程序:
http://bbs.21ic.com/upfiles/img/20093/2009311195553445.rar

    将程序下载到开发板中,就可以实现USB转串口的功能了。如果是第一次
使用,则需要安装驱动,安装驱动用的inf文件在源代码文件下的driver目录
下,使用硬件安装向导指定到driver目录即可。
   
    本串口支持波特率最大为115200pbs,停止位可设置为1、1.5、2bit,数据
位可设置为5、6、7、8。无校验功能。

    串口输入/输出为UART0,如果要弄成像电脑端一样的公口,则需要自己连接,
需要一条两头都是公的交叉串口线。

                                    圈圈  2009-03-11  19:48


发现新硬件图片:



(原文件名:发现新硬件图.gif)


调试过程中遇到的郁闷问题:
computer00 发表于 2009-3-11 15:41 DIY小组讨论区 ←返回版面   

13楼: 我顶他个肺!被数据手册害死了,浪费了我宝贵的看电影时间...

数据手册中明确写着控制端点一直是使能的,并且对其使能位写入也是没有影响的。
俺鬼使成差地居然信了它的话,结果过了set ctr line stat之后,控制端点就不再响应了...
我开始还怀疑是不是驱动的问题,因为之前几个程序我也是这么搞的啊,的确没有
去使能它,而且前面的枚举也通过了。真是怪了!不断地卸载、安装驱动还是不行,
换台电脑还是不行!用bus hound看到,往控制端点0再发数据已经无响应了!然后
我就在端点使能中加上一条对端点0使能的语句,我靠,控制端点0居然神奇般的复活
了!这时再发送请求已经能够得到响应。

    可接着问题又来了,在set line coding之后,主机无法收到端点0返回的状态数据包。
然后尝试在返回0长度的状态包之前,将DIR设置为0,我靠,居然神奇般地可以收到状态包了!
这一下就全通了,可以正常打开串口,并且可以收发数据了。可数据手册中明明写着,
在收到SETUP包之后,清除SETUP标志之前,将DIR位设置为1,然后就可以不用管它了。
我按照这个操作前面的都没问题,到了有数据输出的set line coding请求时,就不行了,
将DIR改为0才行。

    就被这么两个小小的地方耽搁了一天,哎...真想把ATMEL写数据手册的人揍一顿...

    现在程序基本上是可以了,不过用另外一个串口给它一阵狂发之后,就复位了!
这个应该是串口接收部分哪里有点小问题,傍晚回去继续调调看。等弄好后就把程序
发上来,可以当USB转串口使用了~~~~~也可以直接自己产生数据返回~~~~


computer00 发表于 2009-3-11 19:16 DIY小组讨论区 ←返回版面   

15楼: 跑飞的问题找到了,是因为修改中断屏蔽引起的

原来的程序我是通过操作寄存器AIC_IECR和AIC_IDCR来控制整个串口通道的中断的,结果频繁开关就跑飞了,不知道为什么...
然后我直接修改串口的中断使能寄存器US_IER0和US_IDR0来使能和打开串口的接收中断,就没事了,这个芯片真是TMD怪问题多得很~~~~

出0入0汤圆

 楼主| 发表于 2009-4-16 23:04:19 | 显示全部楼层
再来一个用户自定义HID设备的程序~~~~

单击此处下载本实验程序代码包:http://bbs.21ic.com/upfiles/img/20093/2009312142517256.rar

单击此处下载上位机测试程序:http://bbs.21ic.com/upfiles/img/20093/2009312142745364.rar


    本程序实现用户自定义HID设备的功能。用户自定义的HID设备在
windows下自带了驱动,因此用户无需自行开发驱动,可以直接操作设备。

    将程序载到学习板中,然后插到电脑上就可以出现用户自定义的HID
设备了。使用圈圈提供的上位机软件,可以显示学习板上按键的情况,
以及通过程序控制学习板上LED的亮/灭。由于该学习板只有3个LED,因此
只能控制LED2~LED4。另外也可以插上LCD,在LCD上看到更详细的情况,
可以显示LED1~LED7的状态,同时显示按键状态。

    应用程序的源代码包可以去圈圈的blog中下载:
user1/2198/archives/2008/54260.html

                                    圈圈  2009-03-12  14:25

相关图片:

(原文件名:发现新硬件图.GIF)

出0入0汤圆

 楼主| 发表于 2009-4-16 23:06:08 | 显示全部楼层
USB MIDI键盘移植到AT91SAM7S64学习板

修正程序中的一处小错误:
Usbcore.c中,
pSendData=(uint8)DeviceDescriptor;  //需要发送的数据
强制转换漏掉一个“*”号,应该修改为
pSendData=(uint8 *)DeviceDescriptor;  //需要发送的数据

单击这里下载本实验程序包:http://bbs.21ic.com/upfiles/img/20093/200931523161808.rar

    本程序包在AT91SARM7S64上实现USB MIDI键盘的功能。
打开电子琴软件或者其它的支持MIDI键盘输入设备的软件,
就可以使用该MIDI键盘进行弹奏了。不过,该学习板上只有
6个按键,只使用了K1、K2、K4、K5、K6来弹奏音符,而K3
作为程序自动弹奏的演示启动键。
    各个键分别对应的音如下:K6为C,K5为D,K4为E,K1
为F,K2为G,分别对应着C大调的1~5。
    K3为程序自动弹奏演示用,按下将自动演奏一段音乐。
   
下面这个为圈圈对自动弹奏演示的录音:
attachment.asp?FileID=13332

下面这个为电子琴小软件,除了可以使用MIDI键盘弹奏,
也可以使用普通PC机的键盘弹奏。
uploadfile-/2007-12/1215291213.rar

USB MIDI协议:
attachment.asp?FileID=13347

                                    圈圈  2009-03-15  23:02


(原文件名:发现新硬件及设置.GIF)

出0入0汤圆

 楼主| 发表于 2009-4-16 23:07:13 | 显示全部楼层
模拟的假U盘:

修正程序中的一处小错误:
Usbcore.c中,
pSendData=(uint8)DeviceDescriptor;  //需要发送的数据
强制转换漏掉一个“*”号,应该修改为
pSendData=(uint8 *)DeviceDescriptor;  //需要发送的数据

单击此处下载整个实验包源代码:http://bbs.21ic.com/upfiles/img/20093/200931614566964.rar

    本程序在21IC DIY U盘的实验板上实现“假”U盘的功能。
由程序模拟一个FAT文件系统,实现一个128M的假U盘的功能。
里面有一个test.txt的文件,可以打开它看到里面的文本信息。
由于没有使用存储器,所有从主机发下来的数据都被直接丢弃,
因此无法保存文件。该程序只做学习U盘以及FAT文件系统使用。

    接下来圈圈将启用学习板上的NAND FLASH,实现一个真正
的U盘~~~

                                    圈圈  2009-03-16  14:49


实验图片:
(原文件名:发现新硬件图.gif)

出0入0汤圆

 楼主| 发表于 2009-4-16 23:09:54 | 显示全部楼层
128MB 真U盘(含坏块管理)

修正程序中的一处小错误:
Usbcore.c中,
pSendData=(uint8)DeviceDescriptor;  //需要发送的数据
强制转换漏掉一个“*”号,应该修改为
pSendData=(uint8 *)DeviceDescriptor;  //需要发送的数据

单击此处下载该实验的程序包:http://bbs.21ic.com/upfiles/img/20093/2009327134626795.rar

下载地址2:



    本程序在21IC DIY U盘的实验板上实现“真”U盘的功能。
学习板上有一个128MB的NAND FLASH,只要实现扇区读、写以及
坏块管理,就可以在原来的“假”U盘的基础上做成真正的U盘了。

    由于NAND FLASH擦除时,只能按按块擦除,因此在写扇区时,
首先要擦除一个块。在擦除块前,必须将块内其他数据复制出来,
由于一个块比较大(128KB),无法在MCU内开辟如此大的缓冲区。
只好借助该NAND FLASH内的页复制命令,将原来的块暂时复制到
一个交换用的交换块中。但是如果仅用一个块作为交换的话,它
就会被频繁擦写,因而寿命会大大降低。所以在该系统中,保留了
10个块用来作为交换区,轮流使用。另外对扇区的连续写进行了
优化,当连续写扇区时,就不必每次重复上面的操作,只有当地址
跨块时,才需要重新擦除。连续写扇区的实现原理如下:当检测到
扇区地址跨块时,就把原来的整块数据复制到交换块中,然后将
该块内当前所写地址的前面部分页面复制到原来的块中,接着就从
交换块中取出当前扇区地址所在页(使用页复制-随机写入命令),
再把一个扇区的数据写入,并接着写入其他扇区,当扇区地址跨页
时,就把该页写入到原来的块中,直到扇区被写完(当然如果写
的过程中跨块了,还需要重复前面的块擦除以及复制过程)。接着
把交换块中剩余的页再复制回原来的块中,这样一个连续写过程就
完成了。

    因为NAND FLASH在生产和使用过程中,会产生坏块,所以必须
增加坏块管理。在该系统中,保留了50个块用做坏块管理。当上述
的擦、写过程中,如果发现坏块,那么就把该块的地址重新影射到
一个保留的块中。以后每次对该坏块地址操作时,都被重新定位到
新的块地址。使用一个二维数组来保存该影射关系。二维数组的前
半部分为坏块地址,后半部分为重新影射过后的块地址。每当发现
坏块时,就需要重建这张表(主要是增加新的影射并排序,方便地
址重新影射的二分查表法),并将其三份一样的写入到专门为此而
保留的三个块中。之所以使用三个备份保存,是考虑到这些数据的
重要性,因为一旦这个影射关系被破坏,后果将会是灾难性的。在
保存这个表格时,做了特殊处理,首先标志他们准备擦除,然后才
依次擦除并写入数据,这样即使在操作过程中突然断电,也至少有
两个块的备份数据是可以用的,在系统开机初始化时,可以将这些
数据恢复。数据使用了特殊标志(0x0055AAFF)以及累加和校验来
判断是否有效。对于新出厂的FALSH,在加载坏块表时,就会校验
失败,程序就会假设没有坏块并初始化该数组后保存。每个备用块
还由另外一个数组用来标志其状态(未用、已损坏、已用等)。
当需要使用新的备用块时,就从该数组中查找未用的,并标志为
已用。如果备用块本身是坏的,那么就标志它已损坏。该数组与
坏块重影射表一并保存。此外还保存了当前坏块的数量。

    地址的重新影射过程:当对一个地址进行读写操作时,首先要
对其进行重影射。首先判断是否有坏块,当坏块数量为0时,就直接
返回原来的地址即可。当坏块数量不为0时,先判断最后一次访问和
本次访问的地址是否属于同一页,如果属于,那么就直接影射到上
一次影射过的块地址。如果不属于,那么就需要去查坏块影射表了。
如果只有一个坏块,只要直接比较即可,不用查表。如果坏块数量
大于2,那么就需要查表。由于表中地址是按从小到大的顺序排列的,
所以可以先和第一个和最后一个判断,如果不在该范围内,那么也
不用重新影射,返回原来的地址即可。如果在该范围内,就使用二
分查表法查表,搜索它是否在坏块表中。如果是的话,就重新影射
地址,并将这个地址保存,以备下一次重影射时地址未跨块直接使用。
最大支持50个坏块,在最坏的情况下,该二分查表法需要判断6次。


                                    圈圈  2009-03-27  13:25

坏块表及FLASH存储空间划分如下图:


图一 (原文件名:影射表以及FLASH划分结构.GIF)


图二 (原文件名:磁盘图.GIF)


图三 (原文件名:发现新硬件图.gif)

出0入0汤圆

 楼主| 发表于 2009-4-16 23:11:28 | 显示全部楼层
SD转USB读卡器(硬件SPI方式)

修正程序中的一处小错误:
Usbcore.c中,
pSendData=(uint8)DeviceDescriptor;  //需要发送的数据
强制转换漏掉一个“*”号,应该修改为
pSendData=(uint8 *)DeviceDescriptor;  //需要发送的数据

单击此处下载本实验包:http://bbs.21ic.com/upfiles/img/20094/2009411142312398.rar
下载地址2:
本程序使用AT91SAM7S64自带的SPI接口读写SD卡,SPI时钟设置为24MHz。
写入速度大约为313KB/s,读出速度大约为272KB/s。
程序中没有开启DMA传输,如果开启DMA传输,并使用两个缓冲区轮流操作的话,速度应该会有所提高。

另外圈圈想发一下牢骚的是,那个官方的SD卡协议真是TMD又长又臭啊,长一点倒算了,又没逻辑性,
写得比较混乱,该清楚的地方交代得不够清楚,不该说的地方又是一堆罗嗦,小日本的文档就是这样的?
还好,网上有一些稍微简洁的介绍,让人有一个全局的概念。另外它的命令命名也真是奇怪,居然
直接用编号来命名的,我晕,这样鬼记得这个命令是干啥用的……为了简单起见,这个程序并没有
启用CRC校验,也没有对写入出错的处理,希望有空的朋友继续完善它吧。

图为圈圈使用的32MB SD卡的实验测试结果:


(原文件名:图片.GIF)

出0入0汤圆

 楼主| 发表于 2009-4-16 23:12:03 | 显示全部楼层
利用128M FLASH和VS1003B实现MP3播放器

经过周末两天不眠奋斗,终于让这个MP3播放器完工了~~~~可以播放
MP3、WMA、WAV、MIDI等文件。由于MP3模块占了LCD的位置,所以
这个播放器没得显示,这点比较郁闷……所以只能顺序选曲,不能
随便选曲……
keil CARM编译器版(下载地址1):http://bbs.21ic.com/upfiles/img/20094/200941415024895.rar

keil CARM编译器版(下载地址2):

keil RealView编译器版(下载地址1):http://bbs.21ic.com/upfiles/img/20094/20094141695421.rar

keil RealView编译器版(下载地址2):

本程序使用21IC DIY U盘开发板+MP3模块实现MP3播放器的功能。
使用板上自带的128MB NAND FLASH作为存储器,因此跳线J18要
设置为FLASH的片选。

当开机时,按住板上任意一个按键,即可进入U盘模式。可以将
音频文件通过U盘模式复制到FLASH中。可以把音频文件放在根
目录下,也可以放在创建的文件夹中(目前程序设置只支持最多
5层目录,如果需要更多的目录层次,需要自己修改程序),播放
时会自动搜索这些目录下的所支持的音频文件(包括MP3、WAV、
WMA、MID)。注意MID文件只支持格式0,其它非格式0的MIDI文件
需要自己先用软件转换为格式0。

本程序只支持FAT32文件格式,因此在格式化U盘时,要选择FAT32。
否则将无法播放音频文件。

开机时,没有任何键按下,将进入MP3播放模式。此时将自动搜索
FLASH中的文件并开始播放。播放完毕后将自动播放下一个文件。

KEY1为播放上一首;KEY6为播放下一首;

KEY2为增加,KEY5为降低,它们在调节音量、低音、高音时使用。

KEY3为播放/暂停控制。

KEY4为KEY2和KEY5功能选择键,按动KEY4时,将在3种功能下切换,
同时LED3和LED4用来指示当前状态。当LED3和LED4都灭时,KEY2和
KEY5用来调节音量大小;当只有LED3亮时,KEY2和KEY5用来调节
低音(截止点80Hz);当只有LED4亮时,KEY2和KEY5用来调节高音
(截止点8KHz)。在调节时,可以长按KEY2和KEY5以增加调节速度,
当按住1s以上不放时,将自动击键,速率为每秒20次。

                                   圈圈  2009-04-12  13:15

出0入0汤圆

发表于 2009-4-17 07:45:00 | 显示全部楼层
很好!

出0入0汤圆

发表于 2009-4-17 08:56:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-17 10:14:31 | 显示全部楼层
精品~~~~~

出0入93汤圆

发表于 2009-4-17 11:18:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-17 12:35:46 | 显示全部楼层
好,mark

出0入0汤圆

发表于 2009-4-17 13:41:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-17 15:30:38 | 显示全部楼层
圈圈是桂林的?你的书在桂林都没卖的?

出0入0汤圆

 楼主| 发表于 2009-4-17 21:49:33 | 显示全部楼层
貌似桂林那个广西师范大学出版社书店有书买呀,你看看这个http://www.bbtdxsd.com/product.asp?id=271344

出0入0汤圆

发表于 2009-4-18 14:45:36 | 显示全部楼层
太漂亮了,刚定了圈圈的书,要好好学习了

出0入0汤圆

发表于 2009-4-18 19:32:27 | 显示全部楼层
顶,圈圈最近做了不少广告啊,呵呵

出0入0汤圆

发表于 2009-5-25 18:37:06 | 显示全部楼层
COOL

出0入0汤圆

发表于 2009-5-25 20:07:51 | 显示全部楼层
mark~精品~

出0入0汤圆

发表于 2009-5-26 11:25:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-5-26 15:34:25 | 显示全部楼层
OO的都要顶.

出0入0汤圆

发表于 2009-5-28 16:58:46 | 显示全部楼层
圈圈,为什么我买的《圈圈教你玩USB》书中的USB学习PCB板和你网上发布的板子不一样的啊 ,原理图也不一样啊 原理图是那个STC DIP 封装的,而书中带的PCB是QFP封装 还有其他电路也有不一致

出0入0汤圆

发表于 2009-5-29 19:52:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-5-29 22:35:26 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2009-6-1 20:39:54 | 显示全部楼层
这个我也有点晕……书中的PCB是赞助商画的,换成贴片估计是为了省点面积吧?自己想办法解决一下问题吧...新版原理图可以在网上下载到的。

出0入0汤圆

发表于 2009-6-2 09:55:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-6-2 10:47:41 | 显示全部楼层
圈圈

出0入0汤圆

发表于 2009-6-4 15:11:10 | 显示全部楼层
顶OO

出50入255汤圆

发表于 2009-6-5 17:40:23 | 显示全部楼层
圈圈大侠,有没有一个USB设备,同时实现HID设备和U盘设备2个设备的例子?或其他2个设备也可以。

出0入0汤圆

 楼主| 发表于 2009-6-6 23:11:28 | 显示全部楼层
有的,书中第四章就有这样的例子,是同时实现USB鼠标和键盘的,而且介绍了两种方法实现。你可以参考:
http://blog.21ic.com/user1/2198/archives/2008/54259.html

出0入0汤圆

发表于 2009-6-8 14:33:55 | 显示全部楼层

出0入0汤圆

发表于 2009-7-25 17:21:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-7-25 22:22:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-7-26 00:00:50 | 显示全部楼层
高!实在是高!

出0入0汤圆

发表于 2009-7-26 00:06:36 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-7-26 00:13:03 | 显示全部楼层
哇,这个要学习一下。

出0入0汤圆

发表于 2009-8-9 20:38:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-9 21:18:55 | 显示全部楼层
写得不错,值得学习

出0入0汤圆

发表于 2010-3-5 22:30:35 | 显示全部楼层
好人啊,高手!谢谢 OO。要是社会上多些这样的好人中国发展都会更迅速了。
可惜我不是毛主席,要是我能题词的话定要写:“向 OO 同志学习!”

出0入0汤圆

发表于 2010-3-6 12:26:11 | 显示全部楼层
mark

出0入70汤圆

发表于 2010-3-7 10:43:17 | 显示全部楼层
00
果然高手

出0入0汤圆

发表于 2010-3-7 10:56:05 | 显示全部楼层
记号~~

出0入0汤圆

发表于 2010-3-10 00:06:51 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-3-13 11:48:23 | 显示全部楼层
USB转串口发送数据好像有问题。只能发送一串数据,发完后想继续发第二串数据一直都没有反应。如果此时串口接收到一串数据,又能(仅能)发送一串数据(包括前面点了发送没反应的,此时如果收到数据也会把刚才没发出的数据发出),也就是收到一串数据才能触发一次发送成功。或者把串口关闭后再开启同样又能(仅能)发送一串数据。
不知道什么原因,请指点!

出0入0汤圆

发表于 2010-4-7 20:55:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-7 22:02:36 | 显示全部楼层
标记

出0入0汤圆

发表于 2010-4-23 19:59:10 | 显示全部楼层
00厉害,学习了!

出0入0汤圆

发表于 2010-7-26 20:52:54 | 显示全部楼层
MARK

出0入0汤圆

 楼主| 发表于 2010-7-27 00:43:29 | 显示全部楼层
48楼的问题估计是没有重新使能bulk out端点。

出0入0汤圆

发表于 2010-7-31 21:03:04 | 显示全部楼层
mark!~~

出0入0汤圆

发表于 2011-5-24 16:37:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-24 16:37:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-24 17:02:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-24 18:40:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-27 16:19:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-27 17:47:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-9 19:49:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-9 21:05:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-7 16:47:43 | 显示全部楼层

出0入0汤圆

发表于 2011-11-2 17:26:21 | 显示全部楼层
收藏

出0入0汤圆

发表于 2012-1-23 08:59:21 | 显示全部楼层
标记

出0入0汤圆

发表于 2012-1-23 15:21:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-23 15:51:46 | 显示全部楼层
学习。

出0入0汤圆

发表于 2012-1-24 23:30:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-6-17 20:03:18 | 显示全部楼层
mark一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 10:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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