mega32u2, Port lässt sich nicht schalten

OP #2490449
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? :/
#2490467
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
OP #2490499
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.
#2490741
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
OP #2491237
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
OP #2491721
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... ;)

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