搜索
bottom↓
回复: 118

MP3 制作, 电路现开始公布,欢迎大家讨论.

[复制链接]

出0入0汤圆

发表于 2005-1-1 20:48:42 | 显示全部楼层 |阅读模式
网站新活动: MP3 制作,电路现开始公布,欢迎大家讨论.



下列的电路图是在网站提供的资料上修改得来的.功能可以增减,关键是有现成的东东可以参考.



希望有能力的大侠指出图中的不足和错误.以便最后定案.



点击此处打开电路图一



点击此处打开电路图2

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2005-1-1 20:52:14 | 显示全部楼层
MCU为M16, 不是M162.  支持SD卡, MMC卡, USB.


-----此内容被musich于2005-01-01,20:57:05编辑过

出0入0汤圆

发表于 2005-1-1 21:07:44 | 显示全部楼层
musich:

上传个完整的电路图吧!!
头像被屏蔽

出0入0汤圆

发表于 2005-1-1 21:25:59 | 显示全部楼层
如果这个线路图没有大的问题,就应该动手组织零件的采购,及找人设计PCB了。



注: 网站的活动不可能达成100%的共识的。只要能照顾大部分人即可。如果 musich 公布的线路图没有原则上的错误,建议大家不要再讨论了,就此定稿,以免没完没了的讨论影响项目的进行。



大家不要忘记这个活动的原则: 先是根据网上的资料,模仿制作出一只mp3,然后,大家在此基础上,进一步的修改与研究。

出0入0汤圆

发表于 2005-1-1 22:21:28 | 显示全部楼层
此USB非彼USB.

FT245BM只是串口的伪USB,在电脑上面看到的是多了一个COMx而已。传送文件要再编一个特殊软件,像最早的MP3播放器。

真正的USB接口应该是看到一个移动硬盘,可直接进行文件操作。

出0入137汤圆

发表于 2005-1-1 22:58:22 | 显示全部楼层
usb确实应该找一个好的方案

出0入0汤圆

 楼主| 发表于 2005-1-2 00:18:18 | 显示全部楼层
FT245应该不错吧, 2.0, 傻瓜型的. 方便, 还不知FT245的价位如何.知道的大侠说一声.



M162换用M16时,无真接读写XRAM功能.要用I/O来模拟,可能会拖慢数据.引脚也不同.



正在考虑之中,看来这个东东不太好搞.





至于USB,多人说375不错,支持主机/设备方式,但好象只有300K的数据速度,如何用啊?



另外,请有经验的大侠能出来顶一下,共同完成此活动, 在下怕时间 精力 水平不够,在此先行谢过.



to: yfang2 章鱼,点击放大就可以啦,我不知如何搞小,小了就看不清了.
头像被屏蔽

出0入0汤圆

发表于 2005-1-2 00:21:37 | 显示全部楼层
FT245 好像是35元左右。

出0入0汤圆

发表于 2005-1-2 00:25:58 | 显示全部楼层
我不赞成用FT245BM---一个高速的串口,如果这样,还不如直接接个MAX232好了。



当FT245BM的USB接 口连接到主机后,必须在PC机上安装一个由FTDI公司免费提供的虚拟串行口VCP(Virtual COM Port)驱动程序。该驱动程序兼容Windows 98/ 98 SE、Windows 2000/ME/XP等不同版本。用户可以在这虚拟串口上进行应用程序的开发。该虚拟串口可以像一个标准的物理串口那样被访问,可本质上所有针对虚拟串口的数据通信都是通过USB总线完成的,在设备端则通过并行I/O口完成。



  在PC端,应用VB对虚拟串口(通常为COM3)进行应用编程。我们直接应用MSComm控件,将MSComm3.CommPort置为3,MSComm3.Seetings置为“9600,n,8,1”(该速率为默认设置,实际上VCP驱动程序总是使数据以最快速率传输);通过MSComm3.PortOpen设置COM3的开关状态;通过MSComm3.Input和MSComm3.Output读入或输出数据。在读取数据时,设置MSComm3.Rthreshold的值为1。只要有数据传到PC机,就立即触发MSComm3.CommEvent事件,自动读取COM3的数据;而发送数据则可自动或手动发送,由用户自己设置。根据这些,用户就可以轻松编写自己的应用程序了。

出0入0汤圆

发表于 2005-1-2 00:41:52 | 显示全部楼层
我认为,第一个版本没必要考虑USB,大家有空去周立功的网站看一下D12的资料,复杂得很,而且还没到虚拟移动硬盘的级别-----还涉及PC端的驱动程序方面--要自己编的。

如果做不到虚拟移动硬盘,这个USB也是有名无实。

串口的用途也不大,Debug和IAP升级,平时使用是用不着的---除非用串口来低速下载MP3,有学习意义,没实用意义。
头像被屏蔽

出0入0汤圆

发表于 2005-1-2 00:57:38 | 显示全部楼层
的确如此:“真正的USB接口应该是看到一个移动硬盘,可直接进行文件操作。”



如果做不到这一点,USB的接口,就失去应用价值了。



那位知道,现在的USB外置硬盘壳,是用什么USB芯片的?当然,最好这种USB芯片,是已经带有现成的驱动程序,并且在W2K及XP下,是直接支持的。

出0入0汤圆

发表于 2005-1-2 01:14:40 | 显示全部楼层
这次的制作,在PCB上预留真正USB器件(待定,最好能支持主/从双模式)和IDE硬盘接口的位置,用途更广。

而第一次活动,仅需要完成

读取MMC上的MP3文件-----送到STA013解码 (掌握了FAT文件系统)

按键处理,LCD显示等。

(PS:MMC的MP3文件要用MMC读写器来写入,还不如IDE硬盘方便--接上电脑来拷,容量也超大20G,反正体积做不少)

学习IDE硬盘的读取----------------------读取硬盘的MP3文件来播放(难度不大,懂了FAT就能读了)

再进行USB从模式的学习------------------虚拟移动硬盘。

最后USB主模式的学习--------------------读取U盘的MP3文件来播放



考虑实际情况,USB难度大,可能难以完成。

出0入0汤圆

发表于 2005-1-2 01:25:01 | 显示全部楼层
如果经过单片机处理,我想即是用2.0的usb芯片速度也不会超过1.1的,因为单片机速度没那么快(我用51单片机和d12做的移动硬盘速度慢的无法想象,不到100k的速度,其实做移动硬盘的程序很简单,代码不到3k,可是速度不行,avr速度应该快点,但也有限),现在的USB外置硬盘壳一般是一个usb到ide的桥接芯片(不用写程序,接好电路就工作),但它是直接接硬盘的,不适合上面的mmc卡的电路,如果是用硬盘的mp3用这个倒是不错。

出0入0汤圆

发表于 2005-1-2 01:55:04 | 显示全部楼层
lbing2002:

"其实做移动硬盘的程序很简单,代码不到3k"

能否详细一点?

速度慢一点也问题不大的。

出0入0汤圆

发表于 2005-1-2 08:43:38 | 显示全部楼层
FM245BM有两种驱动程序,一种是VCP(SPEED=300KB/S),另一种是D2XX(SPEED=1MB/S)



Single Chip USB <=> parallel FIFO bi-directional data transfer

Data transfer rate of up to 1M Byte/second (D2XX drivers)

Data transfer rate of up to 300K Byte/second (VCP drivers)



请看这里:

http://www.ftdichip.com/Products/FT245BM.htm

出0入0汤圆

发表于 2005-1-2 09:09:21 | 显示全部楼层
刚解剖了我的一个硬盘盒

所用的芯片型号:ALI M5642

出0入0汤圆

发表于 2005-1-2 11:35:15 | 显示全部楼层
转载:

