Forum: Mikrocontroller und Digitale Elektronik ATMega128 mit externen ADC


von Wolfgang (Gast)


Lesenswert?

Hallo,
habe folgendes Problem mit einem Atmega128 und einem ADC LTC 1867, von 
dem die Digitalleitungen (Chip Select, SDI, SDO, und SCK) an drei Pins 
des Atmegas hängen. Sobald ich die Konvertierung starte 
(Spannungsmessung zwischen CH1 und GND) gibt er mir unabhängig von der 
Eingangsspannung am SDOut highByte 0 und am LowByte zw. 48 und 112 
zurück. Im Vergleichsmodus zw. zwei Eingängen (CH0 & CH1) bekomme ich 
127 am High und 240 am LowByte (wieder sind die Spannungen egal). Am 
Oszi, welches am SDOut hängt lässt sich das gleiche feststellen.

1
unsigned int value = 0x0000;
2
3
mask = 0x80;
4
5
SET_CS_ADC;     // chip select (set --> low)
6
CLEAR_CS_ADC;   // start convertion at rising edge
7
warte(1);       // 1 ms convertion time
8
SET_CS_ADC;
9
10
11
do
12
{
13
  if(mask & control)   // control --> CH0 to GND, Bipolar
14
    SET_BIT;
15
  else
16
    CLEAR_BIT;
17
18
  SET_SCK;
19
20
  if(PIN_SPI & (1 << PIN_MOSO))
21
    value |= iMask;
22
  
23
  CLEAR_SCK;
24
25
  mask = mask >> 1;
26
  iMask = iMask >> 1;
27
28
}while(mask);
29
30
mask = 0x08;  // 4 more bits
31
32
do
33
{
34
  SET_SCK;
35
36
  if(PIN_SPI & (1 << PIN_MOSO))
37
    value |= iMask;
38
39
  CLEAR_SCK;
40
41
  mask = mask >> 1;
42
  iMask = iMask >> 1;
43
44
}while(mask);
45
46
47
CLEAR_CS_ADC;

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.