hallo,

ik heb een PCB gemaakt met een PCF8574 erop, alleen heb ik daarbij een vergissing gemaakt.
ik ben er van uit gegaan dat wanneer je de PCF8574 als output gebruikt deze de output hoog stuurt 8)7 maar dat is dacht ik niet het geval, hij stuurt de output dacht ik naar 0V.
hoe kan ik dit het beste "quick & dirty" oplossen zodat ik verder kan met testen ? gaat dit b.v. met een BC557 ? (die heb ik in ieder geval liggen).
alvast bedankt voor het mee denken.

edit: tekening die ik eerst had gepost was niet goed, is nu gewijzigd.

Een PCF8574 kan ook "Hoog" uitsturen.
Hij mag alleen maar 4mA doen.

[Bericht gewijzigd door bprosman op (30%)]

De output is een quasi-bidirectionele poort en werkt normaal (1=1 en 0=0)
Een quasi-bidirectionele poort kan veel sinken, maar heel weinig sourcen (door een interne pull-up van 100uA)

Je kunt een extra pull-up toevoegen.

ik ben er van uit gegaan dat wanneer je de PCF8574 als output gebruikt deze de output hoog stuurt 8)7 maar dat is dacht ik niet het geval, hij stuurt de output dacht ik naar 0V.

Misschien een quick & dirty antwoord : breadboard van stal halen en datasheet lezen :)

In plaats van de NPN transistor die nu aan GND zit kun je een PNP gebruiken die met zijn emitter aan +5V zit.

Op zaterdag 20 april 2024 18:38:34 schreef bprosman:
Een PCF8574 kan ook "Hoog" uitsturen.
Hij mag alleen maar 4mA doen.

Hij mag 25mA sinken, en 100uA sourcen (zonder extra pull-up)

Op zaterdag 20 april 2024 18:42:43 schreef KlaasZ:
In plaats van de NPN transistor die nu aan GND zit kun je een PNP gebruiken die met zijn emitter aan +5V zit.

Dan gaat de boel wel andersom werken...

[Bericht gewijzigd door Arco op (35%)]

dat hoeft om te testen even geen probleem te zijn kwestie van de outputs tijdelijk "omprogrammeren"

Extra pull-up lijkt me de simpelste oplossing...

In je schema K2 direct op de uitgang en dan R2 vanaf de uitgang naar de 5V dus als een pull-up weerstand.

ik ben er van uit gegaan

Eigenlijk nergens vanuit gaan en voordat je iets maakt en of aansluit altijd even de datasheet lezen. Je hoeft de datasheet dan niet uit te pluizen maar toch wel de minimale zaken als maximale stroom van de in en uitgangen en maximale spanning.

[Bericht gewijzigd door benleentje op (58%)]

Op zaterdag 20 april 2024 19:02:57 schreef benleentje:
In je schema K2 direct op de uitgang en dan R2 vanaf de uitgang naar de 5V dus als een pull-up weerstand.

[...]Eigenlijk nergens vanuit gaan en voordat je iets maakt en of aansluit altijd even de datasheet lezen. Je hoeft de datasheet dan niet uit te pluizen maar toch wel de minimale zaken als maximale stroom van de in en uitgangen en maximale spanning.

Die kun je desnoods aan de PCF8574 zelf solderen, hoef je de print niet eens aan te passen.

ik lees morgen verder moet er nu vandoor.

Op zaterdag 20 april 2024 18:44:45 schreef Arco:
Dan gaat de boel wel andersom werken...

Dat was toch juist de bedoeling?

Nee,

Het probleem is dat de uitgang niet (genoeg) kan sourcen zonder extra pull-up... (maar 100µA)

Dat is precies de reden dat ik meestal een FET inzet voor dit soort zaken. Scheelt ook nog een weerstand...

De transistor zonder basisweerstand gebruiken kan ook wel werken (mits het geen erg gulzig relais is en de transistor voldoende versterkt... ;) )

OF een darlington transistor gebruiken. Er zijn genoeg mogelijkheden afhankelijk van wat je hebt liggen.

Relais en logica op dezelfde voeding is ook niet aan te raden...

Op zaterdag 20 april 2024 19:02:26 schreef Arco:
Extra pull-up lijkt me de simpelste oplossing...

Inderdaad, simpel en efficient. Een R van 1k naar +5V is prima.

