wtv020 sd spi iletişim sorunu

Başlatan grkm33, 30 Mayıs 2013, 18:52:50

grkm33

ete hocam merhaba wtv020-sd mp3 modül ile ilgili bir sorunum var sabahtan akşama kadar uğraştım fakat spi iletişimi bir türlü başaramadım ekte datasheetini veriyorum protokol kısmında yardımcı olabilirmisiniz 
   

ete

Data sheetmidir yoksa basitçe hazırlanmış bir bilgo formumudur bilemedim ama bu verdiğin dökümanda bu işi yapmaya yetecek kadar bilgi yok maalesef.
Bu yüzden elimden bir şey gelmiyor.
Ete

grkm33

çok araştırdım ama daha ayrıntılı bir katalog bulamadım hocam ilgilendiğiniz için teşekkür ederim

zerolax

vtw020 nin çalışan kodları burda yabancı bir forumdan buldum çalıştırdığını söylemiş ama deneme fırsatım olmadı belki sana bir yardımı olur bende sipariş verdim bir ay önce hala gelmesini bekliyorum geldiğinde deneyeceğim

@__config _XT_OSC & _WDT_ON & _LVP_OFF & _CP_OFF

DEFINE LOADER_USED 1

' ** Setup the Resonator Frequency, in Mhz **
Define OSC 4

Baud con 84 ' 9600 baud rate

' ** Port configurations **
TX VAR PORTB.5
RX VAR PORTB.2
CLK VAR PORTA.4
DI Var PORTA.0
RESET VAR PORTB.6
PIEZO VAR PORTB.7

DAT VAR WORD
Idx VAR BYTE

counter var byte
volume var word

volume = 65527

'---------------------------------------------------------------------------

Init:
'Configure all pins to digital operation since not using ADC
CMCON = 7 ' disable comparators

begin:
low piezo

dat = $FFF7
serout2 tx,baud,["Voice Volume - 1st Data = ",bin16 dat,13,10]
GOSUB SendDat

dat = $4
' set counter to file no. 4
counter = 4
serout2 tx,baud,["Address 4 of voice file - 2nd Data = ",bin16 dat,13,10]
GOSUB SendDat

playaddr:
dat = $fffe
serout2 tx,baud,["Play/Pause - 3rd Data = ",bin16 dat,13,10]
' GOSUB SendDat
GOSUB Playdata

' --------------------------------------------------------------------------
switch:

'if porta.2=0 then
' counter = counter - 1
' if counter<=1 then counter = 2
' dat = counter
'
' serout2 tx,baud,["Address of voice file - 2nd Data = ",bin16 dat,13,10]
' GOSUB SendDat
' goto playaddr
'endif

if porta.1=0 then
counter = counter + 1
if counter>=7 then counter = 6
dat = counter

serout2 tx,baud,["Address of voice file - 2nd Data = ",bin16 dat,13,10]
GOSUB SendDat
goto playaddr
endif

' Reduce Volume
if porta.2=0 then
volume = volume - 1
if volume<=65520 then volume = 65527
dat = volume

serout2 tx,baud,["Address of voice volume = ",bin16 dat,13,10]
GOSUB SendDat
'goto playaddr
endif

goto switch

STOP

'---------------------------------------------------------------------------

SendDAT:
LOW RESET ; 5ms reset pulse
PAUSE 5
INPUT RESET
PAUSE 300 ; 300ms before data

For Idx = 15 to 0 STEP -1 ; loop thru the bits
LOW CLK ; set CLK LOW
IF dat.0(Idx) THEN
INPUT DI ; if bit = 1 then INPUT, not HIGH
ELSE
LOW DI ; if bit = 0 then LOW
ENDIF
PAUSE 1 ; data settle time
INPUT CLK ; clks data on rising edge
PAUSE 1 ; data read time
NEXT Idx ; do rest of the bits
INPUT DI ; leave data line tri-stated
RETURN


' --------------------------------------------------------------------------

Playdata:

LOW RESET ; 5ms reset pulse
PAUSE 5
INPUT RESET
PAUSE 1250 ; 300ms before data


For Idx = 15 to 0 STEP -1 ; loop thru the bits
LOW CLK ; set CLK LOW
IF dat.0(Idx) THEN
INPUT DI ; if bit = 1 then INPUT, not HIGH
ELSE
LOW DI ; if bit = 0 then LOW
ENDIF
PAUSE 1 ; data settle time
INPUT CLK ; clks data on rising edge
PAUSE 1 ; data read time
NEXT Idx ; do rest of the bits
INPUT DI ; leave data line tri-stated
RETURN
EMRE SALMAN

Powered by EzPortal