在整个U盘固件中,程序从功能模块上分成两个部分:USB协议的处理和对Flash的读写.

USB协议的处理又分成两个方面.

一是端点0的配置过程.所有USB设备在插入USB端口时,主机都通过地址0与设备的端口0进行通讯。在这个过程中,主机发出一系列得到描述符的请求,通过这些请求,主机得到所有感兴趣的设备的描述符,从而知道设备的情况,然后通过Set Address为设备设置一个唯一的地址,配置过程完成以后,主机就通过为设备所设定的地址与设备通讯,而不再是使用默认地址0.配置地址后,可能还要获取一次描述符,然后设置配置(Set Configuration),之后便完成了对新插入USB总线的设备的配置过程。



二是其他端点的数据通讯过程。在配置阶段中,主机已经知道了设备的端点的使用情况,以后,便可以通过这些端点来进行特定传输方式的通讯了。对于U盘来说,有两种传输方式,BULK ONLY和CBI方式,一般使用Bulk Only较多。这种传输方式要使用特定的Bulk端点,然后还要为其选择一种命令集。比如UFI或SCSI,因为Bulk端点的数据没有特定的数据格式,因此,需要使用某种命令集,来约定所传数据的格式。对于U盘固件编程来讲,就是要处理BULK端点的各种数据通讯。



除了对各个相关的端点的USB协议的处理,剩下的就是FLASH的读写问题。这里存在两个层面的问题。

一是解决Flash读写的问题,就是说你使用的Flash,先要实现成功的读写和擦除,这部分内容,是比较成熟的,一般都使用三星公司出的K9FXX08系列的,有16M(2808),32M(5608),64M(1208),138M(1G08)。它们的封装一致,只需要软件编程中稍做修改,便可以进行适应于另一种容量的存储器。



第二个层面的问题,就是在U盘通讯过程中的问题了。NAND型的Flash有个特点,不可随机存取,擦除操作一次对16K的内容进行。所以,在U盘响应过程中,不可避免要对数据进行缓存。如果你的U盘方案中有较宽裕的RAM(超过16K),这个问题变得简单,只需要开一个16K的数组,把数据存到这16K中,最后再写入Flash即可。否则,在缓冲上面是要花一些功夫的。最基本的思路是用Flash的另外一个Block做缓冲空间。



但这种方式会引发下列问题:1、速度;2、Flash的那个用来做缓存的块将比别的块使用频度大幅上升,磨损最严重,最先坏,这影响整个Flash的寿命。在实际处理中,引入了一系列的折中方案,比如,对Write命令所写的Block号进行判断,如果是整个的数据Block,则直接擦除原有内容,将数据写入。再如,对于非整个Block的数据进行缓冲,而对于整个Block的读写,不缓冲直接写入。再就是对于前面文件分配表、目录项所在的Block进行缓冲,等等。经过这些处理,可以尽可能地提高Write的速度。

出0入0汤圆

发表于 2005-1-2 12:59:15 | 显示全部楼层
如果这样的话,那就预留usb借口,用ide好了。反正现在硬盘很便宜,等这个做完,去完善usb

出0入0汤圆

发表于 2005-1-2 14:19:04 | 显示全部楼层
USB接口不好搞

当初学VC++就是想对付它

好在2000、XP都有通用的驱动

不像自己做的某些USB设备还要另编计算机驱动

出0入0汤圆

发表于 2005-1-2 17:20:07 | 显示全部楼层
呵呵,可惜我还未搞懂AVR,不过画PCB我可代劳啊。

出0入0汤圆

发表于 2005-1-3 00:48:51 | 显示全部楼层
看看这个CP2101,用来替换FT245BM。点击此处打开armok0125302.pdf

ISP1581支持USB 2.0直接与ATA/ATAPI外设相连.点击此处打开armok0125322.pdf


-----此内容被wangguanfu于2005-01-03,02:37:23编辑过

出0入0汤圆

发表于 2005-1-3 07:54:11 | 显示全部楼层
觉得还是留下u口的好,驱动可以让一些会写的人帮忙搞一下。或者直接用现成的芯片和驱动。

串口感觉有些慢

出0入0汤圆

 楼主| 发表于 2005-1-3 10:37:52 | 显示全部楼层
串口应该没多大实在意义, CP2101不实用,1581到是不错的东东,不过要专业级的水平.



要是哪位大侠有 ZLG 的开发板资料可能就好多了. 有相关资料的朋友,不防出点力.
头像被屏蔽

出0入0汤圆

发表于 2005-1-3 11:52:49 | 显示全部楼层
如果USB接口太难,建议 musich 先放弃 usb 接口。以后我们再搞一个USB的专题。

出0入0汤圆

发表于 2005-1-3 15:41:49 | 显示全部楼层
我觉得可以考虑用CH375,不是好多人都关注好久了吗?好像马老师也关注过呀,我申请样片也没消息,哪位兄弟搞过共享一下,或者至少可以在板子上留个位子!

出0入0汤圆

 楼主| 发表于 2005-1-3 20:18:33 | 显示全部楼层
不能太复杂了,要不没精力搞. 这样可能不考虑USB了.先做个SD卡或是IDE的.



明天就出差了,希望回来时,大家能有一个好的,共识的方案.

出0入0汤圆

发表于 2005-1-3 23:33:55 | 显示全部楼层
我的建议是做板子时留有位子,并且大家可以选择购买,好像是定购30片CH375以上那个公司给提供完整的C语言程序和库文件,我想大伙热情这么高,选购30片应该是小意思了,有了提供的资料,难度应该不成问题!

出0入0汤圆

发表于 2005-1-3 23:39:12 | 显示全部楼层
呵呵,如只是做IDE的,也没USB的,移植一下这里6楼http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=14662&bbs_page_no=1&sub_kind_id=1230&bbs_id=1000

发的程序,从AT90S8515移植到其它AVR也不是难事吧。在这基础上加上其它的一些功能,就是我们的了,不过USB接口还是要预留。

软件难加上USB,我们可以在硬件上解决啊,与电脑的接口就留IDE口,利用USB转IDE线和电脑通信。



可以看看我仿做硬盘MP3播放器,就是利用USB转IDE线和电脑通信的,还是USB2.0的。



http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=251382&bbs_page_no=1&sub_kind_id=1380&bbs_id=1000

出0入0汤圆

发表于 2005-1-3 23:53:09 | 显示全部楼层
补充一些说明:

硬盘:     ATA (IDE) 电脑用硬盘 (最大: 137GB) 设置为主盘

          文件系统: FAT32 全子目录存取.

          显示: LCD 20x4 (日立HD44780或者与其兼容设备),简单修改一下,也可用16X2的LCD,也可用ST7920的中文字库的LCD来显示中文.

特点:



1. 在老旧的硬盘中支持320Kbps的MP3文件重放

2. 最高支持8层子目录

3. 支持ID3v2信息标签

4. 快速的启动到工作状态

5. 开启电源后自动返回最后一次播放状态

6. 8种不同的音乐模式可供选择

7. 多曲前后跳跃

8. 目录路径显示在LCD显示屏中

9. 较好的处理和显示错误信息

出0入0汤圆

发表于 2005-1-4 10:50:35 | 显示全部楼层
ZLG 的dp-1581我有一个  还没时间用  资料可能在家里 我回去找一下再传上来  



www.zlgmcu.com 上有一些

点击打开周立功的邮购清单



-----此内容被b999于2005-01-04,11:12:14编辑过

出0入0汤圆

发表于 2005-1-4 20:08:34 | 显示全部楼层
dp-1581的资料

点击此处打开armok0125822.PDF

点击此处打开armok0125823.PDF

