Hallo,
ich habe eine Platine mit einem MSP430FR2532, welcher als Projektarbeit
für die Uni mal busgesteuert vier FETs schalten soll.
Es lassen sich nur zwei der vier Kanäle schalten. Die beiden Ausgänge
P1.4 und P1.5 funktionieren, P1.1 und P1.2 bleiben jedoch hochohmig,
obwohl diese eigentlich auf Ausgang geschaltet sein sollten.
Folgendes Programm dient zum Testen:
1 | //#include "io430.h"
|
2 | #include "msp430fr2532.h"
|
3 |
|
4 | #define CHAN_1 BIT4
|
5 | #define CHAN_2 BIT1
|
6 | #define CHAN_3 BIT5
|
7 | #define CHAN_4 BIT2
|
8 |
|
9 | int main( void )
|
10 | {
|
11 | // Stop watchdog timer to prevent time out reset
|
12 | WDTCTL = WDTPW + WDTHOLD;
|
13 |
|
14 | P1SEL0 = 0x00;
|
15 | P1SEL1 = 0x00;
|
16 | P1DIR = CHAN_1 + CHAN_2 + CHAN_3 + CHAN_4; //chan1 and chan3 works
|
17 | P1OUT = CHAN_1 + CHAN_2 + CHAN_3 + CHAN_4;
|
18 |
|
19 | while(1)
|
20 | {
|
21 | P1OUT = CHAN_1 + CHAN_2 + CHAN_3 + CHAN_4;
|
22 | for(int i=0; i< 30000; i++);
|
23 | P1OUT = 0x00;
|
24 | for(int i=0; i< 30000; i++);
|
25 | }
|
26 | }
|
Den Mikrocontroller habe ich heute getauscht, der neue zeigt jedoch
gleiches Verhalten, weshalb ich am ehesten darauf tippe, irgendeine
Zusatzfunktion der Ports übersehen zu haben. Ein Designfehler oder
vielleicht ein Problem mit dem Chip (errata) würde ich nicht
ausschließen, halte jedoch irgend etwas banales für wahrscheinlicher...
;-)
Ich spreche den über Spy-Bi-Wire, also den Schmalspur-JTAG an.
Habt ihr Ideen, was ich übersehen haben könnte? :) Vielen Dank!