MSP430 Daten über SPI senden

#661360
Lesenswert?
• ▲
▼
Z.B. 3 Bytes an den AD DAC schicken:
1
unsigned char SetExtDAC(unsigned char num, unsigned int data)
2
{
3
  
4
  //AD5663 Command Byte zusammen bauen:
5
  
6
  if(num == 0)Byte2 = AD5663_Command3 + AD5663_Address0;
7
  if(num == 1)Byte2 = AD5663_Command3 + AD5663_Address1;
8
  if(num > 1)return STATUS_ERROR;
9
  
10
  
11
  Byte1 = ((data >> 8) & 0xFF);      //High-Byte
12
  Byte0 = (data & 0xFF);          //LOw-Byte
13
  
14
  
15
  SPI1WaitForComplete();          //Senden bereit?
16
  
17
  ResetDevCSA;              //Chip-Select
18
  TXBUF1 = Byte2;              //Command-Byte absetzen
19
  SPI1WaitForComplete();
20
  asm("nop");
21
  asm("nop");
22
      
23
  TXBUF1 = Byte1;              //Highbyte senden
24
  SPI1WaitForComplete();
25
  asm("nop");
26
  asm("nop");
27
  
28
  TXBUF1 = Byte0;
29
  SPI1WaitForComplete();
30
  asm("nop");
31
  asm("nop");
32
  SetDevCSA;
33

34
  return STATUS_SUCCESS;
35
}
36

37
void SPI1WaitForComplete(void)
38
{
39
  while (!(IFG2 & UTXIFG1));                // USART1 TX buffer ready?
40
  do
41
  {
42
    IFG2 &= ~URXIFG1;
43
  }
44
  while (URXIFG1 & IFG2); 
45
}
Gast #661364
Lesenswert?
• ▲
▼
Hallo,
vielen Dank für die Antwort.
Gibt es Erfahrungen ob man die Datenbytes auf diese Weise
unmittelbar aneinander hängen kann,
das nach dem letzten Bit vom ersten DatenByte
unmittelbar mit dem nächsten Clock-Signal
das erste Bit des zweiten DatenBytes gesendet wird?

Moritz
Gast #661381
Lesenswert?
• ▲
▼
Hallo Christian,
vielen Dank für deine ausführliche Antwort.
Nachdem ich das Datenblatt von meinem EEPROM AT25010A gelesen hatte,
glaubte ich, die Bytes müssten unmittelbar aufeinander folgen.
Aber vielleicht ist das gar nicht nötig.
Ausprobieren kann ich es leider erst später,
da ich im Moment programmiere ohne Hardware zum testen.

Moritz

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.