Mit einem Multimeter hab ich folgende Spannungen gemessen (von VCC aus):
1
PC6 (RESET) 0,24V
2
PD0-PD4 0V
3
VCC -
4
GND 3,22V
5
PB6 (TOSC1) 2,35V
6
PB7 (TOSC2) 2,68V
7
PD5 0V
8
PD6 0,25V
9
PD7 0,24V
10
PB0 0V
11
12
PC5-PC0 0,30V
13
GND 3,22V
14
AREF 0,30V
15
AVCC 0,69V
16
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
> 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.
> 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?
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...
> 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:
1
RESET 2,77V
2
PD0-PD4 0V
3
VCC 3,23V
4
GND -
5
TOSC1 0,79
6
TOSC2 0,57
7
PD5-7 0V
8
PB0 0V
9
10
PC5-PC0 0V
11
GND 0V
12
AREF 0V
13
AVCC 2,54V
14
PB5-PB1 0V
Falls es relevant ist: ich benutze einen ATMEGA328P-PU.
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?
> 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.
> 1. Compile Active File (Alt+F7)> 2. Write Flash Memory Using Current SettingsBeitrag "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?
> 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).
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.
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!