Forum: Mikrocontroller und Digitale Elektronik Arduino Leonardo stellt sich tot


von Thomas (Gast)


Lesenswert?

Hallo,
ich hab mal eine Frage. Nachdem ich mein Arduino Leonardo Atmel Studio 
"tauglich" gemacht hab macht er nichts mehr.

Gleich vorweg ich bin absoluter neuling und beschäftige mich auch nicht 
ständig damit aber eben immer mal wieder.

Zunächst wurde er in Atmel Studio nicht richtig erkannt. Ich mußte ihn 
neu flashen und hab dabei logischer weise den Bootloader überschrieben.
Nun wird er zwar sofort erkannt aber er macht nichts mehr. Bei einem 
einfachen Blinklicht Programm blinkt nichts:(

Er lässt sich auslesen und auch programmieren, es gibt keine 
Fehlermeldungen aber es passiert einfach nichts(z.B. an den Ports als 
Ausgang geschaltet).

Auch die RX/TX Led´s gehen nicht mehr an als würde er sicht tot stellen.

Wäre schade denn ich hab mir extra dieses tolle Buch Arduino und C... 
gekauft.

Und nun...

Würde mich sehr über Hilfe freuen.

Grüße Thomas

von Thomas (Gast)


Lesenswert?

Noch kurz zur Information.
Er hängt über ISP an einem AVRISP mkII, alles wird in Atmel Studio 6 
erkannt.

unter meinem Windows 7 sind alles notwedigen Treiber installiert(wie 
gesagt erkannt wird er. Auslesen und Programmieren lassen lässt er sich 
aber wie oben beschrieben)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Meine 2009er brauchen einen Reset Impuls vom Stöpseln des USB, bevor sie 
wieder richtig loslegen. Allerdings fehlt da noch eine Menge Info:
* Wie stehen die Fuses des MC?
* Wie sieht dein Programm aus?
* Betreibst du den Leonardo mit USB oder einem externen Netzteil?

von Thomas (Gast)


Lesenswert?

Hallo,
sorry wegen den fehlenden Infos. Ich versuch alles so gut es geht zu 
vervollständigen.

Der Reset Taster geht überhaupt nicht mehr(keine Reaktion).
An Fuses in Atmel Studio sind eingestellt:
BODLEVEL: 2V6
ISPEN ist ausgewählt
BOOTSZ:  2048W_3800
SUT_CKSEL:  EXTXOSC_8MHZ_XX_16KCK_65MS

Lock Bits sind alle auf NO_LOCK

Hier das Programm:
(debugging verläuft ohne Fehler)

/*
*Blink1.c
*
*created: 2013
*/
#define F_CPU16E6

#include <avr/io.h>
#include <util/delay.h>


int main(void)
{DDRB = 13<<5;

  while(1)
{PORTB = 13 << 5;
  _delay_ms(500);
  PORTB &= ~(13 << 5);
  _delay_ms(500);

}
}

Falls ich irgendwas vergessen habe sagen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas schrieb:
> #define F_CPU16E6

Selbst wenn diese Notation funktioniert, was ich im Moment nicht weiss, 
muss da ein Leerzeichen rein, also besser:
1
#define F_CPU 16000000
Wichtig ist aber primär, das die richtige Frequenz in den 
Projekteinstellungen drinsteht. Dann kannst du dir die Programmzeile 
normalerweise sparen.

Thomas schrieb:
> DDRB = 13<<5;

Das geht so nicht, bzw. liefert nicht das gewollte. Wenn du Bit 5 des 
PORT B als Ausgang möchtest, ist so etwas angesagt:
1
DDRB = (1<<PB5);
Das gleiche gilt für das Setzen des Pegels weiter unten. Besser:
1
#define LED_BIT PB5
2
3
DDRB = (1 << LED_BIT);
4
while (1) 
5
{
6
   PORTB |= (1 << LED_BIT);
7
   _delay_ms(500);
8
   PORTB &= ~(1 << LED_BIT);
9
   _delay_ms(500);
10
}

von Thomas (Gast)


Lesenswert?

Danke für die Hinweise.
Habs mal probiert. Leider tut sich dennoch nichts. Irgendwie hab ich den 
Eindruck das der mc einen Hardwareschaden hat(wodurch auch immer). Wie 
gesagt haben früher beim übertragen oder lesen von Daten vom mc die 
TX/RX Led´s Aktivität angezeigt. Auch hier blinkt nichts mehr.

von Thomas (Gast)


Lesenswert?

Es ist es nun mal die treffendste Aussage.
Also wenn du mir helfen willst dann hör ich mir an was du zu sagen hast, 
wenn nicht dann halt dich bitte raus.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas schrieb:
> Wie
> gesagt haben früher beim übertragen oder lesen von Daten vom mc die
> TX/RX Led´s Aktivität angezeigt

Das ist nur so, wenn du den Arduino Bootloader benutzt, dieser flasht ja 
über die USB Bridge. Du kannst aber gerne mal probieren, den Bootloder 
wieder in den Chip zu flashen und dann sehen, ob er wieder wie ein 
vanilla Arduino läuft.
Nimm als LED Ausgabe auch einfach mal einen anderen Port, z.B. PB4 oder 
so. Wenn ich mich richtig erinnere ist bei meinen 2009ern an PB4 die 
kleine Onboard LED.
Wenn der MC richtig defekt wäre, könntest du auch nichts mehr mit dem 
ISP MkII lesen und schreiben, der Chip ist also vermutlich ganz.

von Thomas (Gast)


Lesenswert?

Wirst wohls recht haben. Hatte auch schon vor den Bootloader mal wieder 
zu flashen(soweit ich weis gibt es den im Internet runter zu laden.).

Anderen Port hatte ich schon einige probiert, keine Änderung.

Die besagte onboard LED bei dir ist bei mir PB13.

Ich werd mal wegen dem Bootloader gucken und es versuchen. Danke für 
deine Hilfe auf jeden Fall. Wenn sich etwas ergibt sag ich bescheid.

von als Gast (Gast)


Lesenswert?

Thomas schrieb:
> SUT_CKSEL:  EXTXOSC_8MHZ_XX_16KCK_65MS

hab kein Ardudingsda, aber das liest sich so als ob der nur mit einem 
Externen Quarzoszilator (kein Quarz alleine) lostaktet

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas schrieb:
> Die besagte onboard LED bei dir ist bei mir PB13.

Tut mir leid, PB13 gibts bei ATMega nicht. Verwechsele bitte nicht 
diesen Kram von digitalWrite() aus den Arduino Sketchen mit echten 
Ports. Jeder Port des AVR hat max. 8 Bit, und beim ATMega32u4 sind die 
Ports mit den vollen 8 bit PORTB und PORTD. PortF scheint nicht ganz 
komplett herausgeführt zu sein.

von Thomas (Gast)


Lesenswert?

Ok, dann hab ich was verwechselt. Ich werd jetzt erstmal bissle weg 
sein. Also falls noch antworten kommen dann nicht böse sein wenn ich 
nicht sofort Antworte. Natürlich darf ich nicht vergessen das ich euro 
Hilfe nötiger habe als umgekehrt:)

