Mam ambitne plany podłączenia do pracy kodeka WM8731 ( datasheet tu :
http://www.wolfsonmicro.com/documents/u ... WM8731.pdf ) z Raspberry.
Ale tak sobie pomyślałem, że zacznę na próbę od skonfigurowania go do pracy przez I2C z wykorzystaniem ATmegi.
Ponieważ I2C też nie znałem, no to tak sobie myślę zacznę od "gotowca" i za pomocą kodów z pierwszej książki Mirka uruchomiłem sobie zegarek na PCF8583.
Opis Mirka wyjaśniający komunikację przez I2C w książce jest ok i nawet za długo się nie męczyłem z uruchomieniem TWI pomimo tego, że posiadałem wcześniejszą wersję programu gdzie nie było
konfiguracji prędkości transmisji magistrali I2C czyli błędy.
Poczytałem, złożyłem, zaprogramowałem, zegarek zaczął "chodzić" no to mówię teraz wezmę się za WM8731.
I tutaj się zaproblemiłem .....
Najpierw postanowiłem dla ćwiczeń odczytać rejestry konfiguracyjne i już z tym mam problem.
Być może producent nie przewidział że ktoś będzie chciał "poćwiczyć" i próbować nie zapisywać a odczytywać rejestry - można je w ogóle odczytywać ??
Zmodyfikowałem program Mirka "od zegarka", zmieniłem adres układu, próbuję odczytać którykolwiek z rejestrów i klapa .....
Sama funkcja odczytu się wiesza ......
Więc, jak dostać się do rejestrów konfiguracyjnych w WM8731 ?
W zegarku było prosto bo adresy rejestrów i same rejestry były 8 bitowe.
Tutaj w manualu (str. 49 ) pisze że w WM8731 do konfiguracji istnieje 11 rejestrów 16 bitowych gdzie 7 bitów to adres a 9 bitów to dane konfiguracyjne.
Czyli włączamy TWI ( SDA na low ) wysyłamy adres układu tutaj akurat 0x34 i wykonujemy te funkcje które napisał i opisał Mirek i co potem ????
W zegarku podajemy 8 bitowe adresy od 0x00 począwszy i możemy odczytać rejestry tak jak RAM.
A jak zabrać się do tego z WM8731 ????
Wątpię czy się komuś będzie chciało zaglądać do tego manuala, ale może ktoś zetknął się z takim problemem i jest mi w stanie
chociaż podpowiedzieć jak do tego "organizacyjnie" podejść ?
A tak w ogóle może można tylko zapisywać a ja się uparłem żeby odczytywać .......