Libs for using Nucleo STM32F411 periphery

Embed: (wiki syntax)

« Back to documentation index

AD5664 Class Reference

#include <AD5664.h>

Public Member Functions

 AD5664 (SPI _spi, PinName _daccs)
void sendDAC (int instruction, int data1, int data2)
virtual ~AD5664 ()
void SelectCS ()
void DeselectCS ()
void writeDAC (char channel, int value)
void loadDAC (char channel, int value)
void updateDAC (char channel)

Protected Attributes

SPI spi
 SPI Schnittstelle.
DigitalOut daccs
 Chipselect Pin.

Detailed Description

Diese Klasse dient zur Ansteuerung des Digital-Analog-Wandlers AD5664 der Firma Analog Devices. Der DAC ist ein 16-Bit Wandler mit 4 Kanälen, Versorgungsspannung von 2,7V bis 5,5V. Die Maximale Settling Time beträgt 7µs (AD5664), und die Genauigkeit liegt bei +-12 LSBs maximum. Angesteuert wird er mittels SCLK, CS und MOSI mit maximal 50 MHz. Zuvor muss die SPI-Schnittstelle definiert werden. Die Chip Select Schnittstelle kann durch die Initialisierung mit Übergeben werden. Es ist darauf zu achten das der Chip bzw die Library nur den SPI-Modus "1" (CLK Standart auf 0 und übernahme mit fallender Flanke) mit einer Datenbreite von 8-Bit unterstützt.

 #include "mbed.h"
 #include "AD5664.h"

 SPI interface(PB_5, PB_4, PB_3);         // SPI Interface und Pins (MISO PB.5 , MOSI PB.4, SCLK PB.3) festlegen

 int main() {
    
     interface.format(8,1);               // Interface Format festlegen: 8-Bit, SPI-Modus 1
     interface.frequency(1000000);        // Übertragungsgeschwindigkeit 1MHz 
      
     AD5664  device(interface, PB_2);     // Eine Instanz des DACs erzeugen, Chipselect ist PB.2
            
     device.loadDAC('D', 0x11FF);         // Den Wert 0x11FF in den Kanal D laden
  
     device.updateDAC('D');               // Den geladenen Wert am Kanal D ausgeben

     device.writeDAC('A', 0x89BD);        // Den Wert 0x89BD an dem Kanal A direkt ausgeben
   
      }

Definition at line 34 of file AD5664.h.


Constructor & Destructor Documentation

AD5664 ( SPI  _spi,
PinName  _daccs 
)

Konstruktor zum Erstellen einer Instanz für einen vorher spezifizierten SPI-Port und Chip Select-Pin. Nach dem Erstellen dieser Instanz werden alle Ausgänge des DACs auf 0 gesetzt.

Parameters:
spiEntsprechner SPI-Port (Datenbreite 8 Bit, SPI Modus 1)
daccsPin für Chipselect

Definition at line 8 of file AD5664.cpp.

virtual ~AD5664 (  ) [virtual]

Destruktor der Klasse

Definition at line 80 of file AD5664.h.


Member Function Documentation

void DeselectCS (  )

Setzt den Chipselect-Pin des Wandlers auf "deselect" bzw. wählt diesen ab.

Definition at line 33 of file AD5664.cpp.

void loadDAC ( char  channel,
int  value 
)

Lädt ein 16-Bit Wert in den eingestellten Kanal. Der Wert wird direkt in das Inputregister geschrieben und kann mit der updateDAC-Funktion in das DAC-Register geschrieben werden

Parameters:
channelEinstellung des Ausgewählten Kanals

  • A Lädt Kanal A
  • B Lädt Kanal B
  • C Lädt Kanal C
  • D Lädt Kanal D
  • F Lädt alle DACs

Standartwert, falls ein falscher Kanal angegeben wird ist "F"

value16-Bit Wert
Wird Automatisch in zwei 8 Bit Werte angepasst.

Definition at line 72 of file AD5664.cpp.

void SelectCS (  )

Setzt den Chipselect-Pin des Wandlers auf "select" bzw. wählt diesen aus.

Definition at line 29 of file AD5664.cpp.

void sendDAC ( int  instruction = 0x00,
int  data1 = 0x00,
int  data2 = 0x00 
)

Funktion zum Beschreiben des Chips mit je 8-Bit. Für genauere Details bitte das Datenblatt lesen

Parameters:
instructionDirekte Anweisungen für den AD5664
Die 8 Instruction-Bits sind wie folgt aufgebaut:

X X C C C A A A


  • Die ersten zwei Bits sind don't cares
  • Die Befehle C sind wie fogt aufgebaut
    • 000 Schreibe Input register N
    • 001 Update DAC Register N
    • 010 Schreibe Inputregister N und Update alle DAC Register
    • 011 Schreibe Inputregister N und Update DAC Register N
    • 100 Power Down DAC (siehe Datenblatt)
    • 101 Reset (siehe Datenblatt)
    • 110 Funktionsregister LDAC (siehe Datenblatt)
  • Die Adresse A zum Register N sind wie fogt aufgebaut
    • 000 DAC A
    • 001 DAC B
    • 010 DAC C
    • 011 DAC B
    • 111 All DACs
data1Datenbits
ersten 8 Datenbits, bzw. oberen zwei Nibble
data2Datenbits
zweiten 8 Datenbits, bzw. unteren zwei Nibble

Definition at line 14 of file AD5664.cpp.

void updateDAC ( char  channel )

Schreibt zuvor eingestellten Wert in das DAC Register (Laden mittels loadDAC-Funktion). Dieser Wert ist dann am Ausgang des entsprechenden DAC-Kanals zu messen.

Parameters:
channelEinstellung des Ausgewählten Kanals

  • A Beschreibt Kanal A
  • B Beschreibt Kanal B
  • C Beschreibt Kanal C
  • D Beschreibt Kanal D
  • F Beschreibt alle DACs

Standartwert, falls ein falscher Kanal angegeben wird ist "F"

Definition at line 106 of file AD5664.cpp.

void writeDAC ( char  channel,
int  value 
)

Schreibt ein 16-Bit Wert in den eingestellten Kanal. Der Wert wird direkt in das DAC Register geschrieben und der Wert wird direkt ausgegen.

Parameters:
channelEinstellung des Ausgewählten Kanals

  • A Beschreibt Kanal A
  • B Beschreibt Kanal B
  • C Beschreibt Kanal C
  • D Beschreibt Kanal D
  • F Beschreibt alle DACs

Standartwert, falls ein falscher Kanal angegeben wird ist "F"

value16-Bit Wert
Wird Automatisch in zwei 8 Bit Werte angepasst.

Definition at line 37 of file AD5664.cpp.


Field Documentation

DigitalOut daccs [protected]

Chipselect Pin.

Definition at line 141 of file AD5664.h.

SPI spi [protected]

SPI Schnittstelle.

Definition at line 139 of file AD5664.h.