Verständnisfrage zu CS5463

Gast #1149050
Hi,

ich habe einen Messchip (CS5463: Datenblatt 
http://www.cirrus.com/en/pubs/proDatasheet/CS5463_F2.pdf ) mit meinem µC 
über SPI verbunden. Jetzt möchte ich einzelne Registerinhalte auslesen 
und hier kommt schon meine Frage. Auf Seite 21 steht:

"During data reads, the serial port requires
input data. If a new command and data is not
sent, SYNC0 or SYNC1 must be sent."

und als Beispiel steht auf Seite 22:

Example:
Reading register 6 in page 3.
1. Write 3 to page register with command and data:
0x7E 0x00 0x00 0x03
2. Read register 6 with command:
0x0C 0xFF 0xFF 0xFF

So jetzt ist aber meine Frage wie ich das ausprogrammiere. Ich muss ja 
Daten auch senden?

also hier der Code:
1
void SPI_read_register(uint8_t register_address, uint32_t *data)
2
{
3
  uint8_t temp = 0x00;
4
  register_address &= 0b00011111;  // Maskiere sicherheitshalber Register_addresse
5
  register_address = register_address << 1;  // Verschiebe um 1 nach links
6
  temp |= register_address;    // Füge beide Daten zusammen
7
  SPI_send(temp);      // Sende fertiges Packet
8
  // Was jetzt?!
9
}

Was soll ich nach dem ersten Packet machen? SPI_get() aufrufen und 
sehen, was der Messchip mir gesendet hat oder SPI_send(0xFF)?

Würde das so stimmen:
SPI_send(temp);
SPI_get();
SPI_send(0xFF);
SPI_get();
SPI_send(0xFF);
usw.?

Sorry leute, wenn ich gerade ein wenig auf der Leitung stehe oO Habe 
leider die Schaltung noch nicht fertig aufgebaut und von daher kann ich 
es auch nicht testen.
Hallo Gast,

Falls Dein Thema noch aktuell ist...im Dateianhang findest Du meinen 
Code für das Beschreiben und Auslesen der Register des CS5463. Der 
Mikrocontroller stellt bei mir nur eine Schnittstelle zw. PC und CS5463 
(USB<->UART<->SPI) her.
Auf dem PC läuft ein kleines Programm (programmiert in LabVIEW), welche 
in der Lage ist, die Parameter als ein Dez.String an den Controller zu 
senden und zu empfangen. Die Parameter in diesem String sind durch ":" 
voneinander
getrennt.

Da ich absoluter Anfänger in Sachen Elektronik und Programmieren bin, 
bin ich mir sicher, dass mein Code nicht die eleganteste Lösung ist, es 
funktioniert aber!

Gruß
Daniel
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.