با سلام .
من یک ماژول VS1003 خریدم .
اونو به مگا 32 با این شماتیک وصل کردم . پایه های TX , RX را به جایی وصل نکردم .

http://www.up2.98ia.com/images/05845720100353587717.jpg
بقیه پایه هم عینا نام پایه هایی که روی ماژول نوشته .
فایل LISTA.TXT تو MMC یخته میشه ولی هیچی توش نیست .
MP3 هم پخش نمیشه حتی اگه اسم فایلو مستقیم ارسال کنم .
اینم سورسم ؟؟
من یک ماژول VS1003 خریدم .
اونو به مگا 32 با این شماتیک وصل کردم . پایه های TX , RX را به جایی وصل نکردم .

http://www.up2.98ia.com/images/05845720100353587717.jpg
بقیه پایه هم عینا نام پایه هایی که روی ماژول نوشته .
فایل LISTA.TXT تو MMC یخته میشه ولی هیچی توش نیست .
MP3 هم پخش نمیشه حتی اگه اسم فایلو مستقیم ارسال کنم .
اینم سورسم ؟؟
کد:
'/////////////////////////////////////////////////////////////////////////////// '/////////////////////////////////////////////////////////////////////////////// ' ' MP_3_PLAYER with VS1001k FOR MP3.FILES FORMAT Name 8.3 FAT16 AVR-DOS 5.5 ' data 14-06-2007 versione BASCOM 1.8.11.3 AVR-DOS 5.5 ' written by GIOVANNI DE LUCA ' HTTP://delucagiovanni.interfree.it robot applications and others ' HTTP://WWW.LNS.INFN.IT nuclear phisics applications ' HTTP://www.youtube.com/tubincolo my video mobile-robots ' deluca@lns.infn.it my e-mail ' to control it's used serial port com1 and pul "UP" to change songs ' to make test I used 64Mb MMC with 20 songs in the MMC ' but I thing that it's possible read bigger MMC memory without problem ' '/////////////////////////////////////////////////////////////////////////////// '/////////////////////////////////////////////////////////////////////////////// $prog &HFF , &H4F , &HC5 , &HFF 'FUSE BITS generated $regfile = "M32def.dat " 'IT'S POSSIBLE USE DIFFERENT AVR-CHIPS $crystal = 8000000 Config Porta = Output Porta = 0 Set Porta.0 Wait 3 Reset Porta.0 'BUT this NOT TESTED '------------------------------------------------------------------------------- Config Timer1 = Timer , Prescale = 64 Config Clock = Soft Enable Interrupts Enable Timer1 On Timer1 Timer_1 Config Date = Dmy , Separator = . '------------------------------------------------------------------------------- Vs_clock Alias Portd.6 Vs_mosi Alias Portd.5 Vs_miso Alias Pind.4 Xcs Alias Portd.3 Bsync Alias Portd.2 Dreq Alias Pind.1 Xreset Alias Portd.0 Led Alias Portb.5 Avanti Alias Pinb.6 '------------------------------------------------------------------------------- Config Avanti = Input 'pulsante avanti Config Led = Output 'led Config Vs_miso = Input 'serial input vs-1001 Config Vs_mosi = Output 'serial out vs-1001 Config Vs_clock = Output 'serial clock vs-1001 Config Xcs = Output 'VS Chip Select Config Xreset = Output 'VS Reset Config Dreq = Input 'VS Data Request Config Bsync = Output 'VS Stream Request '------------------------------------------------------------------------------- Declare Sub Vs_init() Declare Sub Soft_reset() Declare Sub Vs_write(byval Vs_address As Byte , Byval Data1 As Byte , Byval Data2 As Byte) Declare Function Vs_read(byval Vs_address As Byte) As Word Declare Sub Send_mp3(byval Filename As String) '------------------------------------------------------------------------------- Const Vs_rd = &B0000_0011 'Write command vs1001 Const Vs_wr = &B0000_0010 'Read command vs1001 Const Vs_mode = 0 Const Vs_status = 1 Const Vs_clockf = 3 Const Vs_decode_time = 4 Const Vs_audata = 5 Const Vs_volume = 11 '------------------------------------------------------------------------------- Dim B As Byte Dim I As Integer Dim J As Long Dim Curbyte As Long Dim S As String * 20 Dim Sample_rate As Word Dim Bit_rate As Word Dim Is_stereo As Word Dim Audata As Word Dim Filename As String * 11 Dim Mmc_data(512) As Byte '512 byte Dim Tempo_new As Word Dim Tempo_old As Word Dim Flag_read As Bit Dim Flag_play As Bit Dim Comando As String * 10 Dim Mode_low As Byte Dim Mode_hig As Byte Dim Volume As Word Dim Volume_low As Byte Dim Volume_hig As Byte '------------------------------------------------------------------------------- $include "Config_AVR-DOS.BAS" $include "Config_MMC.bas" Wait 3 B = Drivereset() If Drivecheck() <> 0 Then Set Porta.0 Wait 2 Reset Porta.0 End If If Driveinit() <> 0 Then Set Porta.1 Wait 2 Reset Porta.1 End If If Initfilesystem(1) <> 0 Then Set Porta.2 Wait 2 Reset Porta.2 End If '------------------------------------------------------------------------------- Bsync = 0 Xreset = 0 Xcs = 1 Portb.6 = 1 'res pull up Flag_play = 0 'sta suonando ? Flag_read = 1 '------------------------------------------------------------------------------- Open "Lista.txt" For Output As #9 Print #9 , "Ali - SOHEIL" 'create file.list in MMC S = Dir( "*.mp3") While Len(s) > 0 ' Print S ; " " ; Filedate() ; " " ; Filetime() ; " " ; Filelen() Print #9 , S 'memorizza la lista S = Dir() Wend Close #9 End 'gia letto ? '------------------------------------------------------------------------------- '-------------------------- PROGRAM START ------------------------------------- '------------------------------------------------------------------------------- Set Porta.4 Vs_init Wait 3 'reset hardware e inizializza Reset Porta.4 Wait 1 '------------------------------------------------------------------------------- '--------------------------- MAIN PROGRAMM ------------------------------------- '------------------------------------------------------------------------------- S = "azan.mp3" Set Porta.4 'READ filename Mp3 Call Send_mp3(s) Set Porta.3 'play mp3 End '( Do Open "Lista.txt" For Input As #9 'OPEN LA LISTA While Eof(#9) = 0 Line Input #9 , S 'READ filename Mp3 Call Send_mp3(s) 'play mp3 Wend Close #9 Loop End ') '------------------------------------------------------------------------------- '---------------------------- TIMER 1 ------------------------------------------ '------------------------------------------------------------------------------- Timer_1: If Bsync = 0 And Flag_play = 1 And Flag_read = 1 Then 'per leggere inforamzioni Flag_read = 0 Audata = Vs_read(vs_audata) Sample_rate = Audata And &H1E00 Rotate Sample_rate , Right , 9 Bit_rate = Audata And &H1FF Is_stereo = Audata And &H8000 Rotate Is_stereo , Right , 15 ' Print Sample_rate ; "," ; Bit_rate ; " Kbs," ; Is_stereo 'print informations End If If Bsync = 0 And Flag_play = 1 And Flag_read = 0 Then Tempo_new = Vs_read(vs_decode_time) ' If Tempo_new <> Tempo_old Then Print Tempo_new ; " Sec" Tempo_old = Tempo_new End If Return '------------------------------------------------------------------------------- '------------------------------ MP3 SUBROUTINES -------------------------------- '------------------------------------------------------------------------------- Function Vs_read(byval Vs_address As Byte) As Word Xcs = 0 'Xcs low B = Vs_rd Shiftout Vs_mosi , Vs_clock , B , 1 Shiftout Vs_mosi , Vs_clock , Vs_address , 1 B = 0 Shiftin Vs_miso , Vs_clock , B , 1 Vs_read = B Shift Vs_read , Left , 8 B = 0 Shiftin Vs_miso , Vs_clock , B , 1 Vs_read = Vs_read + B Xcs = 1 'Xcs high End Function '------------------------------------------------------------------------------- '-------------------------------- WRITE ROUTINE -------------------------------- '------------------------------------------------------------------------------- Sub Vs_write(byval Vs_address As Byte , Byval Data1 As Byte , Byval Data2 As Byte) Xcs = 0 B = Vs_wr Shiftout Vs_mosi , Vs_clock , B , 1 Shiftout Vs_mosi , Vs_clock , Vs_address , 1 Shiftout Vs_mosi , Vs_clock , Data1 , 1 Shiftout Vs_mosi , Vs_clock , Data2 , 1 Xcs = 1 End Sub '------------------------------------------------------------------------------- '------------------------------- RESETTA E INIZILIZZA -------------------------- '------------------------------------------------------------------------------- Sub Vs_init() Xreset = 0 Waitms 5 Xreset = 1 Waitms 10 Do : Led = Dreq : Loop Until Dreq = 1 Vs_write Vs_mode , &H0 , &H4 'reset Do : Led = Dreq : Loop Until Dreq = 1 Vs_write Vs_mode , &H0 , &H0 Do : Led = Dreq : Loop Until Dreq = 1 Mode_low.7 = 0 'set to zero Vs_write Vs_mode , &H4 , Mode_low 'bass Do : Led = Dreq : Loop Until Dreq = 1 Vs_write Vs_mode , &H4 , &H40 Do : Led = Dreq : Loop Until Dreq = 1 Vs_write Vs_clockf , &H9B , &HE8 'clockf 12.288 MHz VS1003 Do : Led = Dreq : Loop Until Dreq = 1 Vs_write Vs_volume , &H0E , &H0E 'volume =0 massimo End Sub '------------------------------------------------------------------------------- '--------------------------- SOFT RESET VS1001 --------------------------------- '------------------------------------------------------------------------------- Sub Soft_reset Do : Led = Dreq : Loop Until Dreq = 1 'wait Dreq Vs_write Vs_mode , &H0 , &H4 'reset End Sub '------------------------------------------------------------------------------- '---------------------------- SEND FILE MP3 ------------------------------------ '------------------------------------------------------------------------------- Sub Send_mp3(byval Filename As String) Soft_reset 'resetta vs1001 Flag_read = 1 'per leggere una volta sample rate etc Flag_play = 0 'inizia a leggere dopo che è stato letto il primo pacchetto Open Filename For Binary As #10 'apri il file mp3 e play song Do : Led = Dreq : Loop Until Dreq = 1 'wait Dreq While Eof(#10) = 0 Get #10 , Mmc_data(1) , , 512 'preleva 512 byte Do : Led = Dreq : Loop Until Dreq = 1 'wait Dreq For I = 1 To 16 For J = 1 To 32 Bsync = 1 Shiftout Vs_mosi , Vs_clock , Mmc_data(curbyte) , 1 Bsync = 0 Incr Curbyte Next J Do : Led = Dreq : Loop Until Dreq = 1 'wait Dreq Next I 'first 32 Curbyte = 1 'after 16 16x32=512 byte If Avanti = 0 Then Goto Esci 'pulsante up Flag_play = 1 'playing primo pacchetto Wend Esci: Flag_play = 0 'stop play Close #10 For I = 1 To 2048 'send 2048 zeros to clear buffer B = 0 Shiftout Vs_mosi , Vs_clock , B , 1 'send 2048 byte Next I Waitms 100 'aspetta 100 End Sub '-------------------------------------------------------------------------------
دیدگاه