出0入0汤圆

发表于 2005-1-4 20:20:41 | 显示全部楼层
点击此处打开电路图

出0入0汤圆

发表于 2005-1-4 20:31:38 | 显示全部楼层
我觉得还是PDIUSBD12适合点



M64+PDIUSBD12

出0入0汤圆

发表于 2005-1-4 20:37:05 | 显示全部楼层
建议先做能用mmc卡的mp3播放器主电路板,在板上留有

1、avr模拟usb接口,可通过软件读写mmc,速度虽然慢,但是不用增加器件,只加4跟线



,还可做充电口。

2、mmc卡与读卡器接口。这样可加usb读卡器电路。

3、avr的扩展并口,用来读入其它地方的数据(如ide控制板、usb主控板等)

点击打开框图

出0入0汤圆

发表于 2005-1-4 21:43:54 | 显示全部楼层
希望能将usb功能留下来

这里有个usb转ide的资料,大家看看有没有用



点击此处打开armok0125942.pdf

出0入0汤圆

发表于 2005-1-7 00:13:41 | 显示全部楼层
USB最好有,但不要用AVR模拟,这样程序太难编写了。建议还是用pdiusb12d,前个月从图书馆借了两本USB的书来看,觉得pdiusb12d的控制还是比较简单的(比起其他很多USB芯片简单得多)。而在PC端,是不需要编写任何的驱动程序的,因为Mass Storage是Windows的标准USB设备之一,Windows自带驱程(Win98除外),只要在USB枚举时声明是Mass Storage类型就可以了。而且通过USB读写存储卡时,不需要理会FAT格式,因为Windows是用标准SCSI指令,通过bulk only模式来与USB的Mass Storage设备通讯的,命令是针对扇区的,AVR只需要根据指令和扇区进行处理即可(很多存储卡的读写也是以扇区为单位的,这与标准SCSI指令的方式一致)。

出0入0汤圆

发表于 2005-1-7 02:11:56 | 显示全部楼层
这个设计中没有大容量的存储器,看来MP3的文件放在MMC卡中了。



   因此,USB用于与PC通信,从PC下载MP3文件。那么你MP3的USB为设备, 1.1够了。2.0,MCU支持吗?



   建议使用CH375,价格合适,硬件能支持的USB协议多,还能实现OTG。只是最好使用并行扩展,对MCU的选择有影响,M16不太合适。



   作为USB的设备,MP3的程序“是不需要理会FAT格式”,那你的MP3如何从MMC卡中收缩文件和读取数据?你的MP3还要实现物理的MMC卡的存储结构和逻辑磁盘结构的转换;而且,不仅仅“只要在USB枚举时声明是Mass Storage类型就可以了”,恐怕还得实现支持Mass Storage协议(设备端的)。

   

    不了解USB的协议,不了解Mass Storage协议,不了解存储器的物理存储结构和逻辑磁盘结构的转换,你如何编写MP3的程序?这些比把数据送到STA013放出声来要难上10倍(上帝保佑,MP3的解码不需要写了,否则???),甚至100倍。

出0入0汤圆

发表于 2005-1-7 09:03:26 | 显示全部楼层
我的意思是指U盘控制的部分不需要理会FAT格式(假如做的仅是一个U盘而不是MP3),至于MP3部分,无论你用不用USB,当然要用FAT啦!文件的读取、写入过程我是知道的,虽然我接触AVR不是很久,但远在以前的DOS时代我就编写过涉及FAT的程序。MMC卡的存储结构是怎样我没有研究过,但我知道CF卡的存储结构也是基于扇区的(用TrueIDE模式控制的话),至于如果用到Flash芯片,那就需要逻辑结构到物理结构的转换。

设备端实现Mass Storage协议,主要就是实现SCSI-2的直接存取协议,对SCSI指令进行解释。我原来的意思是说,U盘的设计是不需要像上面有的朋友所说的要编写驱动程序的,并没有说只要在USB枚举时声明是Mass Storage类型就能完全实现U盘的意思。实现U盘功能需要对SCSI指令进行解释,上面已经讲过了。

出0入0汤圆

 楼主| 发表于 2005-1-7 11:38:47 | 显示全部楼层
今天刚刚回来就看到几个不错的贴!



to: machao  没记错您应该就是 阿莫 比较尊敬的马老师吧?



看有关您在网上一的些信息,猜测您在AVR,TCP/IP,ATAPI,USB方面应该有不小的建树了.



让您猜中了,我还真的:" 不了解USB的协议,不了解Mass Storage协议,不了解存储器的物理存储结构和逻辑磁盘结构  ....  甚至100倍"



我只学过几天DSP,玩ARM时了解一点非线性的NAND. 玩AVR也是后来的事.



这个MP3活动做到现在,加之你的点评,对我来说还真的有点力不从心了,时间也来不了,可否请马老师出来帮忙重新主持策划一番呢?



算是给再下一条退路(以免被网骂),也算是您给爱好AVR的 喜欢MP3的 OurAVR.com的 广大网民的爱心.

出0入0汤圆

发表于 2005-1-7 20:17:56 | 显示全部楼层
觉得有必要讨论下去了......



我不会,avr是刚学的,我听大家的.....

出0入0汤圆

发表于 2005-1-7 21:41:51 | 显示全部楼层
“但远在以前的DOS时代我就编写过涉及FAT的程序”



    dos在PC上,RAM至少512K-640K吧。M16的RAM多少?1K!你准备放什么?FAT的一个扇区?还是目录区的一个扇区?还是数据区的一个扇区?如何“折腾”他们?



    PC的程序员,没有经过特殊的训练何实践是写不了单片机程序的。他们从来不考虑资源的不够,底层的协议的实现。

出0入0汤圆

发表于 2005-1-7 22:41:14 | 显示全部楼层
在PC上处理FAT与AVR上处理FAT是不同的!

在PC上,磁盘的数据只有读入内存才能处理,而在AVR上,像CF卡、硬盘等本身就是一个挂在地址总线上的外部RAM(假如用的是M162或M128等有地址总线的AVR),那么有什么必要把扇区读到内部RAM再处理呢?

AVR有多少资源我是了解的,不要讲到好像我什么都不懂。虽然我的确有很多地方不是很懂,但一些基础的东西我还是知道的。

出0入0汤圆

发表于 2005-1-7 23:28:59 | 显示全部楼层
“在PC上,磁盘的数据只有读入内存才能处理”呵呵,你是PC的程序员吧,那你只使用“OPEN FILE”就行了,BIOS帮你找到文件放在何处。更高的水平是直接调用BIOS,你不写BIOS吧!!??



   在AVR上BIOS在何方???



   “硬盘等本身就是一个挂在地址总线上的外部RAM”??是懂还是不懂?你知道DEMO.EXE文件的内容在“硬盘RAM”的那个物理地址上开始的?

出0入0汤圆

 楼主| 发表于 2005-1-7 23:30:55 | 显示全部楼层
马老师,您老人家也做点实事,在这大家对您的印像挺好的,不要总这样说.你的几句,对我的影响可比较大.



这个项目给您来设计好不好?也算是你老作为AVR前辈 献的一份爱心.



我好象都做不下去了.最多给您老打个下手,干点粗活.



我听说硬盘有几种工作模式,其中有PIO模式和DMA模式.对于PIO模式,可以对其单字节(1/512)访问的.



而Mega16,有1K RAM, (M32有2K RAM,再不行就用M64,128. 4K 可以了吧? )



把1K拿出512B,作为MP3的数据缓存用. MP3_013当数据请求达512时,再进行一次IDE访问.再读出512B.



余下的512作其它用.这样与什么 "特殊的训练  ...资源 " 不就没关系了吗?



