Forum: Mikrocontroller und Digitale Elektronik Ansteuerung des BU2505 DAC


von EWiebe (Gast)


Lesenswert?

Hallo zusammen,

hat jemand schon mal den BU2505 / BU2506 10 bit DAC von ROHM 
angesteuert?
Wie muss man ihn am besten ansteuern?

Datenblatt: 
https://fscdn.rohm.com/en/products/databook/datasheet/ic/data_converter/dac/bu2506fv-e.pdf

Danke und Gruß
EWiebe

von DerEgon (Gast)


Lesenswert?

EWiebe schrieb:
> Wie muss man ihn am besten ansteuern?

Das Ding nutzt eine SPI-Schnittstelle, Betriebsart 3 (Ruhepegel Clk ist 
High, Datenübernahme mit steigender Flanke auf Clk).

von Eugen W. (ewiebe1)


Lesenswert?

So habe ich ihn angesteuert. Funktioniert prima!
Der DAC gefällt mir ! Den werde ich auf jeden Fall bei Gelegenheit 
nochmal einsetzen!
1
//DI, CLK, LD, 
2
#define DAC_RESET   PC2
3
#define DAC_LD      PC0
4
#define DAC_CLK      PC1
5
#define DAC_DI      PC3
6
7
8
void WriteDAC_Data(UINT8 addr, UINT16 val)
9
{
10
  UINT8 i = 0;
11
  UINT8 curr_addr = addr;
12
  UINT16 curr_val = val;
13
  
14
  DAC_LD = 0;
15
  DAC_CLK = 0;
16
  DAC_DI = 0;
17
    
18
  
19
  //für Reset einmal runterziehen
20
  DAC_RESET = 1;
21
  Delay100us();
22
  DAC_RESET = 0;
23
  Delay100us();
24
  DAC_RESET = 1;
25
  Delay100us();
26
  
27
  
28
  //write 4 bit of addr
29
  for (i = 0; i < 4; i++) {
30
    DAC_CLK = 0;     
31
    DAC_DI = curr_addr & 1;
32
    Delay100us();         
33
    DAC_CLK = 1;               
34
    Delay100us();          
35
    curr_addr >>= 1;       
36
  }
37
      
38
  
39
  //write 10 bit of data
40
  for (i = 0; i < 10; i++) {
41
    DAC_CLK = 0;
42
    DAC_DI = curr_val & 1;
43
    Delay100us();
44
    DAC_CLK = 1;    
45
    Delay100us();
46
    curr_val >>= 1;
47
  }
48
  
49
  
50
  
51
  //Load data
52
  DAC_LD = 1;
53
  Delay100us();
54
  DAC_LD = 0;  
55
  Delay100us();
56
}
Gruß
EWiebe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.