eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDziałająca biblioteka C do VS1003?Re: Działająca biblioteka C do VS1003?
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: