ATMega32 und AD7706 - SPI Problem - Bascom

OP #1696763
Lesenswert?
• ▲
▼
Hallo Profis,

ich habe einige Probleme einen ATMega32 mit einem AD-Wandler AD7706 zu 
verheiraten.
Eines vorweg, ich bin Anfänger und das ist mein erster Post in diesem 
Forum. Also bitte entschuldigt eventuelle doofe Fragen oder Fehler 
meinerseits.

Mein Problem ist dass ich keine ordentlich Kommunikation zwischen dem 
7706 und meinem ATMega zustande bringe. Ich vermute den Fehler in der 
Clockrate, bin mir aber nicht sicher.

Aber ich fange am Besten mal mit der Verdratung an.

AD7706 --> ATMega32

SCLK - CLK
MCLK IN - Quartz 4 MHz
MCLK Out - Quartz 4 MHz
CS - GND
Reset - Vcc
AIN2(+) - Nicht beschaltet
AIN1(+) - Poti 0V bis 5V
AIN(-) - GND
REF IN(+) - 2,5 V
REF IN(-) - GND
AIN(-) - Nicht beschaltet
DRDY - Portd.3
DOUT - Miso
DIN - Mosi
Vdd - Vcc 5V
GND - GND

Der ATMega läuft mit einem 8 MHz Quartz

Das war mal die Verdrahtung, da gehe ich jetzt mal nicht von einem 
Fehler aus.
Jetzt mein Bascom Programm:
1
'**********************************************************
2
'* Test ATMega32 mit AD-Wandler AD7706
3
'**********************************************************
4

5
'Config allgemein:
6
$regfile = "m32def.dat"
7
$crystal = 8000000
8
$baud = 4800
9
'Config LCD
10
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
11
Config Lcd = 16 * 2
12
Config Portc = Output
13
Reset Portc.1
14
Initlcd
15
Cursor Off
16
Cls
17
'Config SPI:
18
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 4
19
Spiinit
20
'Config Ports
21
Config Portd.3 = Input
22
Drdy Alias Portd.3
23
'Variablen
24
Dim Msb As Byte
25
Dim Lsb As Byte
26
Dim Ergebnis As Word
27
Dim X As Byte
28

29
'Kommunikation mit dem AD7706:
30
'Mitteilung ans Kommunikationsregister: nächste Operation Schreiben ins Setup-Register
31
X = &B00010000
32
Spiout X , 1
33
'Schreibzugriff auf Setup-Register
34
X = &B00000001
35
Spiout X , 1
36
'Mitteilung ans Kommunikationsregister: nächste Operation Schreiben ins Clock-Register
37
X = &B00100000
38
Spiout X , 1
39
'Schreibzugriff auf Clock-Register
40
X = &B00001101
41
Spiout X , 1
42

43
'Mess -schleife:
44
Do
45

46
Cls
47
Locate 1 , 1
48
Lcd "Start"
49
Wait 3
50

51
  'Mitteilung ans Kommunikationsregister: nächste Operation Lesen vom Data-Register
52
  X = &B00111000
53
  Spiout X , 1
54

55

56
   If Drdy = 0 Then
57

58
   Locate 2 , 1
59
   Lcd "DRDY = 0"
60
   Waitms 20
61
   Spiin Msb , 1
62
   Spiin Lsb , 1
63
   Locate 1 , 1
64
   Lcd "Msb: " ; Msb ; " " ; "Lsb:" ; Lsb ; " "
65

66
   Else
67

68
   Locate 2 , 1
69
   Lcd "DRDY = 1"
70

71
   End If
72

73
  Wait 3
74
  Ergebnis = Makeint(lsb , Msb)
75
  Locate 2 , 1
76
  Lcd "Ergebnis = " ; Ergebnis
77

78

79
Wait 3
80
Cls
81
Locate 1 , 1
82
Lcd "neue"
83
Locate 2 , 1
84
Lcd "Schleife"
85
Wait 3
86

87
Loop
88
End

Ich vermute an folgenden Punkten eventuelle Fehler:

Config SPI:
Polarität, Phase, Clockrate - hier bin ich mir nicht sicher ob das 
überhaupt stimmt

Schreibzugriff auf das Setup-Register:
Was bedeutet das letzte Bit, da werde ich aus dem Datenblatt nicht 
schlau

Schreibzugriff auf das Clockregister:
Da steige ich im Datenblatt gar nicht durch.
Ich brauch wohl den Teiler CLKDIV weil ich ja nen 4 MHz Quartz habe.
Beim CLK Bit bin ich mir schon nicht mehr sicher ob ich das brauche und 
bei den FS-Bits habe ich gar keine Ahnung was ich da einstellen soll.


Vielleicht hat ja einer von Euch schon mal mit dem 7706 zu tun gehabt 
und kann mir ein wenig unter die Arme greifen.
Ich wäre für jeden Tip dankbar!

Schönen Restsonntag noch...

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.