Forum: Compiler & IDEs mega32u2, Port lässt sich nicht schalten


von Martin K. (dschadu)


Lesenswert?

Ich verzweifel grad total.
Eigentlich wollte ich nen größeres Programm testen, nachdem die Hardware 
endlich fertig gestellt wurde. Erst viel mir auf das die UART 
übertragung garnichts tut, dann hab ich halt vereinfacht bis zu einer 
LED.
Aber selbst die lässt sich nicht dazu bewegen zu leuchten.
Die LED's funktionieren, da sie auf den Mosi Miso SCK Pins liegen und 
blinken auch beim programmieren.
Mit einem Mega32 geht das selbe Test-Program problemlos (natürlich für 
mega32 compiled) Also kein Hardwarefehler

-Board ist nen selbstentwickeltes simples Testboard, mit einem Mega32 
funktioniert alles (UART, LEDs...) Der 32u2 sitzt auf einem Adapter und 
lässt sich anstandslos Programmieren

-Spannung ist wählbar 5V oder 3,3V. Der Mega32 läuft natürlich mit 5V, 
der 32u2 mit 3,3V, aber auch bei 5V tut sich nicht

-Programer ist der AVR ISP MKII

-Takt ist Externer Quarz mit 8Mhz

-Code:
1
#define F_CPU 8000000
2
3
#include <avr/io.h>
4
5
int main(void)
6
{
7
  DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
8
  
9
  PORTB = (1<<PORTB3)|(1<<PORTB2)|(1<<PORTB1)|(1<<PORTB0);
10
11
  while (1)
12
  {
13
  }
14
}

-Fuses:
BODLEVEL = 2V7
HWBE = [ ]
DWEN = [ ]
RSTDISBL = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 2048W_3800
BOOTRST = [ ]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_65MS

EXTENDED = 0xFE (valid)
HIGH = 0xD9 (valid)
LOW = 0xFF (valid)


Solangsam hab ich das gefühl das ding will mich verarschen. Was mach ich 
falsch? :/

von Andreas B. (andreasb)


Lesenswert?

Alle GND Pins verkabelt?

Versorgungspannung (ohne Programmer) kontrolliert? Ich habs schon 
geschafft ein AVR ohne Versorgungspannung (VCC nicht angeschlossen) zu 
programmieren, wie auch immer...


Schaltplan?


Einfach mal alle IO Ports und DDRs auf 0xAA schalten und mal mit dem 
Multimeter messen... Jeder zweite Pin müsse 0 und die andere 1 sein.



mfg Andreas

von Martin K. (dschadu)


Lesenswert?

Hardwarefehler schließe ich aus.
Versorgungsspannung ist 3,264V am Pin vom µC, der 32u2 hat ja nur einen.
Das ganze sitzt auf einem ZIF 40 Sockel, der Mega32 funktioniert 
Tadellos - sprich UART, LED's etc gehen.
Auf der vorherigen Version meines Test-Boards lief der 32u2 Aboslut 
Problemlos mit einem 16Mhz Quarz und 5V. Das neue hab ich gebaut, damit 
ich 3,3V hab und halt div. andere Änderungen, aber nix großes.
Ich hab eben mal das (funktionierende) USB Serial Program aufgespielt, 
nix passiert.
Ist es möglich das der Controller defekt ist? Aber wieso lässt er sich 
dann noch ohne Probleme programieren? Hin und wieder blinkt der 
Programer mal Orange, hört aber auf sobald ich "Read" anklicke, dann ist 
die LED grün und er zeigt die korrekte Device ID an.

von Andreas B. (andreasb)


Lesenswert?

Reset kurzgeschlossen?

Wenn du Reset kurzschliesst lässt sich der AVR Programmieren, aber das 
Programm läuft nie an. Am Reset müsstest du einen High Pegel messen.

Normalerweise lässt er sich dann aber nur ein mal Programmieren... Hatte 
erst vor kurzem selbst dieses Problem...

Ich habe bis jetzt noch keine AVR Kaputt gekriegt. Habe vor kurzem mit 
einem Betreuer gesprochen der AVR Experimentierboards für das Studium 
verwaltet, der hat ziemlich schlimme Geschichten erzählt, was alles 
passiert ist, aber ein AVR ist dabei nie kaputt gegangen. Selbst bei 
einem 8A Kurzschluss nicht, da hat sich vorher die Leiterbahn 
aufgelöst...

Aber wenn dir niemand mehr weiterhelfen kann hilft das tauschen des AVR 
auf jeden Fall. Du weist nachher das er entweder kaputt war oder das du 
doch einen Hardware Fehler eingebaut hast;-)

>Hardwarefehler schließe ich aus.
Du solltest nie etwas ausschliessen, selbst das unwahrscheinlichste kann 
eintreten;-) Murphy lasst grüssen...



mfg Andreas

von Martin K. (dschadu)


Lesenswert?

Das kontrollier ich morgen mal mit dem Reset, danke!

von JTAG (Gast)


Lesenswert?

hat der auch JTAG?
FUSE entsprechend gesetzt, um es abzuschalten?

von Martin K. (dschadu)


Lesenswert?

Wie im ersten Post geschrieben, das sind die Fuses (direkt aus AVR 
Studio 5 rauskopiert)

-Fuses:
BODLEVEL = 2V7
HWBE = [ ]
DWEN = [ ]
RSTDISBL = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 2048W_3800
BOOTRST = [ ]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_65MS

EXTENDED = 0xFE (valid)
HIGH = 0xD9 (valid)
LOW = 0xFF (valid)


und selbst mit JTAG musste das USB Serial program ja laufen

von Andreas B. (andreasb)


Lesenswert?

Martin K. schrieb:
> und selbst mit JTAG musste das USB Serial program ja laufen

JTAG deaktiviert die entsprechenden Pins, und wenn du genau diese 
Verwendest passiert nichts, wobei der JTAG bevorzugt nicht auf der 
seriellen Schnittstelle liegt... Normalerweise;-)



mfg Andreas

von Martin K. (Gast)


Lesenswert?

JTAG liegt kaum auf den Hardware Pins des USB ;)

Es ist der reset - hab da nur 1,1V, Kurzschluss zu dem rx Pin. Irgendwo 
wohl bisl gematscht beim löten ;)

Danke für den Hinweis!!

von Andreas B. (andreasb)


Lesenswert?

>Hardwarefehler schließe ich aus.

Also doch Hardware Fehler;-)

Aber dann ist ja gut wenn du den Fehler gefunden hast...




mfg Andreas

von Martin K. (dschadu)


Lesenswert?

>>Hardwarefehler schließe ich aus.
>
> Also doch Hardware Fehler;-)

Das hab ich geschrieben, weil die Platine mit dem Mega32U2 vorher ohne 
Probleme auf dem alten Board lief.
Jetzt auf dem neuen hab ich aber extra ne Beschaltung für den MAX232 
davor gesetzt, damit der auch mit 3,3V funktioniert. Und diese Schaltung 
zieht die Spannung runter. Das war vorher nicht der Fall, da die 
Leitungen offen waren und ich bis dahin nie den UART brauchte auf dem 
32U2.
So läufts... ;)

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.