Hallo folgende Schaltung:
+5V --> 330 Ohm --> Optokoppler-LED +
Optokoppler-LED - ---> TX Pin Mega32
Leider scheint das nicht zu laufen, nur warum!?
Laut meiner Überlegung müsste die Katode des Optokopplers wärend der
Übertragung entweder 5V oder 0V haben. Mein Scope zeigt aber 5V/4,8V an.
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Portd.1 = Output
Do
Print "test"
wait 1
Loop
end
Falk Brunner schrieb:> Siehe Optokoppler. Man muss das Ganze NICHTinvertierend beschalten.
Deswegen hat er aber trotzdem noch nen Kurzschluss gebaut ;o)
@Magnus: Ja so scheint es.
Ich hab den Vorwiderstand schon gemessen, und die Katode mal abgetrennt.
Dann stimmt der Pegel am Portpin.
Evtl Den Optokoppler kaputt gemacht?
@Basti:
Die Schaltung sieht gesund aus. Hast du den Ausgang am µC als Input oder
Output geschaltet? Selbst wenn der Optokoppler defekt wäre, ist da immer
noch der Widerstand 330 Ohm.
MMHH sehr suspekt.
Ich habe nun folgendes versucht
Config Portd = Output
Do
Portd.0 = 0
Portd.1 = 0
Portd.2 = 0
Waitms 250
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Waitms 250
Loop
der einzigste port der toogled it portd.2 obwohl die anderen nicht am
optokoppler sind. Chip kaputt, oder hab ich irgend ein Fuse übersehen?
Basti schrieb:> der einzigste port der toogled it portd.2 obwohl die anderen nicht am> optokoppler sind. Chip kaputt, oder hab ich irgend ein Fuse übersehen?
Mach dein Board mal stromlos und miss den Widerstand zwischen VCC und
PD1. Was zeigt dein Messeisen an?
@Basti:
Ich arbeite hier mit uralten SAB80C517A, ein 8051-Derivat von
Siemens/Infineon, mit der selben Schaltung, wie du sie hast. Die
Portpins können sogar nur low treiben, und 1 Fanout eines TTL (1,6mA).
Habe anstatt 330 Ohm da auch 2kOhm dran. Am SFH601 klappt das aber
vorzüglich. Werden durch den geringen Strom aber auch lahm.
Ist dein µC-Pin im Eimer? Versuch es noch mal mit anderen.
Schmeis mal den UART aus dem Toggleprogramm, einfach nichts was mit dem
UART zutun hat in die Togglesoftware schreiben, denn an Portd0 und an
Portd2 hängt der HW Uart der gleich eingeschaltet wird wenn etwas vom
UART erwäht wird.(Hatte mal ein ähnliches Problem)
So Uart ist raus, Programm läuft!
Allerdings verstehe ich den Fehler nicht - Löte ich den 330 Ohm
(Gemessen!) aus, funktioniert der Portpin.. 330 Ohm - da fließt doch
kein Strom, das sollte den Portpin nicht belasten, oder?
Der Optokoppler ist nun auch bestätigt. Er Funktioniert tadellos. Hab
den PortPin abgelegt und auf Masse gelegt. Der Ausgangstransistor
schaltet dann durch
Basti schrieb:> So hab mal 2,7K genommen, da bleibt derPin auch High. Scheint als wäre> der Controller hinüber, oder?
Was soll der Pin denn laut Datenblatt treiben können? Welchen Strom bei
welcher Spannung?
330 Ohm machen nach Abzug des Optokopplers mehr als 10mA. So hohe Ströme
kenne ich von all meinen µC nicht, weder vom 8051, noch von den LPC2000.
Dem Code nach zu urteilen ist das ein Atmel AVR. Die können 20 mA und
mehr treiben bei 5 V Versorgung. Es sei denn natürlich man vergisst den
Port auf Ausgang zu schalten. Dann wird nur der intern Pullup aktiviert,
und der kann nur etwa 0.1 mA.
Je noch Optokoppler sind 9600 Baud schon relativ schnell. Also lieber
erstmal mit 1200 Baud testen.
Ulirch schrieb:> Die können 20 mA und> mehr treiben bei 5 V Versorgung.
Das ist ein völliger Irrglaube. Der Pin erreicht bei Belastung nie mehr
die Betriebsspannungsgrenze. Daher meine Frage.
Mein 8051 schafft auch 20mA. Innerhalb der TTL-Spezifikation aber nur
1,6mA.
Beim AVR (Beispiel Mega8) sind bei 5 V Versorgung und 20 mA noch
mindestens 4,2 V am Ausgang angegeben. Die low Seite kommt auf 0,7 V.
Das ist noch deutlich innerhalb der TTL Grenzen. Nur mehr als 40 mA
sollten es nicht auf Dauer sein. Ab man die tatsächlich erreicht ist
aber nicht sicher.
Ulirch schrieb:> Beim AVR (Beispiel Mega8) sind bei 5 V Versorgung und 20 mA noch> mindestens 4,2 V am Ausgang angegeben. Die low Seite kommt auf 0,7 V.> Das ist noch deutlich innerhalb der TTL Grenzen.
Das sind ja schon mal handfeste Werte, bei denen man ein wenig grob was
abschätzen kann. Wenn das für den µC von Basti auch gilt, kann er den
Pin mal checken.