其实,读数据也就是找出记录数据的起始地址,长度.如此不就行了吗?



您老看,行不?

出0入0汤圆

 楼主| 发表于 2005-1-7 23:44:53 | 显示全部楼层
"在PC上,磁盘的数据只有读入内存才能处理”  那不是硬盘的问题吧,应该是CPU的问题吧!



比如P3 , P4的 L1 Cache, L2 Cache. 读进就成为数据指令集,只是加速而已.



"OPEN FILE" 是什么? 那只是在VC或是API里帮我们做好了一些函数,现在是我们要自己做而已.



不能因为 因为在AVR中找不到 "OPEN FILE" 或 "BIOS" 就说不能做吧?



要是向您那样严格起来,那AVR中也有BIOS. 物理硬件和外设的配置,本身的初始化配置....

出0入0汤圆

发表于 2005-1-7 23:55:14 | 显示全部楼层
to qwernet :“而在AVR上,像CF卡、硬盘等本身就是一个挂在地址总线上的外部RAM”不是吧,你不读一个扇区,直接访问试试,硬盘是基于扇区访问的,也就是说你尽管只需要其中的1个字节,它也是读一个扇区, 不过不把扇区读到ram中再处理倒是有可能的,但这要看什么情况了,比如已经做好文件处理找到mp3数据了,这时可以直接将数据送给解码芯片就可以了,但这不是你说的原因,原因是这里本来就不需要处理。而写扇区就更不用说了,你不用缓冲直接写其中一个字节试试? 但是1k的ram处理文件系统的读取倒是可以的,不过是以牺牲速度(如果是硬盘,那还会造成频繁访问硬盘而损伤硬盘)为代价的,不过对于自己业余做mp3倒也关系不大。

出0入0汤圆

发表于 2005-1-8 00:43:36 | 显示全部楼层
首先我个人的观点是:什么是做点实事----那就是大家把基础真正的打好,一步一步扎扎实实的提高。

   大家做MP3的目的是什么?是用,是炫耀,还是学习?用,那就买一个产品吧。如果是学习,那就看在做的过程中,我们需要掌握和学到什么?我们所掌握的知识是否能把它做下来,是否通过做,而使我们真正学到和掌握了。不是简单的搬人家的东西,就是搬别人的,也是在弄懂的基础上再搬。我在十年前到上海的一个做录象机的厂(该厂早已倒闭了)讲关于JPEG和MPEG的原理,讲了2个月的课,结束后该厂当时的总工程师对我讲,你讲的我们根本听不懂,我们的知识结构老化了。但他非常自豪的讲:“你看,我们的VCD产品做出来了!”。但现在,这个厂却没有了。这是个悲剧!

   MP3涉及到的知识比较广泛,有相当的难度。你不具备必要的知识,你如何保证你的设计能够实现。

   我看过本站关于自己制作MP3全部的帖子,没有发现在技术上有实质性内容的东西。我感到大家真正所掌握的基础,根本就连设计方案的可行性都无法讨论。只是这个网站有个例子可参考,那里有个程序可以用,应该加这个功能,可以加那个功能。这是做实事?

   看看你的“功力”吧,我仅提几个技术问题,你就到了“缴枪”的边缘了。如果目的是学习,那你就应该联合几个人,如qwernet、b999 阳光、y6807等,建立一个讨论组,把做MP3的所涉及到的软硬件、技术等详细的给出技术报告,让大家边讨论、边学习多好。我的问题,看上去是“吹凉风”,那时因为你们不能正确的回答。不要灰心,把压力变动力,赶快学,看E文,弄明白了在回答,这不是学习?

   你们把我看成技术总监吧,那么先从技术上过我的关吧:)

出0入0汤圆

发表于 2005-1-8 01:11:25 | 显示全部楼层
建议先看看MCU是怎么接CF或硬盘的!!!

有一种方案是通过74373来连接IDE口的!!以访问外部SRAM的方式来访问CF卡或硬盘的控制寄存器(设置要访问的扇区等),然后逐个字节读取或写入,你看看,这不就把CF卡或硬盘直接当作外部RAM来处理了吗?!!就像用扩展总线访问其他设备一样!



这里有一个CF卡的例子:

点击打开图片



看看别人的寄存器设置:



EVEN_Data EQU 0A400h

ODD_Data EQU 0A401h

Data_Reg EQU 0A000h ; Data Register ( R / W )

Error_Reg EQU 0A001h ; Error Register (read only)

Features EQU 0A001h ; Features Register (write only)

Sectr_Cnt EQU 0A002h ; Sector Count Register ( R / W )

Sectr_No EQU 0A003h ; Sector Number Register, or LBA0:7 ( R / W )

Cylinder_Low EQU 0A004h ; Cylinder Low Register or LBA8:15 ( R / W )

Cylinder_Hi EQU 0A005h ; Cylinder High Register or LBA16:23 ( R / W )

Drv_Head EQU 0A006h ; Drive Head Register ( R / W )

Status EQU 0A007h ; Status Register (read only)

Command EQU 0A007h ; Command Register (write only)



Device_Ctrl EQU 0A00Eh ; Device Control Register (write only)



Config EQU 8200h ; Configuration Option Register

Socket EQU 8206h ; Socket and Copy Register



再看看别人是怎样把一个扇区读到MCU的Flash上的:(这个MCU是SST的FlashFlex51MCU,型号SST89C54/58)



; Read 1 sector of 512 data bytes and write into on-chip flash of SST FlashFlex51 MCU

Read512: mov dptr, #EVEN_Data ; IDE的数据寄存器(0A400)地址放入dptr中,在之前的程序已经设置好磁头寄存器、柱面寄存器和扇区寄存器,这里没有给出。

         mov SFAH, #high(FlashAddrs)

         mov SFAL, #low(FlashAddrs) ; 这两个分别是Flash地址的高位和低位

         orl SFCF, #40h ; set IAPEN=1 to enable IAP

         mov R6, #0

         mov R7, #2

read:    movx a, @dptr



         mov SFDT, a

         mov SFCM, #0Eh ; issue Byte-Program command

         acall Done? ; wait until done

         mov a, SFAL ; adjust the address of MCU flash

         add a, #1

         mov SFAL, a

         mov a, SFAH

         addc a, #0

         mov SFAH, a

; 以上这部分是存入Flash和地址累加的部分



         djnz R6, read

         djnz R7, read



         anl SFCF, #0BFh ; disable IAP

         ret



看到了吧?

在这里读取扇区的过程就是从数据寄存器地址0A400连续读出512次,即能顺序读出扇区的内容。要做MP3的话,512个字节根本不用放到内部SRAM中,只要从0A400读出1个字节,立即送到解码器,连续512次即可。



To lbing2002:

访问硬盘的时候,硬盘是直接把一个扇区甚至几个扇区一起读到硬盘上的缓存的。但在通过IDE访问时,MCU只能逐个字节读。由于整个扇区已在硬盘缓存中,因此不存在造成频繁访问硬盘而损伤硬盘的问题。

-----此内容被qwernet于2005-01-08,01:18:27编辑过

出0入0汤圆

发表于 2005-1-8 01:16:41 | 显示全部楼层
刚才的这个例子我在这个帖子上传过了:



http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=304982&bbs_page_no=1&sub_kind_id=1398&bbs_id=1000



花了我大半个钟,终于基本弄懂I/O Mode、Memory Mode、TrueIDE Mode三种模式读写CF卡的过程。由于快要考试,在这方面我是不能花太多时间的。我打算考完试之后大干一番。

出0入0汤圆

发表于 2005-1-8 02:02:53 | 显示全部楼层
musich,祝贺你,你快要接触到做MP3的实质问题之一了。

