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

roznica pomiedzy atmega8 a mega168 w TWI

micha_ 05 Sty 2010 12:23 1734 9
  • #1 7487951
    micha_
    Poziom 11  
    Witam wszystkich
    Chcialbym zapytac czy istnieje jakas roznica pomiedzy mega8 a mega168 w ukladzie albo konfiguracji i²c. Mam dwa procesory mega8 podlaczone na magistrali i²c i komunikuja funkcjonuje bez problemu,jak tylko jednego z nich wymienie na mega168 nie dziala nic!!!
    Szczesliwego nowego roku !!!
  • #2 7488207
    janbernat
    Poziom 38  
    Za mało danych.
    Skompiilowałeś program na mega168?
    Ustawiłeś fusebity?
    To nie są takie same procesory- ale trochę podobne.
  • #3 7488250
    micha_
    Poziom 11  
    program jest skompilowany, wrzystko ustawione,co zaowazylem to to ze mega168 ma inny uart ale i to jest poprawione i tez dziala a iic nie chce
    dzieki za odpowiedz
    micha_
  • #4 7489583
    ZbeeGin
    Poziom 39  
    micha_ napisał:
    a iic nie chce

    Niestety to trochę zbyt mało powiedziane. Adresy rejestrów TWI są inne, przerwanie jest gdzie indziej. Wypadałoby prześledzić krok po kroku obie wersje programów w miejscach gdzie następuje inicjalizacja i jakieś operacje związane z TWI. Błąd może być też "czeski" związany z wpisami w plikach nagłówkowych (adresy, sposób dostępu).

    Czy procesor jest urządzeniem Master czy Slave na TWI? Mega168 posiada dodatkowy rejestr maski, którego Mega8 nie posiada.
  • #5 7494410
    micha_
    Poziom 11  
    przypuszczam ze masz racje ,trzeba by bylo porownac wrzystkie rejesty i zobaczyc dalej
    dzieki za odpowiedz
    micha_
  • #6 7495782
    janbernat
    Poziom 38  
    ZbeeGin:
    "przerwanie jest gdzie indziej"
    Nie mogę się dopatrzeć- może też się czegoś dowiem.
    W obu są w rejestrze TWCR- TWINT(7) i TWIE(0).
    Chyba że jeszcze czegoś nie dopatrzyłem...
    Adresy rejestrów są inne- ale przyznaję się bez bicia że założyłem iż kompilator zna nazwy rejestrów .
    Chyba że I2C jest programowy- to może być problem.
  • #7 7495837
    ZbeeGin
    Poziom 39  
    janbernat napisał:
    "przerwanie jest gdzie indziej"
    Nie mogę się dopatrzeć- może też się czegoś dowiem.

    Przecież wektor przerwania jest gdzie indziej zakotwiczony...

    janbernat napisał:
    Adresy rejestrów są inne- ale przyznaję się bez bicia że założyłem iż kompilator zna nazwy rejestrów.
    Chyba że I2C jest programowy- to może być problem.

    I2C czyli TWI jest sprzętowy.
    Kompilator nie zna nazw rejestrów, ale ma od tego ściągę w plikach nagłówkowch.
  • #8 7495990
    janbernat
    Poziom 38  
    Dzięki wielkie że zwróciłeś mi na to uwagę:idea:
    W dodatku dopatrzyłem się różnic w ATMega48/88/168.
    A w swej głupiej naiwności byłem przekonany że różnice są tylko w rozmiarach pamięci.
  • #10 7501834
    micha_
    Poziom 11  
    jaez wychodzlem z zalozenia ze roznia sie tylko wielkoscia pamieci
REKLAMA