PIN-belegung ADC bei dsPIC33

Gast #3587794
Lesenswert?

Hallo.. ich habe eine Frage zur Pin-Belegung des ADC eines dsPIC33. Ich 
möchte insgesamt acht Eingänge sampeln und konvertieren. Im Datenblatt 
habe ich dafür ein Beispiel gefunden, das ich nur etwas anpassen musste. 
Es werden immer vier Eingänge gleichzeitig gesampelt und nacheinander 
konvertiert, bevor sich der gleiche Ablauf mit den nächsten vier 
Eingängen wiederholt.
1
AD1CON1bits.AD12B = 0;      // Select 10-bit mode
2
AD1CON2bits.CHPS = 3;       // Select 4-channel mode
3
AD1CON1bits.SIMSAM = 1;     // Enable Simultaneous Sampling
4
AD1CON2bits.ALTS = 1;       // Enable Alternate Input Selection
5
AD1CON2bits.SMPI = 1;       // Select 8 conversion between interrupt
6
AD1CON1bits.ASAM = 1;       // Enable Automatic Sampling
7
AD1CON1bits.SSRC = 2;       // Timer3 generates SOC trigger
8

9
// Initialize MUXA Input Selection
10
AD1CHS0bits.CH0SA = 0b01011;      //muxA pos AN11(CH0)
11
AD1CHS0bits.CH0NA = 0;            //muxA neg Vref-(CH0)
12
AD1CHS123bits.CH123SA = 0;        //muxA pos  AN0(CH1), AN1(CH2), AN2(CH3)
13
AD1CHS123bits.CH123NA = 0b10;     //muxA neg AN6(CH1), AN7(CH2), AN8(CH3) 
14

15
// Initialize MUXB Input Selection
16
AD1CHS0bits.CH0SB = 0b01100;      //muxB pos AN12(CH0)
17
AD1CHS0bits.CH0NB = 0;            //muxB neg Vref-(CH0)
18
AD1CHS123bits.CH123SB = 1;        //muxB pos AN3(CH1), AN4(CH2), AN5 (CH3)
19
AD1CHS123bits.CH123NB = 0b11;     //muxB neg AN9(CH1), AN10(CH2), AN11(CH3)

Das erste Problem dabei ist, dass bei der 28Pin-Version meines Chips 
AN6, AN7 und AN8 nicht existieren und ich auch keine Möglichkeit 
gefunden habe, andere Pins dafür zu nutzen. Das Problem könnte ich aber 
mit der 44Pin-Variante umgehen. Natürlich wäre es aber schöner, wenn ich 
bei dem kleineren Chip bleiben könnte.
Zusätzlich möchte ich auch noch eine externe Referenzspannung vorgeben, 
die ich mit einer Referenzspannungsquelle erzeuge. Sehe ich das richtig, 
dass ich dafür den Vref+ Pin nutzen muss? Der ist aber gleichzeitig auch 
AN0, den ich ja bei der "Alternate Input Selection" für mein MUXA 
benötige. Oder kann ich meine Referenzspannungsquelle auch einfach mit 
den AVss- und AVdd-Pins verbinden?

Vielen Dank schonmal für die Unterstützung!
#3587862
Lesenswert?

AVss und AVdd sind für eine (wenn gewünscht) separate Stromversorgung 
des AD-Wandlers. Andernfalls sind diese mit dem entsprechenden Vss / Vdd 
Pin zu verbinden.
Ein externe Refernzspannung kann nur über Vref+ eingespeist werden (gilt 
auch für Vref-).
Was ist das für ein 28-Pinner der keine AN6, AN7, AN8 hat??
(habe hier gerade einen 33FJ12GP202 der hat AN0....AN9).
Gast #3587937
Lesenswert?

ist ein dsPIC33FJ128GP802..

Ist das dann echt so, dass ich diese "Alternate Input Selection" mit 2x4 
Eingängen nicht nutzen kann, weil ich AN0 für den Vref+ benötige, oder 
gibt es irgendeine andere Möglichkeit das umzusetzen?
Angehängte Dateien:
Gast #3785035
Lesenswert?

Hi
ich habe auch ein Problem mit der Pinbelegungn , ich will eine 
Periodenmessung(Input capture modul 1 ) mit dem Timer 2 machen,aber ich 
steh gerade auf dem SChlauch und weiss nicht an welchen Pin ich mein 
Signal anlegen muss.

Ich nutze den oben genannten Chip im dip 28 gehäuse .

dspic33fj128mc802

vllt hat ja jemand ne gute idee ?

Danke schon mal.

 im Anhang der Link zum Datenblatt vom chip
http://ww1.microchip.com/downloads/en/DeviceDoc/70291G.pdf
#3785125
Lesenswert?

TobsTurbo schrieb:
> Hi
> ich habe auch ein Problem mit der Pinbelegungn , ich will eine
> Periodenmessung(Input capture modul 1 ) mit dem Timer 2 machen,aber ich
> steh gerade auf dem SChlauch und weiss nicht an welchen Pin ich mein
> Signal anlegen muss.
>
> Ich nutze den oben genannten Chip im dip 28 gehäuse .
>
> dspic33fj128mc802
>

Der IC1-Pin ist bei diesen Controllern nicht festgelegt, das musst du 
selber machen!

Zuständig ist das Register RPINR7 und darin die Bits 0...4 welche einen 
der mit RPxx bezeichneten Pin als IC1 Eingang festlegen.
Beim FJ128MC802 sind das die Pin RP0.....RP15.

Zusätzlich muss natürlich auch noch der Pin auf Digital umgestellt 
werden und das entsprechende Bit im TRISx Register auf Input stehen (ist 
zwar Default auf Input, aber sollte man trotzdem ordentlich 
initialisieren).

All das findes du im Kapiter PORTS!

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