“要是向您那样严格起来,那AVR中也有BIOS. 物理硬件和外设的配置,本身的初始化配置.... ”

  不是我严格,是你要为AVR写类似BIOS的东西,它没有PC的庞大,但必须能基本完成对硬盘操作的低层功能,同时还要写类似"OPEN FILE"的中间层,这样你的应用层才能方便的调用他们,读取(写入)硬盘的文件。



这是其他人给你的帖子:“而在AVR上,像CF卡、硬盘等本身就是一个挂在地址总线上的外部RAM”不是吧,你不读一个扇区,直接访问试试,硬盘是基于扇区访问的,也就是说你尽管只需要其中的1个字节,它也是读一个扇区, 不过不把扇区读到ram中再处理倒是有可能的,但这要看什么情况了,比如已经做好文件处理找到mp3数据了,这时可以直接将数据送给解码芯片就可以了,但这不是你说的原因,原因是这里本来就不需要处理。而写扇区就更不用说了,你不用缓冲直接写其中一个字节试试? 但是1k的ram处理文件系统的读取倒是可以的,不过是以牺牲速度(如果是硬盘,那还会造成频繁访问硬盘而损伤硬盘)为代价的,不过对于自己业余做mp3倒也关系不大。”



    我还要说明的是:

    1. 低层软件读硬盘和读CF方式是有区别的,不一样。

    2. IDE接口的标准和协议看过么?

    3. 既然“牺牲速度”,那么最低达到什么程度是底线?太慢了恐怕放出的音乐要走调了,还能听吗?

出0入0汤圆

发表于 2005-1-8 05:22:48 | 显示全部楼层
在磁盘结构中,一个文件的内容占若干的扇区,而且不一定连续。你读出一个扇区了,那么下一个扇区读那一个,再读FAT表?还是已经把该文件的链接表已经读出,保存在RAM中了?1K的RAM够不够,来回倒数据速度够不够?



   我认为,只有高手,在知道原理,并对一个参考程序有相当的把握了,同时在开发产品中才采用“根本不用理会”的方式,将代码搬来使用的。与此同时还会做相应的调整和改动,因为他是有能力的。



    “初学者根本不用理会”,既然目的是学习的话,不用理会就不是好的方式了。作者清楚的知道“这个项目还有很多难题(是非常难!!),大家还没去碰到呢。”,那对初学者来讲,还有多少个“根本不用理会”的问题。恐怕最好的“根本不用理会”就是买个现成的了:) 或让学习者买套高手设计并制作好的硬件,再将高手写好程序灌入:)



     我们系的学生都自己安装过7管收音机(现改为安装数字万用表),可是70%的人到毕业也讲不出收音机(数字万用表)的原理,自己做的东西不能工作,或坏了不能修。这样的安装制作有何作用。如果本网站也认为这是好的学习方法(因为参加学习制作的人是自愿的,应该更多的是想真正学到本领和技术的),那我就不多讲了。


-----此内容被machao于2005-01-08,05:35:18编辑过

出0入0汤圆

发表于 2005-1-8 09:29:45 | 显示全部楼层
"在磁盘结构中,一个文件的内容占若干的扇区,而且不一定连续。你读出一个扇区了,那么下一个扇区读那一个,再读FAT表?还是已经把该文件的链接表已经读出,保存在RAM中了?1K的RAM够不够,来回倒数据速度够不够?"



我的方法是:先读一个簇(即连续几个扇区),逐个字节送到解码器中(解码器一般含有FIFO,例如VS1001K就有2K的FIFO,当FIFO剩下不到32字节时认为是满。而送数据的速度比消耗数据的速度快,这时要注意的问题就是每送32个字节都要先读FIFO状态,看是不是满了)。当整个簇都送到解码器后,FIFO里面已经有近2K的缓存数据,以MP3的128-192kbps的速度来消耗的话,要需要几十毫秒了。因此,这时完全可以再访问FAT表,读出下一个簇的位置。这就不需要一开始就把整个文件的链表读入SRAM。

出0入0汤圆

发表于 2005-1-8 09:43:20 | 显示全部楼层
对于硬盘和CF卡的关系,我认为是互相兼容的(至少在做MP3的时候是这样)。因为我见过CF卡与IDE硬盘转换的电路图,只是简单地把CF卡的引脚接到对应功能的IDE引脚上,再加线性稳压器、几个电容、LED、跳针。因此,用读CF卡的方法同样也可用于读硬盘。但要注意电平不兼容,CF可用5V或3.3V,硬盘只能用3.3V。



点击打开CF卡转到IDE的图片

出0入0汤圆

发表于 2005-1-8 09:53:50 | 显示全部楼层
对于我“CF卡、硬盘等本身就是一个挂在地址总线上的外部RAM”这句话,可能你误解了我的意思。

我原意是想说明PC读硬盘和MCU读硬盘是不同的。PC读硬盘,即使用到底层的INT13H,也需要准备一个512字节的空间来接收数据。而在MCU中,可以把硬盘挂在总线上,像上面的例子那样,通过读取地址0A400的数据来达到读取的目的,可以逐个字节来处理,不一定要把512个字节全部读入后再处理。

出0入0汤圆

发表于 2005-1-8 10:36:16 | 显示全部楼层
看看这些是否对大家有帮助,是有关IDE硬盘的



点击此处下载armok0127362.txt


-----此内容被y6807于2005-01-08,15:04:04编辑过

出0入0汤圆

 楼主| 发表于 2005-1-8 10:48:51 | 显示全部楼层
to: machao   



" musich,祝贺你,你快要接触到做MP3的实质问题之一了 "  谢谢你的夸奖.

两年前我学DSP时,用VC5402做了个MP3,一样可以出声.核是移C过来的,也是IDE数据源.

5402为16位定点DSP,100MIPS的能力,MP3解码约要40MIPS,DSP是用DMA方式读入数据.

每次读入32K.约1K作为解码缓冲,防止声音中断,约是2秒读一次.速度方面,足足有余.

再说MP3常规约128K bps,也是就是16KB. 若AVR是OSC=16M,也就是每输出一个Byte数据到MP3时,AVR可以有1000T来做其它读写的事.若是每次读1/2KB的DATA,那差不多就有512K个时钟数来处理IDE读写,

而读出FAT表后,大部分的数据是连续存放的.加之IDE缓存,更加节省了MCU时间.您说不是这样的吗? 打什么基础,看什么E文? 会用AVR不就行了吗?

不是我 "缴枪" .

大家是搞技术的(我现在多是搞业务),对您(认为是高手),我们很关注,也很尊重,

而是你总是不谈一些实际问题,我很留意你的一些回复,

记得有一个网友问你关于EMI的问题,您老就搞个大大的E文过来,要人家看完了再和你说.

这里,你又要我们过什么关, " 你们把我看成技术总监吧,那么先从技术上过我的关吧 "

好, 可技术总监 是要解决实际问题的吧? 您老就帮我们看看,出个主意,应该怎么做这个东东.

您写的AVR的书,我也看过,到底怎么样,不用说了!不过真的得谢谢你为AVR作出的.



再问一下,你您的8019做的怎样了,我们打算用8029做个网络的东东,到时希望您能指点一二.

出0入0汤圆

发表于 2005-1-8 14:48:32 | 显示全部楼层
“我的方法是:先读一个簇(即连续几个扇区),逐个字节送到解码器中(解码器一般含有FIFO,例如VS1001K就有2K的FIFO,当FIFO剩下不到32字节时认为是满。而送数据的速度比消耗数据的速度快,这时要注意的问题就是每送32个字节都要先读FIFO状态,看是不是满了)。当整个簇都送到解码器后,FIFO里面已经有近2K的缓存数据,以MP3的128-192kbps的速度来消耗的话,要需要几十毫秒了。因此,这时完全可以再访问FAT表,读出下一个簇的位置。这就不需要一开始就把整个文件的链表读入SRAM。”