Ehh.... Guys. Ik ken dat PCF ding niet. Dus ik nam gewoon aan dat als iemand zegt: "max 100µA als hoog-stroom" dat dit klopt.

Maar zojuist had ik een vlaag van: "Dat wil ik met m'n eigen ogen zien"... Ik heb het datasheet er bijgepakt en daar staat in hoofdstukje 6.3 op blz 4: 1mA.

Verder: TS geeft aan: "snel verder te willen met testen". Een complete redesign (npn->pnp en zo) is dan niet handig. Een pullup er bij prutsen kan wel.

Verrek! op blz 5, hoofdstuk 6.5 staat ineens 30-300 µA. OK. Ding kan kennelijk bijna niets sourcen.

Verrek! Op blz 7, figuur 10 staat dat ie gewoon een normale output heeft, die 30mA levert als de output spanning niet hoger is dan 4.5V. (i.e. je kan een spanningsval verwachten van 0.5V bij 30mA... Als je genoegen neemt met 4.5V kan je aannemen dat je minimaal 30 mA zult kunnen krijgen).

Oh... In figuur 11 staat dan weer dat je bij 25 graden een spanningsval van zo'n 175V mag verwachten. Maar dat zal dan wel bij een paar ampere uitgangsstroom zijn, want bij hoeveel stroom dat is... dat staat er niet bij.

Met de hoeveelheid tegenstrijdige informatie in dit datasheet is dit een: "dan is die niet geschikt voor mijn toepassing".

Kijk eens of een MCP23008 geschikt is voor jou toepassing. (Maar voor nu: een pullup).

Verrek! op blz 5, hoofdstuk 6.5 staat ineens 30-300 µA. OK. Ding kan kennelijk bijna niets sourcen.

Voor quasi-bidirectionele poorten is dat 'by design', omdat ze zonder omschakelen kunnen werken als in en/of output... (heel handig...)
(o.a. de 8048 en 8051 controller hebben dat ook...)

Oei, daar staan wel meer fouten in die datasheet.

- Bij schrijven van meerdere bytes in 1 bericht:

If other data bytes are sent from the master, following the
acknowledge, they are ignored by this device.

- Terwijl de NXP datasheet duidelijk laat zien dat elke byte wordt gebruikt: https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf

En de timing plaatjes figuur 16 en 17 kloppen ook niet.

Tja,

Voor i2c kun je nu eenmaal het beste bij Philips (NXP) kijken... :)

@rew, @deKees: Dit spant wel de kroon! Kan zo in de top 10 van het topic "Blunders in datasheets".

PS die post staat niet in het overzicht topic: Waar is het grote "XYZ" topic? / In welk topic post of vraag ik dat? Iets voor een MOD om die daar aan toe te voegen?

Er staat trouwens in dat er een 'accelerator' drive fet in zit gedurende de ACK periode om een snellere rise time te krijgen. Dat is Itrt = -1 mA

Maar even terug naar het "probleem", het zo opbouwen van de schakeling op deze manier is zowiezo waarschijnlijk niet goed omdat de relais na powerup direct inkomen, want de pins zijn na een reset geschakeld als input pins, dus via een externe pullup zullen de outputs allemaal geactiveerd worden.
Afhankelijk wat er aan die relais hangt kan dat zelfs schade aanrichten of gevaarlijke situaties geven.

Je moet met dit soort dingen altijd kijken naar de toepassing, wat hangt eraan, wat gebeurd er bij een reset. Zijn alle (output) signalen in de juiste rust stand zodat er niks spontaan kan gebeuren.
Daarbij moet je uitgaan dat een eventuele CPU nog niet opgestart is of zelfs kan hangen bij startup. Dus een "safe" design maken.

er komt niets spannends aan die pinnen te hangen, voorlopig alleen een mechanische rem van een stappen motor, maar die moet wel gegarandeerd laag zijn bij b.v. power-up. die rem zit op een vertikale Y-as, en ik wil niet hebben dat die een stuk(je) naar beneden zakt.

ik heb het opgelosd (zoals KlaasZ) voorstelde met een PNP (BC 557).
die met de emitter aan de 5V. moest wel de voedingslijn van 5V naar GND wijzigen, alsmede ook de LED en de blusdiode omdraaien.

getest en het werkt, ik kan mooi verder met testen.
ondertussen de PCB layout veranderen.