Um 13 Relais (12V, 50mA pro Relais ) mit einer MCU anzusteuern wird ein Treiberbaustein benötigt. (Nicht genügend MCU IOs sind frei, io Expander ist nötig) Der erste Gedanke war erst mal PCF8574 + ULN2803A. Das ganze braucht man dann zwei mal um 13 Relays zu bedienen, ziemlich aufwändig insgesamt ,4 Bausteine. Da gibt es bestimmt schon was fertiges. Vielleicht kann jemand was empfehlen? So was wie z.B. MAX4820, leider nicht 12V kompatibel. (Irgend ein IO expander mit open drain Ausgang für 12V und 50mA ) Gibt es sowas? Danke im Voraus Jan
Der MCP23017 ist ein I2C IO-Expander mit 16 Ausgängen. Damit hättest du nur 3 ICs. Treiber wie den ULN2803 wirst du sowieso brauchen, um die nötige Leistung sicherzustellen. Gegenüber dem PCF8574 ist allerdings beim MCP23017 die Software zum ansteuern aufwendiger. Mit PCF8574 bräuchtest du übrigens auch noch Inverter (74HC540), da sie mit Open Drain und invertierter Logik arbeiten.
Danke für die schnelle Antwort. Genau nach so was habe ich gesucht. Was mich wundert ist ein Diagramm im Datenblatt tpic6b595.pdf auf Seite 15. Nach meinem Verständnis sollte der Strom „D1 current“ - grüne Kurve anfangen zu fließen mit der Steigenden Flanke von RCK . Der fängt aber an zu fließen mit der steigenden Flanke von SRCK ? Hat jemand eine Idee?
"After the 16th clock, a pulse to the register clock (RCK) transfers the data to the storage registers." MfG
Hallo Christian, durch den RCK Puls (steigende Flanke) werden die Daten ins Storage Register übertragen. Das Storage Register ist auch das Ausgangsregister. "The storage register transfers data to the output buffer when shift-register clear (SRCLR) is high." Und SRCLR ist ja permanent high (mit VCC verbunden). Somit müsste eine Änderung der Ausgänge nur mit der steigenden Flanke von RCK erfolgen. Das Entspricht aber nicht dem Bild. Ist das Bild im Datenblatt Falsch? Gruss, Jan
Christian S. schrieb: > "After the 16th clock, a pulse to the register clock (RCK) transfers the > data to the storage registers." Eben, so steht es geschrieben. Und in Fig.15 geht D1 current erst mit der einen halben SRCK-Takt später folgenden steigenden Flanke von SRCK hoch, nicht mit RCK.
Peter Kranl schrieb: > NXP hat dafür den PCA9621 65mA pro Ausgang, alle zusammen max.500mA Schade, dass die Ausgangsspannungen nicht höher sein können als die Versorgung (max 5,5V). So ist es leider kaum mehr als ein PCF8574 mit etwas höheren Strömen.
Einfach 13 SOT23 Mosfet-chen statt den ULNs auf die Platine packen?
Vielen Dank für zahlreiche Antworten und Anregungen. Ich denke das der von Stefan-Us genannte Baustein, TPIC6B595 am besten geeignet ist. Ich bevorzuge eine Lösung ohne I2C, die Ansteuerung ist einfacher. Ich werde zwei von diesen Bausteinen kaskadieren, somit könnte ich 16 lasten schalten. Der Baustein hat sogar integrierten Schutz der Ausgänge, d.h. die Freilaufdioden müssen nicht bestückt werden. >„The device contains a built-in voltage clamp on the outputs for inductive transient protection.” Die Ansteuerung ist sehr einfach, ich werde die folgende Funktion verwenden :
1 | void output( uint16_t data ) |
2 | {
|
3 | uint8_t i; |
4 | |
5 | for( i = 0; i < 16; i++ ) |
6 | {
|
7 | if( data & 0x8000 ) |
8 | PORTB |= (1<<SER); |
9 | else
|
10 | PORTB &= ~(1<<SER); |
11 | |
12 | data <<= 1; |
13 | |
14 | PORTB |= (1<<SCK); |
15 | PORTB &= ~(1<<SCK); |
16 | }
|
17 | |
18 | PORTB |= (1<<RCK); |
19 | PORTB &= ~(1<<RCK); |
20 | }
|
Ich gehe davon aus das tatsächlich das Bild im Datenblatt tpic6b595.pdf auf Seite 15 nicht korrekt ist, mein Verständnis ist, das Änderung der Ausgänge nur mit der steigenden Flanke von RCK erfolgen kann. (bei einer konstanten Beschaltung von /SRCLR und /G) Vielleicht weis jemand wo man die SMD Version von diesem Baustein „günstig“ bekommen kann? Die DIL version ist bei Reichelt verfügbar. Grüße, Jan
Falls es jemanden noch interessiert, ich habe inzwischen die TPIC6B595 ausprobiert. Die Änderung der Ausgänge erfolgt gleichzeitig mit der steigenden Flanke von RCK und nicht verzögert wie dargestellt im Datenblatt tpic6b595.pdf auf Seite 15 Figure 15. Bild „shift_latch_Relay_prog“ zeigt das propagation delay rising edge RCK zum durchschalten des Ausgangstransistors. Als last ist ein Relay gegen Vbat=12V angeschlossen. Kanal1 zeigt das RCK Rising edge Kanal2 zeigt die TPIC6B595 Ausgangsspannung (der Ausgangstransistor wird eingeschaltet). Gruss, Jan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.