对大多数磁盘来说,

扇区字节数(Bytes Per Sector) 多为512字节

每簇扇区数(Sectors Per Cluster),可能为

    8扇区  ----- 4KB   //即最小单位,一个空文件也会占用4KB空间

   16扇区  ----- 8KB

   32扇区  -----16KB   //U盘所用的三星NAND FLASH芯片 1Page=512Bytes(不算C区的16字节) 1BLOCK(类似于簇)=32Pages=16KB



请问你真的用2K RAM来读过吗?

出0入0汤圆

发表于 2005-1-8 14:57:40 | 显示全部楼层
何谓硬盘寻道时间?

IDE硬盘多为8~12mS,就是说,在文件不连续时,磁头要随机跳到另一个地方读取数据最大可能需要这么长的时间。

MCU的内部RAM都比较少,无法预先缓冲大量的数据(CD随身听的数码抗震用了xMB的DRAM),所以市面上很多简单的MP3硬盘播放器都只支持顺序文件的播放,即硬盘上的每一个MP3文件的数据必须是连续存放的。

请先进行磁盘整理。

出0入0汤圆

发表于 2005-1-8 15:01:56 | 显示全部楼层
AT90S8515+STA013+CS4334的方案的硬盘MP3我仿做过:



8515在4M晶体时放位速256K,比特48K的MP3歌曲都无问题,放位速320K,比特44K的MP3歌曲也无问题,但放位速320K,比特48K的MP3歌曲就会出现声沉(慢了)。

把8515的晶体一换成8M的就全部OK了。



记得在486电脑时代,我的AMD的133M的CPU也放不了位速256K的MP3,位速128K的也要用单声道来听才连续,才不会断断续续

出0入0汤圆

发表于 2005-1-8 15:31:52 | 显示全部楼层
to qwernet :

“"在磁盘结构中,一个文件的内容占若干的扇区,而且不一定连续。你读出一个扇区了,那么下一个扇区读那一个,再读FAT表?还是已经把该文件的链接表已经读出,保存在RAM中了?1K的RAM够不够,来回倒数据速度够不够?"

我的方法是:先读一个簇(即连续几个扇区),逐个字节送到解码器中(解码器一般含有FIFO,例如VS1001K就有2K的FIFO,当FIFO剩下不到32字节时认为是满。而送数据的速度比消耗数据的速度快,这时要注意的问题就是每送32个字节都要先读FIFO状态,看是不是满了)。当整个簇都送到解码器后,FIFO里面已经有近2K的缓存数据,以MP3的128-192kbps的速度来消耗的话,要需要几十毫秒了。因此,这时完全可以再访问FAT表,读出下一个簇的位置。这就不需要一开始就把整个文件的链表读入SRAM。 ”



看来你根本没打算进行文件系统的处理啊,请你仔细看我前面所说的“但是1k的ram处理文件系统的读取倒是可以的,不过是以牺牲速度(如果是硬盘,那还会造成频繁访问硬盘而损伤硬盘)为代价的,” 我说的是文件处理的时候用小内存是要频繁访硬盘的,唉,看来你还没清楚进行文件处理所要做的工作,你还是实际做了之后来讨论吧,等你用单片机做了文件系统之后就会明白了。

出0入0汤圆

发表于 2005-1-8 18:29:42 | 显示全部楼层
to HJJourAVR: 我说“读一个簇”并不是指一次过读到内存,我是逐个字节直接送到解码器的,这只需要几个寄存器就可以了。你是不是理解成把簇先读取到一个数组再把数组的数据送到解码器了?不需要这样做的。

你说到的寻道时间,如果用CF卡的话是没有这个问题的,假如用到硬盘的话,似乎有些问题,因为磁头一来一回,似乎也浪费了几十毫秒,但实际上并不需要担心,因为之前已经读过FAT区的某个扇区了,现在再读一次的话,以硬盘缓存的处理机制,它会认为是缓存命中了,因此磁头并不会移回到FAT区,等到你请求未读过的新数据时磁头才会移动。



to lbing2002:FAT与文件存储的关系我是了解的,FAT16格式的文章我看过很多。可能你还是误解了我的意思。其实我最初的意思是,实在没有必要把任何一个扇区完整地读入内存。单片机文件系统我肯定是要做的,但这个MP3活动我是没有时间参加了,只能等我考完试我再自己做,到时候再和你讨论。

出0入0汤圆

发表于 2005-1-9 00:06:32 | 显示全部楼层
原来大家争论起来了。

不过看起来,以上好象还没几个真正做过FAT类。

2004年初我做了个产品(www.gbaline.com),用AVR直接读NAND的数据。

单是FAT的问题花了成个月,而且还要很多时间去完善。

读储存器类(U盘、卡)与硬盘,两种FAT的原理上可说是一样的,但实际操作中,根本不是一回事。

说一下AVR处理FAT,开始我也想用M8处理FAT,后来发现不行,主要是资源不足(RAM太少),勉强是可以的,但速度慢得不实用。

用AVR处理FAT,只要是RAM不足。至少要一个512Byte的缓冲。

另外,处理FAT是很麻烦的事(FAT本身不麻烦,只是大家都把FAT叫熟了,把它当文件系统),建议如果不是商用,而业余时间不多的情况下, 还是玩玩其他算了。

当然,如果只是仿做,不用理解,只求做出来的话,那就是另外一回事了。

出0入0汤圆

发表于 2005-1-10 19:35:57 | 显示全部楼层
为什么不试试 51系列中的专用MP3开发芯片呢?支持IDE、USB 应该是不错的选择把,

一片搞掂.

出0入0汤圆

发表于 2005-1-13 19:53:21 | 显示全部楼层
我看大家还是这样吧,先给老外的作品写中文注释,既学到知识,又方便别人。

我看这个不错,大家来给每一行写中文注释怎么样?



http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=243762&bbs_page_no=1&sub_kind_id=1380&bbs_id=1000

出0入0汤圆

 楼主| 发表于 2005-1-13 21:49:52 | 显示全部楼层
fsclub 提及的这个方案确实不错.

但电路中不知何故,硬盘数据位和M128的数据没有一一对应.

在读写硬盘时,要在程序中一位位的换算.

又由于是硬盘的接口,处于数据交换的最底层,所以造成了M128 速度的巨大浪费.

若模仿,最好改为D7..0一一对应.



若用IDE, 强列建议各位采用此方案. ( 本人也在模仿中... )

出0入0汤圆

发表于 2005-1-14 19:28:36 | 显示全部楼层
可能为了做板方便,单面搞定不容易

出0入0汤圆

发表于 2005-1-15 00:03:25 | 显示全部楼层
我做过ZipAmp的再开发工作.也学到了很多东西.我现在能解码MP3文件基本信息,比如bitrate,sampling rate,然后完成时间显示.ID3解码也能运用自如.硬盘结构也比较清楚.ZipAmp的硬件很简单,程序也很好,应该对搂主设计MP3很有用.我的MP3正在改进中,主要目的的继续改进文件系统管理和显示键盘操作.

出0入0汤圆

发表于 2005-1-15 11:07:48 | 显示全部楼层
另外一些技术性问题我也要纠正:

HJJourAVR 说的:

对大多数磁盘来说,

扇区字节数(Bytes Per Sector) 多为512字节

每簇扇区数(Sectors Per Cluster),可能为

    8扇区  ----- 4KB   //即最小单位,一个空文件也会占用4KB空间

   16扇区  ----- 8KB

   32扇区  -----16KB   //U盘所用的三星NAND FLASH芯片 1Page=512Bytes(不算C区的16字节) 1BLOCK(类似于簇)=32Pages=16KB



请问你真的用2K RAM来读过吗?   



"8扇区  ----- 4KB   //即最小单位,一个空文件也会占用4KB空间 "真是这样的吗?在FAT的spec中,空文件系统根本就没分配空间给文件,也就是说他占用的cluster为0.只有文件有大小,甚至一个byte,他也会占用一个cluster.

   另外我想说的是,M16已经足够做IDE了,只要你对IDE和FAT充分理解,用1KB RAM做数据处理绰绰有余.ZipAmp甚至通过512bytes的RAM做了mp3,在8M晶体的情况下,放320kbps的文件没有任何问题(在不支持硬盘碎片).至于什么是硬盘碎片,到底是什么产生的,各位真正明白吗?文件产生碎片后,他的FAT会发生什么变化?(马老师可能比较清楚).我们做硬盘MP3时候,软件不是要一下子完善了,你可以先不做追踪文件cluster,直接连续读取.那样简单很多.这个方案我已经在使用,缺点很不明显,值得考虑.可以先不考虑那么复杂,等完全明白了硬盘低层操作后,然后继续完善.我们做这个最重要是学习.我要强调:IKB RAM足够学习IDE,FAT和做一个实际的mp3了.

   以上是我的一点建议.

出0入0汤圆

发表于 2005-1-15 12:42:36 | 显示全部楼层
musich:

fsclub 提及的这个方案确实不错.

但电路中不知何故,硬盘数据位和M128的数据没有一一对应.

在读写硬盘时,要在程序中一位位的换算.

又由于是硬盘的接口,处于数据交换的最底层,所以造成了M128 速度的巨大浪费.

若模仿,最好改为D7..0一一对应.



若用IDE, 强列建议各位采用此方案. ( 本人也在模仿中... )

------------------------------

很可能是为了但面板布线方便!



我联系到了作者,他给了PDF的PCB,单面的,有几根飞线,很不错!感谢作者!但有点问题,就是要放大到109%才是真实大小,哪位高人想办法解决一下?



另外,还有PC机上管理播放机上文件的软件MP3 Manager,但作者说不"perfect",就不发了,哪位高人写一个PC机上管理播放机上文件的软件啊?



我现在在公司,上传不了文件,晚一点再传.

出0入0汤圆

发表于 2005-1-16 19:39:40 | 显示全部楼层
musich及众多mp3自制的爱好者:



建议不要再太多商讨什么了,大家热情都很高,如果再拖延下去,会冷却下去的。如果试图讨论出什么完美的方案,就需要许多的有实际经验的专家坐下来交流了。



现在只要初步保证设计方案的正确性,电路图设计正确,程序设计正确,到时做出来的东西能播放声音就行。至于能播放多好多炫的效果,就先别考虑了。毕竟这只是个活动,不是个商业化的项目,不需要、也不能考虑那么细。



甚至,最坏的考虑,哪怕这一次活动不完善,那也有失败的收获,只要大家有信心,还可以组织第二次、第三次。。。第N次活动。



既然认准了方向,就要走下去。何况,前面已经有很多人帮我们开出了路,我们不需要在黑暗中摸索。别畏首畏尾的,打头的要果敢,领着大家往前走!

出0入4汤圆

发表于 2005-1-19 12:59:06 | 显示全部楼层
建议使用mega128,毕竟空间比较大。以后自己想添加东西也方便。我们不是作批量产品的,成本多几十元也没有什么关系。

存储用硬盘比较好,因为不考虑随身携带的情况,搞个以前的老硬盘很容易,容量大代价低(2.1G的硬盘找朋友给盒烟应该就能换来了,如果单位有淘汰的机器,呵呵,但1G的cF要600RMB)。

讨论了这么久了就是两个问题:

1。CPU用低端还是高端的?

  低端:便宜、板子相对简单(仅指管脚较少)、够用就行

  高端:略贵、板子复杂些,有自己扩展的余地

2。存储设备

  硬盘:容量大,不能携带,可能要考虑寿命问题

  存储卡:体积小,可以和数码相机等的共用

  USB:优盘或USB硬盘盒,常见的装备,软件可能会复杂些

胡扯一通,实在是心里着急,嗜血蜗牛说的很对,再等下去黄花菜都凉了。

出0入0汤圆

发表于 2005-1-24 23:40:06 | 显示全部楼层
做mp3用atmel公司的at89c51snd1c就可以了,集成IDE接口,USB接口,单芯片,内部集成51内核.外部接个液晶和DA芯片就可以用了,没必要非要搞个avr,还要外面配这么多芯片,在这个活动中大家主要是要学到东西,选什么芯片还在其次.

出0入0汤圆

发表于 2005-1-24 23:51:52 | 显示全部楼层
不如让我来领跑吧,我有at89c51snd1c的方案,自己做的,看这么多贴,还没有一个象样的规划,不行的,说归说,能说不一定能做,要做就要扎扎实实的,搞这么多的话干吗?

认可的话E-MAIL联系:toplowpersonal@hotmail.com

出0入0汤圆

发表于 2005-1-25 08:08:32 | 显示全部楼层
这里是www.OurAVR.com

中文    我们的AVR

这里的一切应用皆面向AVR芯片。

出0入0汤圆

发表于 2005-1-25 23:02:35 | 显示全部楼层
1。CPU用低端的好点

   m8或m16 + mmc 或 sd 应该可以工作.

   至于usb 或 ide 可以再用一个cpu控制.  模块化设计, 成本也低点  



2。存储设备

  可先做使用存储卡的 电路简单

  

  留一个扩展数据口, 硬盘、优盘或USB硬盘盒可用另一个cpu读出数据后送入扩展数据口。

出0入0汤圆

 楼主| 发表于 2005-1-26 11:19:52 | 显示全部楼层
to: toplow 谢谢你的支持.若板主同意,当然可以.

由于本人的时间,精力,水平的限制,这个项目个人觉得实现难度较大.

若哪位大侠愿出来领队,本人当感激不尽...




-----此内容被musich于2005-01-26,11:25:38编辑过

出0入0汤圆

发表于 2005-1-28 03:34:35 | 显示全部楼层
有没有搞错啊!!!!现在还在争论能不能用MCU读FAT??



初来报到就要泼大家冷水了,这个东西两年前我就在广州见到有得卖了,当时才185元.



人家用90s8515做的,都是现成的产品了,看看图片吧.



做项目之前应该先做市场调查,不然搞了一个几年前就有的产品,还很兴奋.



人家才卖185元.



出0入0汤圆

发表于 2005-1-28 08:31:52 | 显示全部楼层
我们是说在单片机只用内部RAM的情况,如果是外接SRAM ROM什么的,51也能跑全功能的TCP/IP了。



"这个东西两年前我就在广州见到有得卖了,当时才185元."

不会吧?那时MP3还不便宜呢,AT90S8515恐怕也要20元多,+ MP3解码芯片 +DAC芯片 + 1602LCD+.....?

电容也是贴片的。全贴片,工艺也不便宜。

出0入0汤圆

发表于 2005-1-28 09:12:18 | 显示全部楼层
http://tv.intozgc.com/rmzt/?group_id=16

上面有百元成本的mp3,好像跟80楼的差不多

出0入0汤圆

发表于 2005-1-28 10:06:29 | 显示全部楼层
80楼那个在http://www.jm71.com/上有 180

出0入0汤圆

发表于 2005-1-28 10:38:11 | 显示全部楼层
http://www.jm71.com/

