-
Data: 2020-06-12 10:53:08
Temat: Re: Działająca biblioteka C do VS1003?
Od: Marek <f...@f...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Thu, 11 Jun 2020 23:30:48 +0200, Atlantis <m...@w...pl>
wrote:
> while (VS_DREQ_PIN) {
> br = 0;
> res = f_read(&fsrc, buffer, 32, &br);
> if (res == FR_OK && br) {
> data_mode_on();
> for (i=0; i<br; i++) VS1003_SPI_transfer(buffer[i]);
> data_mode_off();
> }
> if (br == 0) {
> VS1003_stopSong();
> VS1003_startSong();
> f_lseek(&fsrc, 0);
> }
Ten kod nie jest optymalny dla vs'a.
Jak dreq jest wysoki to dopiero robisz fread, a to już za późno. Na
DREQ high musisz już mieć gotowy odczytany z sd bufor w ram a nie
dopiero go czytać z sd. Sekwencja powinna wyglądać tak: najpierw
czytasz pierwszy bufor, wysyłasz go do vs'a tak długo aż
zasygnalizuje DREQ low, dopiero wtedy uzupelniasz/czytasz następny
bufor z sd i sprawdzasz przed jego wysłaniem czy dreq jest high.
Bufor w ram na dane (typu FIFO) musisz mieć min 10kB (musi być
większy niż bufor vs'a) bo inaczej pierwsze wypełnienie bufora vs'a
będzie zbyt płytkie, co nie da czasu na odczyt kolejnej porcji danych
(fread możesz robić tylko wtedy gdy w buforze vs'a jest wystarczająco
dużo danych).
Inaczej zawsze będziesz miał zawsze nieczyste odtwarzanie z różnymi
dziwnymi efektami.
W pętli czytania zrób też tymczasowy printf gdy DREQ jest low, by się
upewnić czy faktycznie mcu widzi ten stan.
Jeszcze jest kwestia SPI, czy driver SPI vs'a na pewno czeka na
przesłanie całego bufora SPI (bufora słowa SPI) przed wysłaniem
następnego słowa?
{
--
Marek
Najnowsze wątki z tej grupy
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
Najnowsze wątki
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 Gdańsk => Programista Kotlin <=
- 2025-07-07 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-07-07 Warszawa => International Freight Forwarder <=
- 2025-07-07 Warszawa => Java Developer <=
- 2025-07-07 Białystok => Software Engineer .Net <=