Forum: Mikrocontroller und Digitale Elektronik ATXmega32 PortC problem


von Philipp S. (xxvegasxx)


Lesenswert?

Hallo

Meine Ausganssituation:
Ich habe ein controller board (ribu versand) mit einem atxmega32 darauf. 
Das ganze wird per usb und bootloader programmiert.
Ich habe nun Port A, B und C als Ausgänge definiert und alle auf low 
gesetzt und trotzdem habe ich an PortC Pin 3 immer high.

PORTD.DIR=0xFF;
PORTD.OUT=0x00;
PORTA.DIR=0xFF;
PORTA.OUT=0x00;
PORTC.DIR=0xFF;
PORTC.OUT=0x00;

Was ich auch versuche, Pin3 an PortC bleibt high.
Kann mir da jemand weiterhelfen?

von isnah (Gast)


Lesenswert?

Löt den Baustein "FT232RL" aus, dann kannst du den Pin C3 problemlos als 
Output auf "0" setzen. ;-)

von Philipp S. (xxvegasxx)


Angehängte Dateien:

Lesenswert?

ok aber dann kann ich das board ja nicht mehr über usb programmieren... 
hab den schaltplan als anhang rauf geladen

da muss es doch noch eine andere möglichkeit geben ;)

von Georg G. (df2au)


Lesenswert?

Philipp S. schrieb:
> da muss es doch noch eine andere möglichkeit geben

Solange der 232 seine Arbeit verrichtet, wird er den Pegel bestimmen. 
Der arme AVR kommt da nicht gegen an.

Du könntest in die Leitung zwischen AVR und 232 einen Widerstand von 
z.B. 4K7 setzen. Wenn dann PC3 auf Eingang steht (Bootlader), bestimmt 
der 232 den Pegel. Wenn PC3 als Ausgang arbeitet, begrenzt der 
Widerstand den Strom zum Ausgang des 232, falls sich beide nicht einig 
sind über den Pegel.

von Max H. (hartl192)


Lesenswert?

Oder man baut einen Jumper ein. Diesen müsste man dann setzen um den 
Bootloader benutzen zu können.

von Philipp S. (xxvegasxx)


Lesenswert?

also ich habe jetzt einen jumper eingebaut. ich flashe also, nehme dann 
den jumper heraus und schalte dann auf eine andere spannungsquelle und 
trotzdem bleib PC3 immer high :/

hat vielleich noch jemand eine idee?

von Alex (Gast)


Lesenswert?

Die Portpins sind bei Überlastung schnell zu schrotten.
Wenn der separierte Pin sich auch mit dem Debugger nicht verändern 
lässt,
hast du den Pin durch den Crash abgeschossen.

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

wenn da ein Bootloader drauf ist, dann schaltet der den UARTC0 ein, 
dessen TX-Pin an PC3 liegt. Offenbar wird der UART bei verlassen des 
Bootloaders nicht wieder deaktiviert und PC3 bleibt immer H.
Schalte ihn am Anfang deines Programms aus (UARTC0.CTRLB = 0), oder 
korrigiere den Bootloader.

Sascha

von Philipp S. (xxvegasxx)


Lesenswert?

Perfekt!!
Hab am Anfang jetzt USARTC0.CTRLB = 0;
scheint soweit super zu funktionieren, danke für die Hilfe

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.