ADC Wandlung PIC24FJ128 die Zweite.

Gast #2290502
Lesenswert?

Hallo,

letztes mal konntet ihr mir mit der ADC Wandlung gut helfen, so weit hat 
bis her alles gut funktioniert.

Allerdings habe ich jetzt ein Phänomen, dass ich nicht erklären kann 
bzw. in den Griff bekomme.

Ich hab an den Pins 28 und 29 des PIC24FJ128 jeweils eine Spannung 
anliegen - mit dem Multimeter geprüft.

Pin 29 (AN14) - also Channel 14 kann ich mit folgender 
selbstgeschriebenen Routine ohne Probleme wandeln (ADC_Read()):
1
#include <p24FJ128GA006.h>
2
#include "adc.h"
3

4

5
void ADC_Init(void)
6
{
7

8
  _ADON = 1; // AD Wanlder einschalten
9
  _VCFG = 0b001;  // Nutze +VRef als Referenz
10
  _ADRC = 0;  //Nutze SystemClock
11
  // Set analoge Eingänge als Input
12
  _TRISB2 = 1; 
13
  _TRISB3 = 1;
14
  _TRISB4 = 1;
15
  _TRISB5 = 1;
16
  _TRISB8 = 1;
17
  _TRISB9 = 1;
18
  _TRISB10 = 1;
19
  _TRISB11 = 1;
20
  _TRISB12 = 1;
21
  _TRISB13 = 1;
22
  _TRISB14 = 1;
23
  _TRISB15 = 1;
24
  // Setzte Analoge Eingänge auf Analog
25
  _PCFG2 = 0; 
26
  _PCFG3 = 0;
27
  _PCFG4 = 0;
28
  _PCFG5 = 0;
29
  _PCFG8 = 0;
30
  _PCFG9 = 0;
31
  _PCFG10 = 0;
32
  _PCFG11 = 0;
33
  _PCFG12 = 0;
34
  _PCFG13 = 0;
35
  _PCFG14 = 0;
36
  _PCFG15 = 0;
37
_SSRC = 0b000; // Manual Conversation
38
_ASAM = 0; // Auto Sampling off
39
_CSCNA = 0; // Select Channel manualy
40
_CH0NA = 0; // VSS is Negative Input
41
_SAMP = 1; // S/H Mode
42
_ALTS = 0; // Use MUX A
43
_SAMC = 0b00010; // Zeit (Anzahl Clock cycles) zwischen Sample und Conversion
44
_ADCS = 0b00000001; // 2xTCY
45
_CH0SA = 0b00101; // Channel 5 ADC Wandlung
46

47

48
}
49

50

51
unsigned int ADC_Read(unsigned int channel)
52
{
53
  _CH0SA = channel; // Channel zuweisen
54

55
  // Starte Sampling
56
  _SAMP = 1; // Starte Sampling
57
  _delay_us(100); // Warte Sample Time
58
  _SAMP = 0; // Beende Sampling und Starte Convertion
59

60
  while (!_DONE); // Warte hier bis Convertion Done
61

62
  return ADC1BUF0;
63
}

Bei Channel 13 allerdings, Pin 28 (AN13) bekomme ich immer 0 als 
Ergebnis - ich nutze die selbe Routine und das Multimeter zeigt die 
Spannung an, die am Pin wirklich anliegt.

Wie kann das sein?
Kann so ein Eingang beim Einlöten zerstört werden? Ich habe mit einer 
Dampfphasenlötanlage die Teile aufgelötet und musste am IC an dieser 
stelle nur 2 kleine Lötbrücken entfernen, also eig. nicht kritisch in 
meinen Augen.

Hat jemand eine Idee?

Dank und Gruß
Chris

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