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

MSP430G2553 I2C z TPL0401A - brak komunikacji z potencjometrem cyfrowym

waaasiu 24 Lip 2012 17:33 3118 6
  • #1 11139357
    waaasiu
    Poziom 2  
    Witam. Staram sie napisac I2C programowe na msp430g2553. Potrzebne mi to jest do komunikacji z potencjometrem cyfrowym TPL0401A.

    Na podstawie przykladowych programow napisanych w C na AVR oraz na podstawie programu komunikujacego msp z potencjometrem za pomoca sprzetowego I2C napisalem taki o to program:


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Na oscyloskopie przebiegi wygladaja tak jak te przy komunikacji za pomoca sprzetowego I2C. jednak potencjometr nic nie odbiera. przeprowadzilem rowniez proby polaczenia dwoch mspkow i2c sprzetowe jakos slave a i2c programowe jako master. slave nic nie odbieral.

    Prosze o pomoc czy ktos ma pomysl co jest zle w tym programie? Czy musi byc kod sprawdzajacy ACK czy bez tego tez moze ruszyc i2c?
  • #3 11139437
    waaasiu
    Poziom 2  
    a czy widzisz jakies błedy w kodzie?

    taki jest kod sprawdzenia ACK na AVR

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    czy ktos potrafilby mi pomoc przerobic ten fragment na msp. nie bardzo wiem jak tego define przerobic...
  • #4 11139451
    LordBlick
    VIP Zasłużony dla elektroda
    Poszukaj w nocie katalogowej lub manualu jaki rejestr odpowiada za odczyt z GPIO. W AVR czytasz z PINB... P2IN ? ;)
    Edit - sprawdziłem, że zgadłem, czyli nomenklatura nazw, jak dla mnie, jest bardzo intuicyjna w tej rodzinie mikrokontrolerów... Zamień w kodzie PINB na P2IN.
    Warningi też są istotne przy kompilacji.
  • #5 11141155
    waaasiu
    Poziom 2  
    tak robilem ze zamienilem PINB na P2IN. ale to mi nie dawało efektów.

    pojawiaja mi sie warningi:
    tam gdzie wywoluje iic_ack(); : #176-D expression has no effect

    przy linijce [b]if(GET_SDA)b] : #64-D count is too large


    debugujac program wogole nie wchodzi w funkcje iic_ack();
  • #6 11141471
    LordBlick
    VIP Zasłużony dla elektroda
    Ja tylko wróżę, nie wiem, co masz w tym pliku nagłówkowym, ani jaki kompilator używasz (msp-gcc ?), bo nie zawarłeś o tym wzmianki w temacie. Może wyrzuć "REG->"...
  • #7 11148394
    skirki
    Poziom 10  
    Jakby ktoś potrzebował gotowca to tutaj jest opis programowego mastera:
    http://www.ti.com/lit/an/slva302/slva302.pdf

    a dodatkowo pliki do projektu daje w załączniku tam są opisane 2 tryby: sprzętowy i programowy (o który chodzi) Wszystko na architekturę MSP430 więc nie będzie tu problemu żeby sobie to przepisać.

    sam slave:
    http://www.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=slaa330
REKLAMA