Forum: Mikrocontroller und Digitale Elektronik AVR @ 5 V, Pin high @ 1 V


von Gast (Gast)


Lesenswert?

Hi, ich treibe per AVR über 330 Ohm ein Sharp SSR gegen Masse. Der AVR 
wird mit 5 V betrieben.

Der Port wird mit
PORTx=0;
DDRx= (1<<SSRPIN);

initialisiert.

Komischerweise messe ich am Pin nur 1 V. Wat kann dat sein?

von R. F. (inet_surfer88)


Lesenswert?

Welcher Controller genau?
Welcher Pin?

Ist es der Pin von der JTAG-Schnittstelle? Falls ja, muss diese 
deaktiviert werden.

von Fump (Gast)


Lesenswert?

> 1 V. Wat kann dat sein?

1V. Sind ähh... 1V. Was sonst?

Was erwartest Du denn da und wie kommst Du darauf das zu erwarten?

von Gast (Gast)


Lesenswert?

Vcc 4.9 V

Tiny25, PB4 = 1.00 V

S202S12: 1.2 V @ 20 mA

Über dem SSR:  0.97 V

Über den 330 Ohm : 36 mV -> 11,8 mA

von (prx) A. K. (prx)


Lesenswert?

Gast schrieb:

> Über den 330 Ohm : 36 mV -> 11,8 mA

Der arme Herr Ohm... 36mV bei 11,8mA gibt's bei 3,3 Ohm.

Was ab und zu vorkommt: Das jemand versehentlich DDR nicht setzt, oder 
das falsche Bit, oder irgendwo wieder zurücksetzt. Dann zieht nur noch 
der hochohmige Pullup hoch und es kommt genau sowas bei raus.

von R. F. (inet_surfer88)


Lesenswert?

Wenn ich mal schnell ins Datenblatt vom SSR schaue will das mind. 6V.
Da wird die Versorgung von 4,9V wohl nicht reichen, damit das Teil 
zuverlässig funktioniert.

Dann hat PB4 ne Menge an Sonderfunktionen, z.B. Anschluss für Quarz und 
noch viel viel mehr. Mal die Fuses kontrollieren, ob der Pin wirklich 
als Ausgang konfiguriert ist.

von Gast (Gast)


Lesenswert?

Oh ja, der arme Herr Ohm :-)

Mhh, ich forsche weiter. Danke jedenfalls für die Hilfsbereitschaft.

von Peter R. (pnu)


Lesenswert?

Wenn das SSR ein Optokoppler sein soll ( ich bin in Abkürzungen nicht so 
perfekt), schalte doch probeweise anstelle des Optokopplers eine LED an 
den Anschluss. Die leuchtet Dir dann schon heim, in bezug auf richtige 
Polung der LED oder auf richtigen Wert des Widerstands (330Ohm) oder auf 
Softwarefehler.

von Werner (Gast)


Lesenswert?

>Wenn das SSR ein Optokoppler sein soll..

Solid State Relays, nehme ich mal an.

Außerdem tippe ich auch stark auf eine falsche DDRx def, will heißen:
Der Pin ist wahrscheinlich ein Eingang mit aktiviertem Pullup.

Wie ist denn Dein "SSRPIN" definiert?

Und: wenn Deine Init so:
>>DDRx= (1<<SSRPIN);

aussieht, kann es sein, dass du zu einem späteren Zeitpunkt nochmal so 
etwas in der art machst? z.B:

DDRx= (1<<EIN_WEITERER_PIN);

das würde einiges erklären. Vielleicht mal Suchen und Ersetzen von

DDRx = (1<<...);
durch
DDRx |= (1<<...);

Werner

von Gast (Gast)


Lesenswert?

Oh je, es waren tatsächlich die Pullups.
Es hat sich ein DDRB ^= ~(1<<BIT); eingeschlichen, das ^ muss natürlich 
ein & sein.. Danke, es läuft.

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.