-         

Ergebnis 1 bis 3 von 3

Thema: PIC SPI und VTI SCA61T Inclinometer

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.10.2005
    Ort
    Bremerhaven
    Beiträge
    101

    PIC SPI und VTI SCA61T Inclinometer

    Anzeige

    Guten Morgen miteinander.

    Ich bin in letzter Zeit wieder aktiver mit der Elektronikbastelei und versuche mich gerade daran eine einfache Winkelmessung umzusetzen. Leider scheitert es momentan an der wohl simplen SPI Datenübertragung. Ich benutze oben genannten Chip einen PIC18F2580 und die C Routinen aus der spi.h des Compilers.

    Hier der einfache Code...

    Code:
    LATAbits.LATA5 = 0; //Chip select
    Delay100(6); //Delay 150µs 
    WriteSPI(rwtr); //Kommando um die Temperatur auszulesen
    Dummy = getcSPI(); //Kommando um Buffer SSPBUF auszulesen
    LATAbits.LATA5 = 1;
    Wäre das doch zu einfach? Die Statusbits werden ja von den Unterprogramen ausgelesen, das sieht man in den jeweiligen *.c files.

    Vielleicht kann mir ja jemand auf die Sprünge helfen. Danke.



    Gruß Martin
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken tek0000_225.jpg  

  2. #2
    Benutzer Stammmitglied Avatar von stoerpeak
    Registriert seit
    20.06.2010
    Beiträge
    38
    Dein Oszillogramm zeigt, dass der Clock in den Ruhephasen auf low liegt.

    Default ist in den meisten fällen high.
    Bei meinen kleineren PICs wird der "Clock-Idle-State" über das Clock-Polarity Bit auf high umgestellt. Weiterhin gibt es noch die "Data input sample phase", womit festgelegt wird, zu welchem Zeitpunkt während eines Bits von der Datenleitung gelesen wird.

    Gruß Stoerpeak

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.10.2005
    Ort
    Bremerhaven
    Beiträge
    101
    Hi

    Tatsächlich - der Mode war falsch eingestellt.

    Hab jetzt Mode 0 im PIC aktiviert und siehe da alle Funktionen arbeiten einwandfrei. Hier der Code...

    Code:
    /*Funktion to read out the Temperature register of the VTISCA61T Chip*/
    unsigned char TEMP_VTI1 (void)
    {
    	unsigned char msb;
    	char temperature;
    
    	LATAbits.LATA5 = 0;			//Chip select
    	WriteSPI(rwtr);
    	msb = ReadSPI();
    	LATAbits.LATA5 = 1;
    
    	return (msb);	
    
    	
    	
    
    }
    Danke
    Gruß Martin

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •