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

Jak poprawić komunikację SPI między ADS1232 a MSP430?

poczatkujacyEl 21 Cze 2012 18:58 3262 3
REKLAMA
  • #1 11027196
    poczatkujacyEl
    Poziom 9  
    Witam serdecznie,

    Pracuje obecnie nad układem zawierającym mostkowy czujnik ciśnienia, ADS1232 oraz MSP430. Od paru dni jestem bezradny bo nie wiem jak poradzić sobie z komunikacją pomiędzy ADS a MSP.

    Do projektu wykonałem płytkę testową zgodnie z Figure 42 (zamieszczonym poniżej))

    Jak poprawić komunikację SPI między ADS1232 a MSP430?


    Jedynymi różnicami są wspólna masa dla wszystkich połączeń. Brak zewnętrznego oscylatora. Nóżka XTAL2 niepołączona, XTAL1 do GND.

    Po podłączeniu układu pod oscyloskop (po uprzednim doprowadzeniu zasilania do nóżki PWDN poprzez mikrokontroler lub bezpośrednio) widać że układ reaguję na zmianę ciśnienia. Wysyła różne ramki danych.

    Komunikuję się poprzez SPI.
    void main(void)

    Kod Text - [rozwiń]

    unsigned char MST_Data, SLV_Data;
    Kod: Text
    Zaloguj się, aby zobaczyć kod


    Jednak po podłączeniu SCLK z MSP do ADS układ przechodzi mi w tryb oszczędny (SCLK - hi, DOUT - hi). Po odłączeniu zegara transmisja działa poprawnie (na oscyloskopie). Próbowałem wyłączyć zegar programowo lecz nie udało się. Próbowałem Sam napisać komunikację lecz układ nie reagował. Ktoś miał podobny problem. Czy mógłby mi ktoś poradzić co z tym zrobić? Jak sczytywać dane?

    Pozdrawiam
  • REKLAMA
  • #2 11028376
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 11028479
    gaskoin
    Poziom 38  
    To tak nie zadziała, ponieważ napięcie nie jest wartością bezwzględną tylko jest różnicą potencjałów pomiędzy dwoma punktami. Mówiąc o sygnale np 3V w 99.99% przypadków w domyśle chodzi o sygnał w odniesieniu do masy. Jeśli masz różne masy, to mikrokontrolerowe 5V w Twoim układzie może być traktowane np jako 1V albo jako 10V, albo równie dobrze jako 5000GV bo różnica potencjałów między sygnałem mikrokontrolera a ADS1234 może być w zasadzie jakakolwiek. Oczywiście przesadzam i zdarza się, że układ działa, bo wszystko ma gdzieś tam swoje źródło w jednym gniazdku, ale generalnie masy trzeba łączyć :)
  • #4 11030480
    poczatkujacyEl
    Poziom 9  
    Wszystkie masy są połączone do jednego punktu. Zdaje sobie sprawę że napięcie to różnica potencjałów :). Sygnały mają poprawne napięcie. ADS wysyła ramki danych ale tylko i wyłącznie jak nie mam zegara podpiętego. Jak go podpinam to ramki znikają, pojawia się stan wysoki na DOUT.
REKLAMA