mikrocontroller.net

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


Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

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

MfG

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja gut, Mess-Potential gegen Masse:

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

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was sagen die Fuse bits zum Watchdog

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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".

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...?

Autor: Sauger (Gast)
Datum:

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

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch ein Tipp: teste dein Programm mal im Simulator.

Autor: Mauritio di Mauro (Gast)
Datum:

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

Autor: Sauger (Gast)
Datum:

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

Autor: Mauritio di Mauro (Gast)
Datum:

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

Autor: Sauger (Gast)
Datum:

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

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Mauritio di Mauro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
>trotz so später Stunde.

ist doch er früh. Viel spaß noch

MfG

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.