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!