Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

bascom i2c slave-nasłuch magistrali

06 Lut 2013 21:30 1383 4
  • Poziom 10  
    Witam kolegów. Dostałem w firmie zadanie aby rozbudować istniejące urządzenia o przewodnik głosowy. Generalnie urządzenie składa się: z płyty głównej na której procesor obługuje i2c oraz panel użytkownika z układami PCF 8574 + kilka przycisków. W wolnej chwili zbudowałem układ do monitorowania magistrali i2c z jednego z postów na elektrodzie i bez problemu udało mi się odczytać wszystko co "biega" na magistrali. Chciałbym zaprogramować atmegę, która będzie pracować w trybie slave i tylko odczytywać dane z magistrali. Po wykryciu odpowiedniego adresu i danych załączy odpowiedni plik dźwiękowy. Póki co programowałem tylko w bascomie i wiem, że do tego służą dodatkowe biblioteki i2c slave. Potrzebuję jakieś wskazówki od osób które tym się bawiły jak napisać taki program. czy można zrealizować to na funkcjach warunkowych? czy na podstawie komend z biblioteki i2cslave można na bieżąco monitorować magistralę?
    z góry dziękuję za odp:-)
  • Moderator na urlopie...
    I2C slave z tego co pamiętam, pozwala na pracę układu jako urządzenie I2C. Nadajemy mu adres, który nasłuchuje i tylko na nim dane będą odbierane. Przykłady są opisane w helpie BASCOM'a: http://avrhelp.mcselec.com/index.html?config_i2cslave.htm
    Więc nadasz urządzeniu adres, i potem będziesz przesyłał 1 bajt, który np. zakoduje numer pliku dźwiękowego.
    Z urządzenia nadrzędnego (master) wyślesz wtedy: Adres_slave; numer_dzwieku
    Jeśli o to Ci chodzi to da się to zrobić na tych bibliotekach, ale są one płatne i niedołączane domyślnie do bascom'a
  • Poziom 10  
    dzięki! to, że biblioteki są płatne to wiem ale można zainwestować pod warunkiem, że się do tego przydadzą:-) Problem w tym, że te urządzenia nie są naszej produkcji-chcemy je tylko rozbudować. Niestety nie mam kodu źródłowego oprogramowania więc mogę jedynie "dopiąć" do magistrali atmegę z niezleżnym oprogramowaniem. Nie chcę w żaden sposób ingerować w tą magistralę aby nie zakłócić pracy urządzenia. Dlatego chciałbym aby atmega cały czas tylko odczytywała magistralę i po wykryciu zmiany na wejściu któregokolwiek z układów pcf wysłała dalej informacje aby odtworzyć daną ścieżkę dźwiękową. Problem w tym, że muszę monitorować zmiany na 3 układach pcf czyli wychwytywać 3 adresy urządzeń oraz dane i czy funkcje bascomowe mi na to pozwolą.
  • Pomocny post
    Moderator na urlopie...
    Funkcje bascomowe - nie. Trzebaby zastanowić się nad takimi rozwiązaniami:
    1. Podpięcie się do wyjść układów PCF
    2. zdublowanie układów PCF (o ile funkcjonują tylko jako wyjścia)
    3. napisanie własnego programu dekodującego transmisję.
    PS. Podaj link do tego projektu do podglądania transmisji.
  • Poziom 10  
    https://www.elektroda.pl/rtvforum/topic319745.html

    ładnie działa ale trzeba zbudować układ według wzoru płytki bo na schemacie nie wszystko jest zamieszczone.

    właśnie śledzę artykuły na temat magistrali i2c od dłuższego czasu i spodziewałem się, że to nie będzie takie proste:-/ najgorsze jest to, że założenie tego układu jest takie aby nie ingerować w gotowe urządzenie czyli najlepiej zrobić własną płytkę i za pomocą kilku złączy dopiąć się do urządzenia. chyba czeka mnie jeszcze kilka długich nocy... w każdym razie dziękuję za zainteresowanie.