-         

Ergebnis 1 bis 5 von 5

Thema: Digitalpotio über SPI ansteuern

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.266

    Digitalpotio über SPI ansteuern

    Anzeige

    Hallo zusammen,
    ich will ein MCP4141 Digitalpoti über SPI an einem Atmega 32 ansteuern.
    Mein Problem im Moment ist, manchmal passiert etwas (Der Widerstand ändert sich schlagartig), doch meistens passiert gar nichts.
    Im Moment will ich nur,den Widerstand langsam größer bzw. kleiner machen.

    Mein Code:

    Init Code:

    Code:
    DDRB |= (1<<PB5) | (1<<PB7) | (1<<PB4);  //SCK, SS und MOSI als Ausgang setzen
    SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0); //SPI aktivieren
    Daten Senden:
    Code:
         PORTB &= ~(1<<PB4);  //SS auf LOW - Übertragung aktivieren
        _delay_us(100); //Kurz warten
        SPDR = data;                                                              // Daten schicken
        while(!(SPSR & (1<<SPIF)));      
        _delay_us(100); //Kurz warten
         PORTB |= (1<<PB4);          //SS auf High - Wert übernehmen
    Und die Daten die ich sende:
    data = 0b00000111 //Drecrement of Wiper 0
    und
    data = 0b00010111 //Decrement of Wiper 1

    Da ich noch nie davor etwas mit SPI gemacht habe, hoffe ich darauf dass jemand von euch den Fehler in meinem Code findet.

    Viele Grüße
    Shedepe

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von robo_tom_24
    Registriert seit
    04.02.2012
    Ort
    Burgenland, Österreich
    Beiträge
    485
    Laut deinem KOmmentar im Init-Teil ist PB7 SS, beim Sende-Code ists aber PB4...

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.266
    Im Kommentar ist es nicht in der richtigen Reihenfolge, war nur kurz dran kommentiert um zu wissen welche Pins es überhaupt sind

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.266
    Ich habe den Fehler gefunden.
    Man sollte den MOSI auf SDI legen und nicht MISO auf SDI wie im Wikipediartikel zu SPI erklärt.
    Geändert von shedepe (17.04.2013 um 18:43 Uhr)

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.400
    Zitat Zitat von shedepe Beitrag anzeigen
    Man sollte den MOSI auf SDI legen und nicht MISO auf SDI wie im Wikipediartikel zu SPI erklärt.
    SDI ist nun mal zweideutig: der Master hat ein SDI und der Slave ebenfalls.
    MISO passt schon zu SDI: MasterInSlaveOut ist SerialDataIn vom Master.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

Ähnliche Themen

  1. PIC18F SPI über MSSP
    Von Torrentula im Forum PIC Controller
    Antworten: 7
    Letzter Beitrag: 07.09.2012, 20:24
  2. MPU6000 über SPI auslesen
    Von Che Guevara im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 01.05.2012, 17:42
  3. Asuro über SPI
    Von Neuuser im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 30.08.2009, 18:51
  4. I2C über SPI
    Von nali im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 19.05.2008, 15:15
  5. Max 7221 über SPI ansteuern --> Probleme :(
    Von Razer im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 02.05.2006, 17:16

Berechtigungen

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