Forum: Mikrocontroller und Digitale Elektronik atmel treibt nix an


von Yves (Gast)


Lesenswert?

hallo experten,

bin neuling im bereich der atmel uPC und komm schon bei
einem recht simplen (?) problem nicht weiter.
wenn ich die pegel an den ausgängen meines atmega 8
messe, ist alles wunderbar, saubere 0 oder 5 volt.
aber wehe, wenn ich direkt einen ttl eingang speisen
möchte... mal ganz abgesehen davon, verstehe ich eh
nicht, warum ich am eingang eines ttl-ics (bei mir
ein stinknormales 74ls138) eine spannung von ca. 1.2 v
ist (habe es ´nochmal mit einem neuen ic getestet, ohne
irgendwas angeschlossen zu haben. nur 5v und masse und
zack, alle eingänge haben 1 v. so, und wenn ich meinen
atmel ausgang mit einem solchen ttl-eingang speise, zieht der
den eingang nicht auf 0 v, sondern er bewegt sich nur
zwischen 1.2 und 5v! ich krieg so also nie auch nur
irgendwas in gang gesetzt. ich verzweifle!! pull-up und
pull-down widerstände etc. bringen auch nix, da siehts noch
schlimmer aus... also was um himmels willen mache ich falsch?

von Bernhard Koopmeiners (Gast)


Lesenswert?

Hallo Yves, ( gut das ich das nur schreiben muss )

die Mega... treiben (bei Vcc 5Volt) 20mA. Sowohl gegen Vcc wie auch 
gegen Gnd.
Beachte bitte, das Du je Port 3 Register hast:
DDRn, PORTn und PINn
Die Möglichkeiten kannst Du im Datasheet ansehen.
Wenn noch Fragen sind, einfach mailen.

Bernhard

von Yves (Gast)


Lesenswert?

hallo bernhard et. al.,

offtopic:
yves ist französisch, spricht man wie "Ihf"... ist also
harmlos, aber frag mich bitte nicht nach meinem nachnamen... ;-)

ontopic:
20 mA... habe ich gelesen, muß ja auch alleine schon wegen der 
möglichkeit, LEDs direkt zu treiben.. daher ja auch mein unverständnis, 
schließlich zieht ein ttl am eingang ja auch sogut wie gar keinen 
strom...
aber der hinweis mit dem DDRn... ich glaube, das könnte
der schlüssel sein. ich habe dieses register bisher nicht
genutzt, weil in den minibeispielproggies nirgends so ein
register benutzt wurde... allerdings waren die meist nicht
für die avr-mega-familie... also werde ich das gleich mal
ausprobieren, wenn ich wieder am basteltisch sitze.
und wenns dann funzt ist das wieder mal nur eine bestätigung für die 
korrektheit des akronyms RTFM!
drückt mir die daumen!

thanx so far,
yves

von Bernhard Koopmeiners (Gast)


Lesenswert?

Hallo Yves,

Du sagst es. Wenn das Datenrichtungsregister nicht gesetzt ist, also 
High, dann ist es ein Eingang. Somit setzt man mit dem Portbit nur den 
internen Pullup. Der zieht zwar den Pin auf High, ist aber natürlich 
nicht in der Lage einen relevanten Strom zu generieren. Der Pullup liegt 
bei 20-100K.

Ansonsten wünsche ich Dir viel Spass mit den Megas. Sie sind seit langer 
Zeit ( damals 8031 und Co ) das Beste was der Microcontrollerwelt 
passieren konnte.

Wenn noch Fragen auftreten sollten, ich haben den Käfern schon seit 
einiger Zeit privat und dienstlich meinen Willen aufgezwungen; sowohl in 
C ( erst GCC-C jetzt CodeVisionAVR-C ) wie auch in Assembler.

Bis dann
Bernhard

von Max (Gast)


Lesenswert?

Hallo!
Ich verzweifle gerade!
Meine 4 Stück ATmega163 sind nicht dazu zu bewegen, am PORTA 5V 
auszugeben. Die anderen PORTS arbeiten brav (Programm muß also richtig 
sein), nur auf A tut sich nix. Ich verwende CodevisionAvr und STK500 mit 
dem ich ISP programmiere.
Die 4 Stück sind Nagelneu und es steht die Nummer 240 unter der 
Typenbezeichnung. Kann es sein das damit was nicht stimmt.
danke Max

von mikki merten (Gast)


Lesenswert?

Hast du auch AGND und AVCC korrekt angeschlossen?

von Max (Gast)


Lesenswert?

Daaaaaaaaanke mein Meister!
Hab bei all den Versuchen immer den ADC mit dabei, somit war AVCC und 
AGnd immer angeschlossen, und PORTA hat eben nur zufällig funktioniert. 
Diesmal hab ich eine Schaltung ohne ADC aufgebaut und dachte das braucht 
eh nur der ADC. Funkt alles wieder!!!!:-)))
Steht eigentlich auch im Datenblatt, war aber auf der falschen Fährte.
Max

von Yves (Gast)


Lesenswert?

hallo zusammen,

danke an alle helfenden geister...
mein atmel treibt nun alle eingänge wie gewünscht...
es lag am nicht gesetzten ddrx register... wohl ein
typischer newbie-fehler, genau wie meine nicht gesetzte
rc-fuse den falschen takt angab... ich sags ja immer wieder,
RTFM.

danke nochmal.

falls es jemanden interessiert:
ich baue gerade eine led-laufschriftanzeige von der
firma textlite um.
dabei ersetze ich den zuvor eingebauten 8049 durch meinen
atmega8 und zeige dann meßwerte auf dem display an.
habe mir sozusagen ein piggyboard mit dem atmel gebaut
und nun geht das hacken in assembler los, da das board
nun einwandfrei funktioniert...
wen´s interessiert, versorge ich hinterher mit dem
programm und den näheren einzelheiten. einfach ne mail.

grüße yves

von Sebastian Fahrner (Gast)


Lesenswert?

@Yves:

Übrigens: Du hast oben geschrieben, daß Du Dich gewundert hast, daß Du 
am Eingang eines LS-ICs eine Spannung mißt. Das ist absolut okay: die 
Eingänge der ICs sind hochohmig und das Potential dort, wenn sie in der 
Luft hängen, ist nicht aussagekräftig.

Übrigens ist die Trennung von DDR und PORT eine tolle Sache. Damit kann 
man auch Open-Collector-Ausgänge machen:
Starke   0: PORT = 0, DDR = 1
Schwache 1: PORT = 1, DDR = 0

von mikki merten (Gast)


Lesenswert?

@sebastian
LSTTL sind nicht hochomig, sondern sind der offerne Emitter eines 
Transistors, dessen Basis über einen Widerstand mit Vcc verbunden ist. 
Schau dir mal die Innerschaltung eines solchen ICs an. Bei CMOS/NMOS und 
anderen Logikfamilien sehen die Verhältnisse etwas anders aus. Aber auch 
hier helfen entsprechende Datenblätter weiter.
Alle AVR Prozessoren verfügen immer über Push/Pull und nicht über 
Open-Collector bzw. Open-Drain Ausgänge.
Mit PORT = 0 und DDR = 1 ist der betreffende Port-Pin Ausgang und  ist 
nach GND gschaltet.
Mit PORT = 1 und DDR = 0 ist der Port-Eingang und der interne PullUp 
Widerstand (10-100k) zwischen Eingang und Vcc ist aktiviert.

von thkaiser (Gast)


Lesenswert?

@mikki: Sebastian schrieb ja auch, daß man damit Open-Collector "machen" 
kann - also simulieren.

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.