Skocz do zawartości
neon`

Jak obsłużyć i2c

    Rekomendowane odpowiedzi

    neon`

    Witam

    Potrzebuję napisać program obsługujący protokół i2c w java/Eclipse. Dla przykładu chcę podpiąć chociażby układ pcf8574 (porty I/O).

    Jest dostępny kernel pod tym linkiem: https://github.com/rgv151/htc-dream-android-kernel/blob/master/drivers/i2c/chips/pcf8574.c

    Czy jest w ogóle taka możliwość?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    esh0

    Jeśli chcesz to podłączać pod gotowe urządzenie z Andkiem >4 to możesz zastosować Android Open Accessory i kostkę FT311D.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    neon`

    Pomysł ciekawy, ale chciałbym to zrobić pomijając jakieś gotowe kity. W tablecie mam dostęp to i2c co daje duże możliwości. Pytanie zasadnicze jak to obsłużyć.

    Znalazłem przykładowego linka z programem, ale nie wiem jak dodać bibliotekę napisaną w c++ do projektu w eclipse.

    Android下Java通过JNI访问硬件 - yanjiashang的专栏 - 博客频道 - CSDN.NET

    Edytowane przez kamil0407
    nie cytujemy poprzedniego postu w całosci

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Cubaza

    Ja mam jakieś tam doświadczenie, ale z elektroniki a nie przez Androida. A o co chodzi?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    neon`

    z elektroniki to też mam, chodzi o to żeby całość zgrać. Nie mam zamiaru robić z tego "doktoratu". Dlatego szukam kogoś kto w jakiejś część ugryzł temat.

    Obecnie już zmontowałem całość z układem pcf8574 na płytce uniwersalnej. Nie mogę znaleźć jednoznacznego przekładowego programu, który by bezpośrednio obsługiwał transmisję i2c. Albo są w oparciu o port USB, albo jakiś KIT. Owszem jest masę bibliotek służących do obsługi i2c, ale nie ma przykładów zastosowania w oparciu o JAVA/eclipse.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    neon`

    Niestety z FT311D są problemy przy androidzie >4.1.

    A więc skupiłem się na bezpośrednim podpięciu pod port i2c.

    W jaki sposób najprościej dodać clase napisaną w c++ do projektu java w eclipse?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    neon`

    Udało mi się obsłużyć i2c, jednak mam z nim małe problemy.

    Obsłużyłem bezproblemowo układ PCF8574 i zabrałem się do obsługi 4 kanałowego procesora dźwięku TDA7313 i działa wszystko bez zarzutu oprócz regulacji głośności dźwięku. Wszystkie komendy są wysyłane prawidłowo i nie są zgłaszane żadne błędy, a regulacji jak nie było tak niema. Myślę, że jest to związane z bitem kontroli ACK. Ktoś może wie jak go prawidłowo obsłużyć?

    Poniżej fragment mojego kodu w c++:

    res = ioctl(fileHander, I2C_SLAVE, slaveAddr);
         if (res != 0) {
             LOGE("I2C: Can't set slave address, res=%d ", res);
             goto err2;
         }
         if ((j = write(fileHander, bufByte, len + 1)) != len + 1) {
           LOGE("write fail in i2c");
           goto err2;
       }
    

    ---------- Post dołączono o 13:36 ---------- Poprzedni post napisano o 12:48 ----------

    Po wielkich trudach doszedłem jaki jest problem. Przy wysyłaniu zmiennej int w postaci Decymalnej np 10, wysyła przetwarza mi to na postać binarna 1010 zamiast 00001010.

    Próbuje to poprawić za pomocą: int sets= Integer.toBinaryString(zmienna); ale zgłasza błąd, że nie może przekształcić typu string w typ int. Potrzebuję zapisać zmienną w postać np int sets= 00001010.

    Ktoś ma jakiś pomysł?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Witam.

    Mam pewien temat odnośnie sterowania procesorem dźwięku z poziomu androida przez i2c

    https://www.elektroda.pl/rtvforum/viewtopic.php?t=3489176&highlight=

    Czy jest kolega w stanie pomóc w tym temacie bo jak na razie  nie ma za bardzo na kogo liczyć na elce.

    Dzięki za ewentualne podjęcie tematu.

     

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.