Forum: Mikrocontroller und Digitale Elektronik seltsame Ergebnisse beim Messen von Spannungen


von Mauritio di Mauro (Gast)


Lesenswert?

Guten Abend.

Ich möchte eine Spannung messen, aber ich komme nicht zu dem Ergebnis, 
welches ich eigentlich haben möchte.

Ich verwende:

uC: Atmega88-20PU
Programmer: AVRISP mk2
Programm AVR-Studio

Schaltung auf Steckbrett.

aus dem Tutorial hab ich das Programm verwendet:

.include "m8def.inc"

         ldi r16, 0xFF       ; lade Arbeitsregister r16 mit
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB au
         ldi r16, 0b00000000 ; 0b11111100 in r16 laden
         out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

Laut Datenblatt sind PortBs die Beinchen 14,15,16,17,18,19, B ist 
5bit-Breit, dennoch verwende ich 8bit-Register, weil ich 5bit nicht 
darstellen kann. Wenn ich nun 0b00000000 in den uC flashe, dann müste an 
den Kontakten 14-19 die Spannung gegen Masse 0V sein (keine LED 
leuchtet). Schreibe ich 0b0011111 in den uC, dann müsste die Spannung 5 
Volt betragen bei den Kontakten 14-19, also die LEDs aufleuchten. Ich 
habe zur Zeit keine LEDs dran, nur ein Multimeter. Ich messe immer egal 
ob gegen Masse oder +5Volt aus der Spannungsversorgung immer 0,8 Volt.

Beim Compilieren und Flashen meckert AVR-Studio nicht, also muss doch 
das Programm korrekt übertragen worden sein.

Bei den Fusebits hab ich nix verändert, da ist bei SPIEN und CKDIV ein 
Häkchen gesetzt und bei SUT_CKSEL steht: "Int. RC OSC 8MHZ StartUPtime 
... 6CK14CK+65ms.

Worin besteht vielleicht mein Fehler? Da das AVR-Studio nix meckert, 
gehe ich davon aus, dass keine Fehler bei der Bedrahtung gemacht wurden, 
sonst hätt es ja bestimmt nicht geklappt. Oder hab ich einen Denkfehler 
in Bezug auf die Spannungsmessung? Ich hab halt grade keine LEDs zur 
Hand und so dacht ich, mit dem Multimeter gegen Masse kann man auch die 
Spannung messen, die 5 Volt betragen müsste, wenn die jeweiligen Bits 
auf 1 stehen und 0V, wenn sie auf 0 stehen.

Vielen Dank im Voraus.

von Karl H. (kbuchegg)


Lesenswert?

Mauritio di Mauro schrieb:

> Hand und so dacht ich, mit dem Multimeter gegen Masse kann man auch die
> Spannung messen, die 5 Volt betragen müsste, wenn die jeweiligen Bits
> auf 1 stehen und 0V, wenn sie auf 0 stehen.

Ganz genau so funktioniert das.

Miss mal die Spannung an allen Versorungspins deines Mega88 an. Und miss 
auch mal die Spannung am Reset-Pin nach. Die muss 5V sein.

von Sauger (Gast)


Lesenswert?

Moin,

das auf Port B das SPI + ISP Interface hängt wurde beachtet?

MfG

von Mauritio di Mauro (Gast)


Lesenswert?

Ja gut, Mess-Potential gegen Masse:

Reset-Pin: 5V (Pin 1)
Vcc: 5V (Pin 7)
GND: 0V (Pins 8+22)

von Mauritio di Mauro (Gast)


Lesenswert?

Sauger schrieb:
> Moin,
>
> das auf Port B das SPI + ISP Interface hängt wurde beachtet?
>
> MfG

Also, in dem Tutorial steht ja, es würde nix ausmachen, wenn der 
Programmer daran hängt. Aber ich habe immer, wenn ich den uC geflasht 
habe den Steckverbinder von dem Programmer rausgemacht, das Netzteil 
kurz abgestellt und es dann "neu" gestartet.

von Mauritio di Mauro (Gast)


Lesenswert?

