www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Keine Spannung (AVR-GCC-Tutorial: Einführungsbeispiel)


Autor: Winthrop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche grade das AVR-GCC Tutorium durchzuarbeiten, aber bleibe 
leider schon beim ersten Codebeispiel hängen.
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Das ist der C-Code, den ich versuche, zum Laufen zu bringen:
#include <avr/io.h>          // (1)
 
int main (void) {            // (2)
 
   DDRB  = 0xff;             // (3)
   PORTB = 0x03;             // (4)
 
   while(1) {                // (5a)
     /* "leere" Schleife*/  // (5b)
   }                         // (5c)
 
   /* wird nie erreicht */
   return 0;                 // (6)
}

Mit einem Multimeter hab ich folgende Spannungen gemessen (von VCC aus):
PC6 (RESET)     0,24V
PD0-PD4         0V
VCC             -
GND             3,22V
PB6 (TOSC1)     2,35V
PB7 (TOSC2)     2,68V
PD5             0V
PD6             0,25V
PD7             0,24V
PB0             0V

PC5-PC0         0,30V
GND             3,22V
AREF            0,30V
AVCC            0,69V
PB5-PB1         0V

Sollte bei PB0 und PB1 nicht Betriebsspannung anliegen?
Ich habe einen Quarz an TOSC1/TOSC2 angeschlossen und eine Brücke 
zwischen GND (Pin8) und GND (Pin22) gesetzt.

Das Beispiel habe ich schon einmal zum Laufen gebracht, aber irgendwas 
mache ich wohl falsch.
Wäre schön, wenn jemand einem Anfänger helfen könnte.
Danke

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> VCC             -
> GND             3,22V

Das ist übel.

Überprüfe deine Schaltung und/oder deine Art zu messen (Verkabelung 
Multimeter, Messpunkte an der Schaltung).

COM (Konvention schwarze Messleitung) vom Multimeter an GND, V 
(Konvention rote Messleitung) vom Multimeter an den zu untersuchenden 
Messpunkt. Multimeter in DCV (Gleichspannung) Einstellung im Messbereich 
>5V z.B. 20V Messbereich.

Autor: Winthrop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> VCC             -
weil ich von hier aus messe.

> GND             3,22V
das müsste dann doch meine Betriebsspannung sein? Also von VCC zu GND.

Ich messe jeweils an den "Beinchen" des Controllers.
Mach ich dabei schon was falsch?

Autor: Markus E. (engelmarkus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du von VCC aus misst, dann heißt das für mich, dass du die schwarze 
Leitung an VCC hältst und die rote an GND. Dann müssten es aber -3,22V 
sein...

Autor: Winthrop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> COM (Konvention schwarze Messleitung) vom Multimeter an GND, V
> (Konvention rote Messleitung) vom Multimeter an den zu untersuchenden
> Messpunkt. Multimeter in DCV (Gleichspannung) Einstellung im Messbereich
>>5V z.B. 20V Messbereich.

> Wenn du von VCC aus misst, dann heißt das für mich, dass du die schwarze
> Leitung an VCC hältst und die rote an GND. Dann müssten es aber -3,22V
> sein...

Ahhh OK. Dann hab ich falsch gemessen (falsche Richtung und von VCC).
Hier sind die Messergebnisse von GND aus:
RESET        2,77V
PD0-PD4      0V
VCC          3,23V
GND          -
TOSC1        0,79
TOSC2        0,57
PD5-7        0V
PB0          0V

PC5-PC0      0V
GND          0V
AREF         0V
AVCC         2,54V
PB5-PB1      0V

Falls es relevant ist: ich benutze einen ATMEGA328P-PU.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Winthrop schrieb:

> VCC          3,23V

d.h. Deine Platine versorgt den AVR mit ca. 3.3V. Schafft es dein 
ISP-Programmer (welcher?) ein 3.3V System zu programmieren?

Bist du sicher, dass das Programm im ATMEGA328P-PU ist? Eventuell zur 
Kontrolle mal auslesen und das ausgelesene HEX-File posten.

> TOSC1        0,79
> TOSC2        0,57

Externe Taktquelle angeschlossen? Mit einem Multimeter kannst du das 
nicht vernünftig messen, ja es besteht sogar die Gefahr, dass du durch 
die MEssung die Taktrate stark veränderst.

> AVCC         2,54V

Etwas mager - das sollte Vcc oder in der Nähe von Vcc sein.

>>   PORTB = 0x03;             // (4)
> PB0          0V
> PB5-PB1      0V

d.h. Erwartet wird an PB0 und PB1 ein HIGH Pegel. Die sind nicht 
vorhanden. Ist an diesen Pins noch etwas angeschlossen?

Autor: Winthrop (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> d.h. Deine Platine versorgt den AVR mit ca. 3.3V. Schafft es dein
> ISP-Programmer (welcher?) ein 3.3V System zu programmieren?

Verwende einen AVRISP mkII.
Ich gehe davon aus, dass er das kann, da ich den gleichen Kreislauf 
schonmal vor einigen Monaten erfolgreich mit derselben Hardware getestet 
habe.

> Bist du sicher, dass das Programm im ATMEGA328P-PU ist? Eventuell zur
> Kontrolle mal auslesen und das ausgelesene HEX-File posten.

Es kommt mir so vor, weil, wenn ich im AVRStudio im Verbindungsdialog 
zum Chip auf "Verify" klicke, bekomm ich keine Fehlermeldung.
Um den Code zu kompilieren und auf das Gerät zu laden, gehe ich so vor:
1. Compile Active File (Alt+F7)
2. Write Flash Memory Using Current Settings

Die HEX-Datei ist im Anhang.

>> TOSC1        0,79
>> TOSC2        0,57
>
> Externe Taktquelle angeschlossen? Mit einem Multimeter kannst du das
> nicht vernünftig messen, ja es besteht sogar die Gefahr, dass du durch
> die MEssung die Taktrate stark veränderst.

D.h. wenn ich Pech hab, ist jetzt der Quarz kaputt?

>> AVCC         2,54V
>
> Etwas mager - das sollte Vcc oder in der Nähe von Vcc sein.

Bin mir nicht ganz sicher, aber irgendwo habe ich gelesen, dass es Sinn 
macht zwischen VCC und AVCC eine Brücke zu machen. Stimmt das?

>>>   PORTB = 0x03;             // (4)
>> PB0          0V
>> PB5-PB1      0V
>
> d.h. Erwartet wird an PB0 und PB1 ein HIGH Pegel. Die sind nicht
> vorhanden. Ist an diesen Pins noch etwas angeschlossen?

Nein, es ist nichts angeschlossen. Habe nur mit dem Multimeter gemessen, 
ohne, dass es sonst eine Verbindung gibt.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 1. Compile Active File (Alt+F7)
> 2. Write Flash Memory Using Current Settings

Beitrag "Re: ATMega16-16 macht nichts!"

Mach noch einen Schritt 1,5: Pfad zum erzeugten HEX-File angeben/zeigen. 
Eventuell flashst du dauernd das Hexfile vom Vorgängerprojekt...

>>> AVCC         2,54V
>> Etwas mager - das sollte Vcc oder in der Nähe von Vcc sein.
> Bin mir nicht ganz sicher, aber irgendwo habe ich gelesen, dass es Sinn
> macht zwischen VCC und AVCC eine Brücke zu machen. Stimmt das?

Jo. Brücke oder, wie Atmel in den Hardwaretips (=> Appnote suchen) an 
gibt, eine Induktivität, um Störungen auf dieser Leitung zu 
glätten/filtern.

Ist die angehängte HEX-Datei die ausgelesene Datei oder die zu flashende 
Datei?

Autor: Winthrop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mach noch einen Schritt 1,5: Pfad zum erzeugten HEX-File angeben/zeigen.

X:\programmaen\src\BlinkenLights_v1\default\BlinkenLights_v1.hex

Also das müsste die richtige Datei sein.

> Jo. Brücke oder, wie Atmel in den Hardwaretips (=> Appnote suchen) an
> gibt, eine Induktivität, um Störungen auf dieser Leitung zu
> glätten/filtern.

Ahhh prima. Jetzt ist bei beiden genau gleich viel Spannung (3,22V).

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die HEX-Datei macht im Simulator genau das, was ich von dem 
Einführungsbeispiel im AVR-GCC-Tutorial erwarte.

Du musst es "nur" schaffen genau diese Datei in deinen AVR zu flashen. 
Da auch der Hinweis auf den AVR Studio Nervbug mit dem Pfad. Die 
richtige Datei muss im Programmierdialog angegeben werden. Ich benutze 
AVR Studio nicht zum ISP-Programmieren und kann da nicht helfen.

Wenn du bereits den AVR ausgelesen hast und die HEX-Datei der 
ausgelesene Inhalt ist, ist etwas oberfaul.

Autor: Winthrop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab grad den µc gewechselt. Komischerweise gehts jetzt.
Auch wenn ich wieder den alten Chip zurücksteck.
Vielleicht wars ein Wackelkontakt?
Keine Ahnung, aber es geht jetzt endlich!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.