MAX5309 an ATMega2560

Gast #2896307
Lesenswert?

Hallo Allerseits!

Ich versuche verzweifelt einen MAX5309 
http://datasheets.maximintegrated.com/en/ds/MAX5308-MAX5309.pdf zum 
Funktionieren zu bringen.

Dazu habe ich zur Inbetriebnahme folgenden Code geschrieben:
1
/*
2
* PB1: SCK
3
* PB2: MOSI
4
* PB3: MISO
5
* PB4: CS
6
* PB5: CLR
7
* PB6: LDAC
8
*/
9

10
PORTB |= (1<<PB1) | (1<<PB2) | (1<<PB4) | (1<<PB5) | (1<<PB6);
11
DDRB |= (1<<PB1) | (1<<PB2) | (1<<PB4) | (1<<PB5) | (1<<PB6);
12
SPCR |=  (1<<SPE) | (1<<MSTR) | (1<<CPHA) | (1<<SPR1) | (1<<SPR0);
13

14
uint8_t byte1 = 0b11001111;
15
uint8_t byte2 = 0b11111100;
16

17
_delay_us(1);
18
PORTB &= ~(1<<PB4);
19
_delay_us(1);
20

21
SPDR =  byte1;
22
while(!(SPSR & (1<<SPIF)));
23
SPDR =  byte2;
24
while(!(SPSR & (1<<SPIF)));
25

26
_delay_us(1);
27
PORTB |= (1<<PB4);
28

29
_delay_us(1);
30
PORTB &= ~(1<<PB6);
31
_delay_us(1);
32
PORTB |= (1<<PB6);

Dummerweise macht der DAC-Wandler darauf hin gar nichts. Die Spannungen 
habe ich bereits mit einem Oszilloskop gemessen und die Timings mittels 
Logic Analyzer aufgezeichnet. Den DAC-Wandler habe ich vorsorglich auch 
schon einmal getauscht. Sieht jemand, was ich falsch mache??

Ein Screenshot der Logic-Analyzer-Aufzeichnung ist angehängt.

Viele Grüße
Stefan
Angehängte Dateien:
#2896572
Lesenswert?

Ich hab's nach inzwischen 5 Tagen Fehlersuche nun doch hinbekommen!
Was nach den Beschreibungen im Datenblatt nicht deutlich wird ist, dass 
die einzelnen DAC-Kanäle vor oder nach dem Bespielen der Input-Register 
und der Übermittlung in die DAC-Register auch noch aufgeweckt werden 
müssen (Befehle: siehe Table 2. Serial Interface Power-Up and Shutdown 
Commands im Datenblatt).
Vielleicht hilft es irgendwann noch jemandem...

Grüße
Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren