Keine Daten beim ADC MCP3550 am STM32F4

Gast #3975072
Lesenswert?
• ▲
▼
Moin Moin,

ich hab das Problem, dass ich keine Daten von meinem ADC empfangen 
kann... Die Verbindung stimmt, Daten kommen an. Am SPI hängt auch noch 
ein anderer ADC bei dem das auslesen funktioniert.
Beim gewollten kommt aber leider nichts an.

Datenblatt:
http://ww1.microchip.com/downloads/en/devicedoc/21950c.pdf

Hier der kommentierte Code:
1
uint8_t adc_v2_auslesen(){
2

3
  GPIOD->BSRRH |= GPIO_Pin_5;//CS-high
4
  //Delay(1650000);
5
  while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_11)==1);  //warten bis /RDY auf low (MISO)
6
    if(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == SET)
7
        { SPI_I2S_ReceiveData(SPI1);}
8
    ad_wert[4]=Spi2TxRx8b(0x00);    //Bytes lesen
9
    ad_wert[5]=Spi2TxRx8b(0x00);
10
    ad_wert[6]=Spi2TxRx8b(0x00);
11
    Spi2TxRx8b(0x00); //letzer Byte ist egal
12
    Delay(1000);
13
  GPIOD->BSRRL |= GPIO_Pin_5;    //CS high
14

15
  return 0;
16
}

Bei dem anderen ADC funktioniert alles gut dort ist allerdings keine 
Warteroutine drinne, weil der das nicht braucht. Hier einfach auch noch 
der Code vom anderen ADC:
1
uint8_t adc_v1_auslesen(){
2

3
  GPIOD->BSRRH |= GPIO_Pin_1;
4
  Spi2TxRx8b(0x00);
5
  if(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == SET)
6
      { SPI_I2S_ReceiveData(SPI1);
7
      }
8
    Spi2TxRx8b(0xFF);
9
    ad_wert[0]=Spi2TxRx8b(0x00);
10
    ad_wert[1]=Spi2TxRx8b(0x00);
11
    Delay(1000);
12
  GPIOD->BSRRL |= GPIO_Pin_1;
13
  return 0;
14
}

Danke schon mal fürs lesen und eventuelle Antworten.
Gast #4900934
Lesenswert?
• ▲
▼
Hallo Bibu,
ich hatte auch dieses Problem und glaube die Ursache zu kennen.
Nach dem Power up muss das CS einen Zyklus machen zuerst High, dann kurz 
Low und wieder high. Es steht wo im Datenblatt.Sonst läuft der Chip 
intern nicht los.
Aber bei einem Steckbrettaufbau sind die Streueungen risengroß.
So werden aus den 22 bit dann letztlich +-16 bit.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.