logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega8 Bascom - I2C zawiesza program przy komunikacji z EEPROM

SpeedFightMAN 29 Cze 2015 14:56 1779 20
REKLAMA
  • #1 14811720
    SpeedFightMAN
    Poziom 9  
    Cześć! Od jakiegoś czasu próbuję połączyć się przez i2c z eepromem. Problem w tym, że Atmega się zawiesza zanim jeszcze cokolwiek zrobi.
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    W teorii chciałem zapisać zmienną Eep w eepromie, ale program nawet nie wyświetla mi w konsoli "i2c stop". I2cstart działa, bo uart wyświetla mi "i2c start" w konsoli, ale potem się zawiesza. Podobnie jest jak mam taki kod:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod

    tylko że w tym przypadku zawiesza sie na i2cwbyte. Co robię źle? Nawet jak odłączę scl i sda to nic sie nie zmienia. scl i sda mam przez rezystor 47k podłączony do 5v. Piny adresowe przy eepromie są podpięte do masy. [/code]
  • REKLAMA
  • #2 14812056
    strikexp
    Poziom 27  
    Może porównaj z jakimś programem z internetu?
  • #3 14812063
    SpeedFightMAN
    Poziom 9  
    program jest skopiowany z sieci :/
  • #4 14812134
    strikexp
    Poziom 27  
    A to łączę sie w bólu kiedyś też tak próbowałem iść na łatwiznę :D
    Ale wiesz co? Mam pocieszenie, ATmega8 jest stara i lipna. Mówiąc w uproszczeniu nie obsługuje niektórych funkcji z innych ATmeg i przez to wiele programów ściagnietych z sieci na niej nie działa. Nie masz innej ATmega?
  • #5 14812144
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #6 14812279
    SpeedFightMAN
    Poziom 9  
    Nic to nie daje :/ Może zmienić atmegę? mam ósemkę drugą
    edit:
    inna ósemka robi to samo :/
    Wiadomo przynajmniej że to wina programu, ewentualnie atmega8, ale innej nie mam :/
  • #7 14812351
    strikexp
    Poziom 27  
    Musisz mieć nowszy model bo inaczej dużo programów z internetu nie będzie ci działać. Są pisane przeważnie dla rodziny ATmega - 88, 168, 348
  • #8 14812542
    SpeedFightMAN
    Poziom 9  
    Problem rozwiązany. Dzięki za pomoc :D
  • #9 15191610
    kosta2010
    Poziom 9  
    SpeedFightMAN mam ten sam problem. Usiłuję uruchomić program na ATMega8 dla czujnika SHT21 i zawiesza się na obsłudze I2C. Sprawdzałem też na ATMega 32 i 16 i jest dokładnie to samo. Nie mam pod ręką np. ATMega328 czy ATMega324, ale czy w Twoim przypadku pomogła wymiana procka? Jeśli tak, to na jaki wymieniłeś?
    Dzięki za odpowiedź.
  • REKLAMA
  • #10 15191640
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #11 15191680
    kosta2010
    Poziom 9  
    Mam taki kod:
    Deklaracje:

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod




    I przykładowy program:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    I jest taki efekt, że pierwszy i2cstart przechodzi, nie przechodzi już wpisanie adres czujnika na magistralę:

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    w tym miejscu program się zawiesza.
    Czy możesz mi podpowiedzieć które rejestry mam ustawić?
  • #12 15191733
    Konto nie istnieje
    Konto nie istnieje  
  • #13 15191982
    Konto nie istnieje
    Konto nie istnieje  
  • #14 15192085
    Konto nie istnieje
    Konto nie istnieje  
  • #15 15192191
    Konto nie istnieje
    Konto nie istnieje  
  • #16 15192302
    kosta2010
    Poziom 9  
    Wielkie dzięki za podpowiedzi okazało się, że po zmianie rezystorów program działa prawidłowo i się nie zawiesza.
  • #17 15192579
    Konto nie istnieje
    Konto nie istnieje  
  • #18 15193407
    tronics
    Poziom 38  
    Cytat:
    Sprzętowe podciaganie - czyli słabe pull-upy z procka. Nie jest to dobre rozwiązanie szczególnie do i2c.

    Zależy od prędkości. I2C korzysta z OC i po to są pull-up... I2C w NXP (wydzielone z philips) jest OC także po stronie procesora - w każdym razie piny dedykowane I2C w LPC1xxx są OC na stałe, w xmega kwestia konfiguracji, w atmega jaki input i HiZ jeśli korzystamy z modułu TWI. Warto pamiętać, że niektóre urządzenia I2C mają 10-15k wbudowane i jeśli nie korzystamy z najwyższej osiągalnej prędkości to nawet nie trzeba nic dodawać.
  • #19 15193435
    Konto nie istnieje
    Konto nie istnieje  
  • #20 15193476
    Konto nie istnieje
    Konto nie istnieje  
  • #21 15193565
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA