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.

Komunikacja Arduino UNO z Atmega8 - magistrala I2C

06 Lis 2017 20:52 1140 11
  • Poziom 4  
    Witam,
    Mam następujący problem, podpiąłem Atmege8A i Arduino magistralą I2C - oczywiście rezystory podciągające 4.7k zastosowane - prosty układ. Atmega ma działać jako urządzenie Slave a Arduino jako master. Tu listingi kodów:
    Arduino

    Kod: java
    Zaloguj się, aby zobaczyć kod


    Atmega:
    Kod: java
    Zaloguj się, aby zobaczyć kod

    Jest to jak najprostszy kod w celu debugowania.

    Problemem jest to, że jeżeli do arduino (testowane na UNO i Leonardo) podłączone są kable od i2c, to kod freezuje się po linii
    Kod: java
    Zaloguj się, aby zobaczyć kod


    Jeżeli kable są wypięte, kod idzie w kółko i wypisuje napis "Skanuje" z delayem 5s w kółko. Nie jestem pewien czy jest to błąd w kodzie czy w hardwarze - czytałem na Internecie i większość odpowiedzi dotyczyła rezystorów - jednak kilkukrotnie sprawdzałem, że są one poprawne.

    Pozdrawiam
  • Specjalista - Mikrokontrolery
    Co prawda nie znam zabawki pt. Arduino, ale zapytam: gdzie w programie ustawiasz to, że jeden ma być Master a drugi Slave.
  • Poziom 4  
    Witam,

    Z tego co mi wiadomo - jeżeli w funkcji Wire.begin() nie podamy adresu, jest on traktowany jako master - natomiast urządzenie slave ma sprecyzowany adres. Myślę natomiast, że to nie tu jest problemem, ponieważ gdy wyłączę urządzenie slave czy włącze nie ma żadnej róznicy w działaniu - to znaczy program dalej się zwiesza.

    Pozdrawiam
  • Poziom 32  
    Spróbuj tak :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Obserwuj w serial monitorze czy co 5s masz nowe komunikaty o transmisji.
  • Poziom 4  
    Witam,

    Niestety rozwiązanie nie pomogło - dalej ten sam problem - program łapie freeza przy wysyłaniu informacji - natomiast działa przy wypiętych kablach. Niezależnie od tego czy włącze Atmegę czy nie.

    Pozdrawiam
  • Poziom 4  
    Program zwiesza się, nie wykonuje się dalej, natomiast po wyciągnięciu kabli od I2C program kontynuuje działanie.

    Pozdrawiam
  • Użytkownik usunął konto  
  • Poziom 4  
    Przepraszam - czy mógłbyś coś więcej powiedzieć? Jak to sprawdzić? Bo szczerze mówiąc pierwszy raz spotykam się z takim czymś, wcześniej nie spotykałem takich problemów w trakcie komunikacji.

    Pozdrawiam
  • Użytkownik usunął konto  
  • Poziom 4  
    Witam ponownie,

    Walczę z tym od 2 tygodni, i dalej mam z tym problem. Przy próbie skanowania portów dostaję na wyjściu jakieś losowe znaki - pytajniki.

    Pozdrawiam