VS1003 دیگه داره دیونم میکنه با SPI نرم افزاری موزیک که داره پخش میشه با سرعت زیاد قطع و وصل میشه.کریستال 12.288 با مقاومت 1 مگ هم گزاشتم.
اینم اون برنامه ای که استفاده میکنم.
CVDD : 2.5
AVDD : 2.85
IOVDD : 3.3
میکرو هم با IOVDD وصل هست.مشکل کجاست؟
کد:
$regfile = "m128def.dat"
$crystal = 8000000
$swstack = 128
$hwstack = 128
$framesize = 1024
'--------------------------------------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portf.4 , Db5 = Portf.5 , Db6 = Portf.6 , _
Db7 = Portf.7 , E = Portf.2 , Rs = Portf.3
'----------------------------------------------------------------
'-----------------------------------------------------------------------
Led Alias Portd.0
'Mmc_csn Alias Portb.0
Xrst Alias Portd.7
Dreq Alias Pind.6
Xdcs Alias Portd.5
Xcs Alias Portd.4
Vs_miso Alias Portd.3
Vs_mosi Alias Portd.2
Vs_clock Alias Portd.1
Config Led = Output 'led
Config Vs_miso = Input 'serial input vs-1003
Config Vs_mosi = Output 'serial out vs-1003
Config Vs_clock = Output 'serial clock vs-1003
Config Xcs = Output 'VS Chip Select
Config Xrst = Output 'VS Reset
Config Dreq = Input 'VS Data Request
Config Xdcs = Output 'VS Stream Request
'-------------------------------------------------------------------------------
Set Vs_mosi
Set Vs_clock
Set Xcs
Set Xrst
Set Xdcs
Cls
Reset Led
Reset Vs_mosi
Reset Vs_clock
'-------------------------
'-------------------------------------------------------------------------------
Dim B As Byte
Dim A1 As Byte
Dim A2 As Byte
Dim L As Byte
Dim Ff As Byte
Dim S As String * 30
Dim Diskf As Long
Dim Disks As Long
Dim Vs_w As Byte
Dim Vs_r As Byte
Dim Sc_mode_ad As Byte
Dim Sc_bass_ad As Byte
Dim Sc_clockf_ad As Byte
Dim Sc_aiaddr_ad As Byte
Dim Sc_vol_ad As Byte
Dim I As Word
Dim Buffer(512) As Byte
'-------------------------------------------------------------------------------
Vs_w = 2
Vs_r = 3
Sc_mode_ad = 0
Sc_bass_ad = 2
Sc_clockf_ad = 3
Sc_aiaddr_ad = 10
Sc_vol_ad = 11
Led = 0
'-------------------------------------------------------------------------------
Cursor Off
Cls
Lcd "loading..."
$include "Config_AVR-DOS.BAS"
$include "Config_MMC.bas"
B = Drivereset()
B = Driveinit()
If Gbdriveerror <> 0 Then
Cls
Lcd "mmc config error"
End
End If
'include avr-dos
B = Initfilesystem(1) 'init file system
If B <> 0 Then Print "Errore MMC" 'se errore
Cls
Lcd "VS1003 !!!"
Waitms 500
Set Led
Cls
Lcd "Reseting VS1003."
Reset Xrst
Wait 1
Set Xrst
Waitus 500
Bitwait Dreq , Set
Reset Led
Cls
Lcd "Initializing VS"
Waitms 500
Set Led
Reset Xcs
Cls
Lcd "Reset Xcs"
Waitms 500
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_mode_ad , 1
'Spiout Sc_mode_ad , 1 'Halate Kariyeh VS1003
A1 = 8
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Cls
Lcd "Set Xcs"
'Wait 10
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_bass_ad , 1
'Spiout Sc_bass_ad , 1 'Tanzime Bass va Treble
A1 = &H79
A2 = &HF7
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_clockf_ad , 1
'Spiout Sc_clockf_ad , 1 'Tanzimeh Clock va PLL bar royeh Adade 3
A1 = &H80
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_aiaddr_ad , 1
'Spiout Sc_aiaddr_ad , 1 'Barnameyeh Karbari Nadarim
A1 = 0
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_vol_ad , 1
'Spiout Sc_vol_ad , 1 'Tanzime Volume Rooyeh Haddeaksar
A1 = 0
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Cls
Lcd "VS1003 initiated"
Reset Led
Wait 1
Cls
Lcd "playing file:"
Ff = Freefile()
Open "song.mp3" For Binary As #ff 'create file in MMC
Locate 2 , 1
Lcd Ff
Do
Get #ff , Buffer(1) , , 512
Set Led
Cls
For I = 1 To 512
Reset Xdcs
Shiftout Vs_mosi , Vs_clock , Buffer(i) , 1
Set Xdcs
'Spiout Buffer(i) , 1
Bitwait Dreq , Set
Next I
Cls
Bitwait Dreq , Set
Lcd "Set Xdcs"
Reset Led
Loop Until Eof(#ff) <> 0
Cls
Lcd "Ended."
Close #ff
End 'end program
CVDD : 2.5
AVDD : 2.85
IOVDD : 3.3
میکرو هم با IOVDD وصل هست.مشکل کجاست؟


دیدگاه