那里所有的东西都是特价,贩卖的都是二手设备的拆机件。

LCD 1602液晶屏 零售8元/片 10以上包邮 20或以上6.5元包邮 100片起批发4.5元/片(不包邮)

市面上可不是这个价。



成本是在百元以下,但如果是你做这个MP3,零售180元,你愿意吗?别说两年以前。

出0入0汤圆

发表于 2005-1-28 11:55:40 | 显示全部楼层
看了中关村的介绍 http://tv.intozgc.com/rmzt/?group_id=16

下载了的原理图 http://www.zgctv.com/image/200501/04-pic-mp3.pdf

绝对是吹水!



电源电路都有问题,哪来3.3V给芯片供电?

出0入0汤圆

发表于 2005-1-28 15:30:45 | 显示全部楼层
LM3840的IN应该接到7805的OUT上。

这个方案不是假的,在全世界有很多人在用,你到GOOGLE上搜一下zipamp看一下就知道了,这个方案很多人研究过的。

出0入0汤圆

发表于 2005-1-28 17:03:50 | 显示全部楼层
TO :HJJourAVR 我是表示坚决同意你的观点的,因为我就亲自试过用AVR访问硬盘,所以才拿这个东西出来证明你的观点.



你不用跟他们争论能不能实现的问题,毕竟他们只是停留在理论知识上.



但这个东西我真的是用185元买回来的啊,在2004年1月15日买的,还有单据.应该2003年就有买了吧.2005年-2003年=2,所以说2年前咯. STA013是在2000年推出的一款芯片.



不过依然支持MP3这方面的技术交流.

出0入0汤圆

发表于 2005-1-28 19:12:32 | 显示全部楼层
做MP3主要是为了学习,如果不把它看做是一个MP3而看做是一个带有MP3\多种存贮介质读取\USB接口\LCM等一块高档实验板,这样就好了,也就没了那么多的商品之类的争论了.

强烈建议USB使用CH375,还可以USB HOST,用U盘来当存贮介质.学什么都是学,提高一点点成本,但提供了一个试验板功能,又有什么不好?

出0入0汤圆

发表于 2005-1-31 19:09:17 | 显示全部楼层
一次学那么多,吃不消。 用avr很容易读取mmc卡,这里也有文件系统。  硬盘的实用性也不好,1G的卡600多元,很快6G的卡普及。 大家手里的各种卡很快就淘汰了,还是这个卡的方案最好。

出0入0汤圆

发表于 2005-2-2 14:49:18 | 显示全部楼层
我觉得可以把它做成一个带mp3功能的实验板啊

现在讨论来讨论去都没定下来

出0入0汤圆

发表于 2005-2-2 17:32:28 | 显示全部楼层
我想活动的目的是学习,通过制作mp3丰富avr的知识,可能还包括程序编写、调试,pcb的照设计制作,学习存储卡\硬盘的基本操作等等,不同的人可以从中学到不同的东西,即使是刚入门者,也可以完全照搬别人的来提高对avr的兴趣从而逐步入门,......管他以前有没有人做过,管他市场上有没有类似的成品。如果只是想听mp3,可不必参加这个活动,买一个不就行了?



支持AT90S8515+STA013+CS4334+mmc/sd卡方案,其他的如usb等可以预留接口,以后扩展,我想可以把最基本的系统作出来,剩下的东西可以自己往上加,你可能想用彩屏,他可能根本就没打算用液晶屏,有的可能想用3310lcd,自己慢慢实现吧,这样才有提高,不可能什么都让别人替你做好的,不然买成品不是更方便。



感谢各位领头人的辛勤努力!

跟着你们学啦!!

出0入0汤圆

发表于 2005-2-5 10:30:00 | 显示全部楼层
还没有定下来啊??????????我想先做一个用MMC的吧

出0入0汤圆

发表于 2005-9-18 19:11:26 | 显示全部楼层
要想全兼容,干脆找一个读卡器的ic弄上去好了,什么卡都支持,包括硬盘,最好能用arm9的处理器写一个usb底层驱动,什么都可以读了,包括视频文件,要觉得还不过瘾干脆自己买台电脑,那样什么事都能干了,我想我们要做的话,脚踏实地重头干起,干吗非得要mmc卡的呢?干吗非得要用单片机读写usb口呢?我想外接芯片可能是最简单可行的,如果在外接芯片的同时能用单片机控制得当一样是很好用的。大家可以看看这里,http://www.cdream5.com/htm//HDDMP3_01.htm

我觉得动手才是最重要的,光说不练是没有用的,我们都不想产生垃圾,但是谁想过会把硬盘mp3带出家,我们不在乎它的实用性,在乎的是能否通过这次活动使我们学到更多的东西,如果要方便,要实用,那为什么不出去买成品呢?外面一个硬盘mp4播放器才300块不到,我们这里diy的mp3播放器如果用足料的话需要200块好远。何必呢?因为我们需要的是学习,而不是拿来就用,所以方案不统一是肯定的,如果大家都做得同样的,就还不如出去买成品好了。

出0入0汤圆

发表于 2005-9-18 20:15:05 | 显示全部楼层
硬盘MP3 IDE-USB2.0部分方案可参见http://www.cdream5.com/htm/IDEtoUSB20.htm,已经制作测试通过, GL811E的的零售价格在1x~2x元左右,使用起来也很简单 是个比较具性价比的片子。

出0入0汤圆

发表于 2005-10-13 20:00:40 | 显示全部楼层
请教各位如何用VC做MP3播放器.

出0入0汤圆

发表于 2006-2-8 10:27:36 | 显示全部楼层
板子出来了吗?建议用vs1011,vs1003啊~sta013好像很多mp3不能播放啊~~~~

出0入0汤圆

发表于 2006-2-18 16:37:57 | 显示全部楼层
小弟过年刚回来就见这里真热闹啊,快100楼了,不知道方案定下来没有。小弟买了Crack的VS1003B,可惜过年在家没条件,没来及做。看了上面各位大侠讨论发现很多困难在后面。

出0入0汤圆

发表于 2006-2-19 15:28:35 | 显示全部楼层
邮购部用的sta013是拆机吗?在google搜索到这个:



OurAvr

STA013为正规MP3工厂从一块进口小板上拆下来的部件。全部经过测试与清洗,外观上几乎 看不出是拆机件。 --------------------------------------------------------------- -------------------------. 开关电源(9V/1A) (分类:电源相关零件) 货号: 1955 ...

www.ouravr.com/shop/product_ list.jsp?id=1680&sup_id=0 - 102k - 网页快照 - 类似网页
头像被屏蔽

出0入0汤圆

发表于 2006-2-20 04:17:40 | 显示全部楼层
是的。不过从外观上看不出是拆机件,并且只是焊到了板上,再拆下来,从来没有使用过。为了保证质量,全部均经过测试后才出货。故我们打折出售。



不过这批零件已经销售完了。我们正在寻求新的货源。

出0入0汤圆

发表于 2006-2-22 09:02:44 | 显示全部楼层
顶到100楼

出0入0汤圆

发表于 2006-3-1 18:13:58 | 显示全部楼层
没动静了,再顶顶,百尺竿头更进一步

出0入0汤圆

发表于 2006-3-1 19:16:37 | 显示全部楼层
To cdream:

    能说下GL811用吗?给个范例,英文数据手册看不太懂,也很费时间。

出0入0汤圆

发表于 2006-3-30 22:15:38 | 显示全部楼层
你们能用VS1003解码IC做一个USB MP3吗?

我有方案  电路图给大家看,谁能写出USBHOST单片机?

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

本版积分规则

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

GMT+8, 2024-5-15 09:50

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

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