Witam.
Dopiero wczoraj ruszyłem w kierunku obsługi I2C, poszło nieźle, ale problem pojawił się, gdy zacząłem próby komunikacji z TDA7440D. I tu klapa, zmienna err ciągle jest równa zero, komunikacja niby jest,ale sygnał nie przechodzi przez przewzmacniacz mimo "podania" przez i2c instrukcji do sterowania "vol" i "speaker attenuate". Zmieniam tylko te dwa parametry, bo one są standardowo ustawione na MUTE. Dodam tylko, że pod wejście włączane standardowo, tj. IN2 podpiąłem sygnał z komputera, do wyjścia wzmacniacz. Dodatkowo, gdy TDA jest odłączony od zasilania, to wzmacniacz buczy, natomiast przy podpinaniu zasilania na ułamek sekundy pojawia się dźwięk i wzmak przestaje buczeć. To sugeruje, że audio jest podpięte dobrze.
Mój problem głównie polega na tym, że w datasheecie scalaka jest o szynie zwiększającej i nie zwiększającej (incremental bus / no incr. bus) i o parametrze ACK. Nie do końca wiem, co z nimi począć, a to, co napisałem w oparciu o datasheet, powinno działać, a nie działa. Scalak powinien działać, bo był ze sprawnego sprzętu.
Docelowo napisałem coś takiego, gdzie:
H88 - adres tda7440 wg. DS
h2 - subadrs "Volume
h6 - subadres "Speaker Att. "R"
&b00000000 - w obu przypadkch 0 dB
tylko raz wysyłam dane do tda, poza tym w formie "no incremental bus", więc wg. DS nie muszę wysyłać wszystkich parametrów, tylko wybrane. Coś jednak mi nie pasuje z tym ACK, nie wiem, czy to wpisywać w programie czy co z tym zrobić...
Jeszcze mam jedno pytanie...
Czy &bxxxxxxx10 = &b10? W Datasheecie mam pola zapełnione X-ami (z dopiskiem DON'T CARE", więc nie wiem, jak to zapisać...)
Pozdrawiam/
Dopiero wczoraj ruszyłem w kierunku obsługi I2C, poszło nieźle, ale problem pojawił się, gdy zacząłem próby komunikacji z TDA7440D. I tu klapa, zmienna err ciągle jest równa zero, komunikacja niby jest,ale sygnał nie przechodzi przez przewzmacniacz mimo "podania" przez i2c instrukcji do sterowania "vol" i "speaker attenuate". Zmieniam tylko te dwa parametry, bo one są standardowo ustawione na MUTE. Dodam tylko, że pod wejście włączane standardowo, tj. IN2 podpiąłem sygnał z komputera, do wyjścia wzmacniacz. Dodatkowo, gdy TDA jest odłączony od zasilania, to wzmacniacz buczy, natomiast przy podpinaniu zasilania na ułamek sekundy pojawia się dźwięk i wzmak przestaje buczeć. To sugeruje, że audio jest podpięte dobrze.
Mój problem głównie polega na tym, że w datasheecie scalaka jest o szynie zwiększającej i nie zwiększającej (incremental bus / no incr. bus) i o parametrze ACK. Nie do końca wiem, co z nimi począć, a to, co napisałem w oparciu o datasheet, powinno działać, a nie działa. Scalak powinien działać, bo był ze sprawnego sprzętu.
Docelowo napisałem coś takiego, gdzie:
H88 - adres tda7440 wg. DS
h2 - subadrs "Volume
h6 - subadres "Speaker Att. "R"
&b00000000 - w obu przypadkch 0 dB
Do
I2cstart
I2cwbyte &H88
I2cwbyte &H2
I2cwbyte &B00000000 , Ack
I2cstop
Waitms 50
I2cstart
I2cwbyte &H88
I2cwbyte &H6
I2cwbyte &B00000000 , Ack
I2cstop
Waitms 50
end
Looptylko raz wysyłam dane do tda, poza tym w formie "no incremental bus", więc wg. DS nie muszę wysyłać wszystkich parametrów, tylko wybrane. Coś jednak mi nie pasuje z tym ACK, nie wiem, czy to wpisywać w programie czy co z tym zrobić...
Jeszcze mam jedno pytanie...
Czy &bxxxxxxx10 = &b10? W Datasheecie mam pola zapełnione X-ami (z dopiskiem DON'T CARE", więc nie wiem, jak to zapisać...)
Pozdrawiam/