Skocz do zawartości

Stm32F4 discovery, HAL, przetwornik DAC - gniazdo Jack


zbyhu

Pomocna odpowiedź

Gdzieś czytałem, że domyślnym wyjściem dla tego przetwornika, jest właśnie audio jack, ale co bym nie pokombinował to i tak zawsze wyjście sygnału mam na domyślnie ustawionym pinie PA4. Narazie jestem początkujący w programowaniu mikrokontrolerów, i ledwo ogarniam HAL, xd. Swój projekt zrobiłem bardzo prostym sposobem: jeden timer skonfigurowany tak aby działał z taką szybkością jak próbkowanie dźwięku, za każdym razem zmienia on wartość 12 bitową przetwornika:

HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,POST_SAMPLE);
DAC->SWTRIGR|=DAC_SWTRIGR_SWTRIG1;
DecodeSample();
POST_SAMPLE=PRE_SAMPLE;
if (CHANNELS==CHANNEL_STEREO){IgnoreBytes(sizeof(PRE_SAMPLE));}

i drugi timer który jest do obsługi przycisków, oraz później może dodam jakiś wyświetlacz.

w pętli głównej programu mam zmienianie bufora danych, obsługa usb, oraz wczytywanie danych do bufora.

Więc gdybyś mi mógł to jakoś prościej wytłumaczyć to byłbym wdzięczny 🙂 .

Link do komentarza
Share on other sites

The sound can be output in different ways through audio DAC:

– Using I2S protocol

– Using the STM32F4 DAC to analog input AIN1x of the CS43L22

– Using the microphone output directly via a low pass filter to analog input AIN4x of

the CS43L22

Musisz więc albo wysyłać dane przez I2S do zewnętrznego scalaka który jest DAC + wzmacniaczem albo używać wewnętrznego DAC żeby podawać sygnał na wejście AIN1x tego scalaka.

Zobacz schemat, ustaw odpowiedni pin, będzie działać.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Oglądając inne projekty tego typu, zastanawiałem się, dlaczego wszyscy zawsze konfigurują I2C oraz I2S, gdy przecież można odrazu użyć tego wbudowanego DAC'a, ale teraz po przejrzeniu tego pdf'a, doszedłem do wniosku, że dzięki temu, można kontrolować ten układ na płytce tak jak byłby on zewnętrznym.

The STM32F4 controls the audio DAC through the I2C interface and processes digital

signals through an I2S connection or an analog input signal

Porównując rozpiskę pinów w tym pdf'ie dla tego układu CS43L22 i inny projekt który wykorzystuje tutaj DAC do odtwarzania dźwięku, DAC jest konfigurowany na poziomie interfejsu I2C wszystko się zgadza. a tak jak patrze konfigurację w Stm32Cube, wyjściem dla DAC w takim wypadku może być tylko PA4 (Czyli to jest AIN1), jak zresztą pisze w pdfie. Obawiam się kurcze, że bez konfiguracji I2C oraz I2S to nie wiem czy da się to zrobić. trochę mnie to jednak zawiodło 😥

Link do komentarza
Share on other sites

Szukasz opcji drugiej:

Using the STM32F4 DAC to analog input AIN1x of the CS43L22

tu nie musisz używać ani I2C ani I2S.

AIN1A i AIN1B są zwarte i podłączone do pinu PA4 (przez kondensator żeby odfiltrować DC offset).

Czyli jak na PA4 wygenerujesz dźwięk to powinieneś go słyszeć na słuchawkach (jeśli nic nie przeoczyłem).

EDIT: Chyba jeszcze na PD4 musisz dać HIGH.

Link do komentarza
Share on other sites

sygnał analogowy na pin'ie PA4 jest, ustawienie pinu PD4 na stan wysoki nie przyniosło żadnego rezultatu, wyczytałem w między czasie coś takiego:

7.11.1 Passthrough Analog

Configures an analog passthrough from the analog inputs to the headphone/line outputs.

PASSTHRUx

Analog In Routed to HP/Line Output

0

Disabled

1

Enabled

https://www.cirrus.com/cn/pubs/proDatasheet/CS43L22_F2.pdf

(Strona 44)

chyba trzeba jakoś rejestr tego układu ustawić, ale pytanie czy to jest możliwe tylko przez I2C czy jakoś bezpośrednio też się da?

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...