Jetzt hab ich einfach mal anstelle von DDRB und PORTB DDRD und PortD 
verwendet, um es an einem anderen Kontakt zu probieren, also nicht da, 
wo der Programmer dransitzt, aber es klappt da auch nicht :-(

von Sauger (Gast)


Lesenswert?

Mauritio di Mauro schrieb:
> Beim Compilieren und Flashen meckert AVR-Studio nicht, also muss doch
> das Programm korrekt übertragen worden sein.

richtige Datei zum Flashen eingestellt?

MfG

von Mauritio di Mauro (Gast)


Lesenswert?

Sauger schrieb:
> richtige Datei zum Flashen eingestellt?

Ja, ich hab nochmal nachgeschaut. Das AVR-Studio speichert nach dem 
Compilieren nicht alte .hex-Dateien ab, sondern es wird immer die 
genommen, die nach dem Drücken von F7 erstellt wurde.

von Sauger (Gast)


Lesenswert?

was sagen die Fuse bits zum Watchdog

von Mauritio di Mauro (Gast)


Lesenswert?

Sauger schrieb:
> was sagen die Fuse bits zum Watchdog

meinst Du damit das FuseBit "SUT_CKSEL"? Dass steht auf "Int. RS Osc. 
8Mhz StartUpTime PWRDWN/RESET 6CK/14 CK + 65ms".

von Mauritio di Mauro (Gast)


Lesenswert?

Oder muss ich den uC erstmal noch irgendwie starten? Fängt der von 
selber an, das geflashte Programm abzuspielen, wenn ich den 
ISP-Programmer herausziehe? Oder muss ich nochmal das Netzteil Ein- und 
Ausschalten ...?

von Sauger (Gast)


Lesenswert?

nein sollte WDTON oder ähnlich heißen, habe zur Zeit keine AVR Umgebung.

von Sauger (Gast)


Lesenswert?

noch ein Tipp: teste dein Programm mal im Simulator.

von Mauritio di Mauro (Gast)


Lesenswert?

Das FuseBit WDTON ist nicht gesetzt. Ich habe es aber grade mal gesetzt, 
alles neu draufgespielt, aber leider klappt es immer noch nicht .-(

von Sauger (Gast)


Lesenswert?

wieder ausschalten. Probier mal den Simulator, um ein Gefühl für die 
Register zu bekommen.

von Mauritio di Mauro (Gast)


Lesenswert?

Also, alle Register bis auf R16 mit 0xFF haben den Wert 0x00.

von Sauger (Gast)


Lesenswert?

sehe gerade das du einen Mega88 verwendest. Mach mal aus
.include "m8def.inc" ein .include "m88def.inc"

von Mauritio di Mauro (Gast)


Lesenswert?

Hmm, also jetzt gibt es in der Tat eine kleine Verbesserung. Jetzt 
unterscheiden sich zumindest schon mal die Spannungen, somit lag der 
Fehler wohl bei der include-Datei.

Ich messe jetzt, wo das Bit gesetzt ist, knapp 1,9 Volt, bei Bit nicht 
gesetzt 0,7 Volt etwa. Aber ich komme noch nicht auf 5 Volt, woran 
könnte dass denn liegen?

von Sauger (Gast)


Lesenswert?

Mauritio di Mauro schrieb:
> Ja gut, Mess-Potential gegen Masse:
>
> Reset-Pin: 5V (Pin 1)
> Vcc: 5V (Pin 7)
> GND: 0V (Pins 8+22)

Beschalte auch AVCC (5V)

von Mauritio di Mauro (Gast)


Lesenswert?

Hmm, ich habe einen anderen Fehler gemacht, AVCC war auch mit +5V 
verbunden, jedoch stand der Trafo nur auf 3 Volt, jetzt steht er auf 6 
Volt und ich bekomme saubere 5 Volt. Der Fehler lag dann wohl in der 
Hauptsache bei der Verwendung der falschen HeaderDatei.

Ich danke Dir sehr herzlich für Deine Unterstützung, so dass Du mir die 
Welt der Mikrocontroller etwas näher gebracht hast - trotz so später 
Stunde.

von Sauger (Gast)


Lesenswert?

Moin,
>trotz so später Stunde.

ist doch er früh. Viel spaß noch

MfG

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.