von Harald W. (wilhelms)


Lesenswert?

Thomas schrieb:

> das ich euro Hilfe nötiger habe

Ach, wohnst Du in Zypern?
:-)
Gruss
Harald

von Sebastian W. (sebastian_w29)


Lesenswert?

Thomas schrieb:
> Die besagte onboard LED bei dir ist bei mir PB13.

Siehe 
http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf. Die 
Onboard-LED hängt am Arduino-Pin IO13, also an PC7 von PORTC!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sebastian W. schrieb:
> Die
> Onboard-LED hängt am Arduino-Pin IO13, also an PC7 von PORTC!

Aha, das erklärt doch einiges - lustig, das die LED über einem Opamp 
angesteuert wird, hatten wohl noch eine Hälfte frei. Von Port C sind am 
ATMega32U4 nur 2 Pins herausgeführt, PC6 und PC7. Port E ist nur mit PE6 
und PE2 herausgeführt, und bei Port F fehlen PF2 und PF3.
Als volle 8 - bit Ports stehen dir also Port D und Port B zur Verfügung.
Um die Onboard LED blinken zu lassen, schreibst du dein Programm also 
auf Port C, Bit 7 um.

von als Gast (Gast)


Lesenswert?

Sebastian W. schrieb:
> Siehe
> http://arduino.cc/en/uploads/Main/arduino-leonardo.... Die
> Onboard-LED hängt am Arduino-Pin IO13, also an PC7 von PORTC!

Im Schaltplan vom "Leonardo" ist als Taktquelle ein Quarz eingezeichnet.

Thomas schrieb:
> SUT_CKSEL:  EXTXOSC_8MHZ_XX_16KCK_65MS

Deutet das nicht auf einen externen Resonator hin?

von tobi (Gast)


Lesenswert?

als Gast schrieb:
> Sebastian W. schrieb:
>> Siehe
>> http://arduino.cc/en/uploads/Main/arduino-leonardo.... Die
>> Onboard-LED hängt am Arduino-Pin IO13, also an PC7 von PORTC!
>
> Im Schaltplan vom "Leonardo" ist als Taktquelle ein Quarz eingezeichnet.
>
> Thomas schrieb:
>> SUT_CKSEL:  EXTXOSC_8MHZ_XX_16KCK_65MS
>
> Deutet das nicht auf einen externen Resonator hin?

Nein, wenn dann Oszillator.

ISP würde aber ohne Takt nicht gehen, von daher vermute ich den Fehler 
woanders.

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.