-         

Ergebnis 1 bis 6 von 6

Thema: Drehwinkelsensor: Kommunikation mit AVR

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.11.2004
    Ort
    Heilbronn
    Alter
    33
    Beiträge
    85

    Drehwinkelsensor: Kommunikation mit AVR

    Anzeige

    Hallo,

    ich habe hier ein Drehwinkelsensor MLX90316 der über den SPI-Bus kommuniziert.
    Aus dem Sensor kommt nur MOSI heraus jedoch wird beim AVR über ein Transistor an MOSI und MISO angeschlossen.
    Bedeutet das , dass gelesen und geschrieben wird über eine Leitung?

    In der Anlage ist das AppNote.

    lg
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken mlx90316app.png  

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hallo,

    im Datenblatt steht unter "16.4": Note that MOSI and MISO use the same physical pin of the MLX90316. Das Protokoll ist im Kapitel 16 beschrieben.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    27.11.2004
    Ort
    Heilbronn
    Alter
    33
    Beiträge
    85
    Aber was hat es mit dem Transistor auf sich?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Der dient der MOSI/MISO Umschaltung. Melexis empfiehlt einen BS170: http://melexis-pressure-sensors.com/...aspx?nID=1225&
    Nicht vergessen, dass der Transistor das Signal invertiert: http://melexis-pressure-sensors.com/...tocol_378.aspx
    Hast Du die auf SPI vorprogrammierte Variante oder (falls nicht) ein Programmiergerät für den MLX90316?
    Only entropy comes easy. - Anton Checkhov

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    27.11.2004
    Ort
    Heilbronn
    Alter
    33
    Beiträge
    85
    Ich habe die SPI-Variante.

    Ich hoffe nur das der Winkel bereits auf 360° vorprogrammiert ist ansonsten hab ich ein Problem und muss mir dieses teuere Programmiergerät kaufen.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    27.11.2004
    Ort
    Heilbronn
    Alter
    33
    Beiträge
    85
    Hallo,

    ich möchte nur ungern den Beitrag nochmal aufwärmen aber es geht nicht anders.

    Es geht weiterhin um den 1-Wire-SPI für den Drehwinkelsensor - diesmal um die Softwareansteuerung.

    Ich initialisiere das SPI folgendermaßen:
    Code:
    short spi_data_receive_dreh[10];            //Antwortarray
    
    DDRA |= (1<<DDA0);                            //SlaveSelect-> Ausgang
    DDRB |= (1<<DDB1) | (1<<DDB2);       //SCK und MOSI -> Ausgang
    DDRB  &= ~(1<<DDB3);                       //MISO -> Eingang
    	
    
    // Initialisierung von SPI
    PORTA |= (1<<PA0);
    volatile char IOReg;
    SPSR |= (1<<SPI2X);
    SPCR |= (1<<SPE) | (1<<MSTR) | (1<<CPHA);
    IOReg = SPSR;                                     // clear SPIF bit in SPSR
    IOReg = SPDR;
    
    
    // Drehrad innen abfragen:
    PORTA &= ~(1<<PA0);                          // SS auf low setzen um Übertragung zu starten
    
    SPDR = 0xAA;
    while (!(SPSR & (1<<SPIF)));                 // wait until Char is sent
    spi_data_receive_dreh[0] = SPDR;
    
    SPDR = 0xFF;
    while (!(SPSR & (1<<SPIF)));                // wait until Char is sent
    spi_data_receive_dreh[1] = SPDR;
    		
    SPDR = 0xFF;
    while (!(SPSR & (1<<SPIF)));                 // wait until Char is sent
    spi_data_receive_dreh[2] = SPDR;
    
    .
    .
    .
    Laut Datenblatt:
    "The Master should send AAh followed by 9 bytes FFh. The Slave will answer with two bytes FFh followed by 4 data bytes and 4 bytes FFh"

    Ich habe die vermutung das bei der Iitialisierung etwas nicht stimmt weil ich am Oszi kein Clock sehe... (eigentlich seh ich schon was aber das Signal geht im Rauschen fast unter. Kein vergleich zum Rechteck den ich beim Programmieren beobachte.)

    Gibts irgendwelche Ideen woran es liegen kann?

    mfg
    Alex

Berechtigungen

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