Vs1001k lösningen!

Z

Ziko87

Guest
Hej, Jag är en ny medlem!
Jag har projektet en liten mp3-läsare med SD-Card, pic16f876 och Vs1001k!
Jag har insett framgångsrikt gränssnittet SPI (i själva verket mikrocontroller svar
korrekt och innehåller alla register på rätt sätt), om mitt problem stanna i att skicka
uppgifter i mp3-kod.Jag tror att det finns ett problem med Boot av chip, någon som vet
rätt sekvens för att sätta i drift korrekt?

Ledsen för min dåliga engelska I'm lärande!

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Tank er så mycket!

 
Jag är inte säker på att detta kommer att hjälpa men titta på http://www.microsyl.com finns mp3 projektet finns med samma mp3-dekoder chip och källkoden men avr, kanske får du lite information där ...

 
från webben kan hjälpa dig.http://www.mpic3.com/

har exempelkod skrivna på CCS PIC C att kontrollera VLSI VS1001K MP3 CODEC IC

 
Jag har använt VS1011b version av MP3 dekoder IC.Men,
förresten det är bara små skillnader mellan dem.Innan utfodring MP3 uppgifter dessa är några saker som du kanske vill kontrollera:
>> Maskinvara återställa VS1001k genom att dra den XRESET linje låg för några oss och dra höga.Du bör ha möjlighet att lägga märke till en "pop" ljud från produktionen av IC.Detta beror på att stänga av de analoga strömförsörjning.Om detta test passerar vidare till nästa.
>> Gör en läsa att alla register (t.ex. volym).Pump detta läsa data via UART (eller något annat du kan tänka dig).
>> Gör en läsa-skriva-läsa till ett register över VS1001k (det bästa är volymen register).Om detta är ok, så ni inte har några problem.
>> Minns du när utfodring MP3 uppgifter till VS1001k, för att byta linje anger kommando och data (kopplas till data vid utfodring av MP3-data).Kom också ihåg att kontrollera de uppgifter som begäran stift (DREQ) innan utfodring uppgifterna.
>> Kolla också oscillation inställningar om du använder kristall än 24.576 MHz.

Hoppas det fungerar för dig.Alla de bästa.Du ska titta på tillämpningen konstaterar på sin webbplats. www.vlsi.fi [/ url]
 
Tack för svaret, det är mycket användbara.

Jag måste kontrollera alla som du har råd till mig:

1) Efter att ha gjort hårdvaran test jag
har hört famus "pop"

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />2) Jag Hava läsa korrekt volymen register
3) Jag kan skriva och läsa riktigt alla register
Den unika led som fungerar uncorrectly är den sista:
Styr jag DREQ, och jag har
ställt registret läge för "MSB första" bat Jag hörde bara tyst

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Detta är min routin att jag använder för att styra enheten:
Kod:# ifndef __VS1001K_C

# define __VS1001K_C

# include "Delay.c"

# include "VsSpi.c"

# include "vs1001k.h"void VsData (char Byte) (

char count;

BSYNC = 1;

för (count = 0; räkna <8; count ) (

if (Byte & 0x80) (

SDATA = 1;

) else (

SDATA = 0;

)

BSYNC = 0;

DCLK = 1;

DCLK = 0;

Byte <<= 1;

)

/ / BSYNC = 0;

)void VsInit (void) (

int i;

VsCommand (11, 0, 0);

VsCommand (3, 0x98, 0x00) / / Inte nécessaire

for (i = 0; i <2048, i ) (

DCLK = 1;

SDATA = 0;

DCLK = 0;

BSYNC = 0;

)

)void VsResetHardware () (

xRESET = 0;

DelayMs (1);

xRESET = 1;

xCS = 1;

VsInit ();

)void VsResetSoftware () (

char i;

VsCommand (0, 0, 4);

DelayUs (300);

BSYNC = 1;

for (i = 0; i <8, i ) (

DCLK = 0;

SDATA = 0;

DCLK = 1;

BSYNC = 0;

)

DCLK = 0;

)void VsCommand (char commando, röding hi, röding lo) (

xCS = 0;

VsMandoByte (0x02);

VsMandoByte (kommandotrupp);

VsMandoByte (hi);

VsMandoByte (LO);

xCS = 1;

)int VsReadRegister (char adress) (

char Risp1, Risp2;

int FinalRisp = 0;

xCS = 0;

VsMandoByte (0x03);

VsMandoByte (adress);

Risp1 = VsPrendoByte ();

Risp2 = VsPrendoByte ();

xCS = 1;

FinalRisp = Risp1;

FinalRisp = FinalRisp <<8;

FinalRisp = Risp2;

återgå FinalRisp;

)void VsReadByte (char adress) (

char Risp1, Risp2;

xCS = 0;

VsMandoByte (LÄS);

VsMandoByte (adress);

Risp1 = VsPrendoByte ();

Risp2 = VsPrendoByte ();

xCS = 1;

UartPuts ( "Svar:");

UartPutch (Risp1);

UartPutch ('-');

UartPutch (Risp2);

UartPutch ('-');

UartPuts ( "\ n \ r");

)void Send32 (char * buf) (

char i;

while (DREQ == 0) ()

for (i = 0; i <32, i )

VsData (buf );

)# endif

 

Welcome to EDABoard.com

Sponsor

Back
Top