van 10 parallele digitale signalen naar serieel en weer terug

Aan de zenderzijde zie je een 3pins connector waarvan pin 2 niet aangesloten is terwijl aan de ontvangstzijde aan pin 2 de GND zou moeten zijn van de opto's en verbonden moet zijn met de GND van de zender omdat je 2x een gelijkrichting gebruikt.

Je moet aandacht besteden aan uw voedingen en trachten groundloops te vermijden want de zender en ontvanger zullen 'ver' uit elkaar staan.

Ik zeg niet dat de fouten hierdoor komen, ook de print kan fout zijn maar daar kan niemand u mee helpen.
Je hebt een 2 kanaals scoop dan zou het toch makkelijk moeten zijn om de signalen te volgen.

Btw. een bufferelco is altijd aan te raden en zeker als er relais mee gemoeid zijn en hou de GND van die 24V aan de ontvangstzijde.

Edit: je schrijft dat je 2 voedingen gebruikt, elk zijn eigen 9Vac dan is het sterk aanbevolen van de GND's niet aan elkaar te verbinden, de afscherming kun je aan de zenderzijde aan de GND leggen, dus aan 1 kant is genoeg maar dan moet je wel gebruik maken van pin2 zoals ik eerder beschreven heb.

[Bericht gewijzigd door MGP op maandag 27 juli 2020 22:07:51 (17%)

LDmicro user.

Klopt:

Aan de zenderzijde zie je een 3pins connector waarvan pin 2 niet aangesloten is terwijl aan de ontvangstzijde aan pin 2 de GND zou moeten zijn van de opto's en verbonden moet zijn met de GND van de zender omdat je 2x een gelijkrichting gebruikt.

Met een apart draadje is de grnd aangesloten op pin 2. Staat inderdaad (nog) niet in het schema.

Je moet aandacht besteden aan uw voedingen en trachten groundloops te vermijden want de zender en ontvanger zullen 'ver' uit elkaar staan.

In de testopstelling heb ik eerst getest met 30m kabel. Toen met 30cm kabel. Tot slot de 30cm kabel om de TIL111 heen aangesloten.
Is het verstandig de grnd van de 24V los te koppelen van de grnd van de schakeling? Lijkt me niet, want dan is toch het ingangssignaal van de ULN2803 zwevend t.o.v. de 24V?
In de allereerste testen had ik enkele leds (via weerstanden) aangesloten. Sommige ervan gingen branden, ongeacht of er een datasignaal was.

Op 27 juli 2020 22:07:54 schreef Herms Lunenborg:

Is het verstandig de grnd van de 24V los te koppelen van de grnd van de schakeling? Lijkt me niet, want dan is toch het ingangssignaal van de ULN2803 zwevend t.o.v. de 24V?
In de allereerste testen had ik enkele leds (via weerstanden) aangesloten. Sommige ervan gingen branden, ongeacht of er een datasignaal was.

Ik heb geschreven dat je de GND van de 24V aan de ontvangstzijde mag leggen.

Over uw leds kan ik niets zeggen dat zul je moeten meten, als je nog een kale print hebt zou ik eens alle voedingslijnen doormeten(piepen) met een ohmmeter en terwijl je bezig bent misschien ook de andere verbindingen controleren.

edit: nu ik terugkijk naar mijn schema met die pic's heb ook ik de opto's niet goed verbonden en zou ik een 4draads verbinding nodig hebben omdat ik bidirectioneel werk en moet de GND lijn weg.
Ik heb ze getekend zoals op mijn breadboard en dat is in de praktijk niet goed door de kabellengte.

LDmicro user.

dan graag een nieuwe tekening voor dit onderdeel!

Snel een tekening gemaakt wegens tijdsgebrek, maar dat was mijn bedoeling.
Bij een 1 richtingsverkeer zou ik maar 2draden nodig hebben.
Aan beide kanten een voeding en een optocoupler, geen GND verbinding nodig.

LDmicro user.
fatbeard

Honourable Member

Nu gaat er allerhande verwarring ontstaan...

Wat Herms hat getekend was (bijna) goed, alleen de verbinding tussen pin 2 van de connector en de GND van de ontvanger moet weg. De opto's 'halen' hun GND dan van pin 2 van de connector:

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.

dank je voor het voorkomen van verwarring. Dit is een zeer duidelijke tekening. En dan komt pin 2 te liggen aan de GND van de zender.

Op 28 juli 2020 12:58:50 schreef Herms Lunenborg:
... En dan komt pin 2 te liggen aan de GND van de zender.

Dat was nu mijn punt ;)

LDmicro user.

Ik heb "mijn versie" van dit projectje eindelijk af/werkend.

Er zit op iedere module een STM32F072C. Er wordt over een RS485 bus gebabbeld. Voor "grotere installaties" (meer dan 16 IOs) kan je gewoon meer modules op 1 bus aansluiten.

Iedere module heeft een "mode" (input/output) en een ID. Die worden in flash opgeslagen.

Links zie je de module in "input" mode. Ik heb de pullups aangezet dat zie je aan de ledjes die een beetje oplichten. De pullup is iets van 50k, dan een 1k weerstand op de PCB en dan een 47k op het ledjes printje, dus totaal ongeveer 100k. Met 1.7V over de led en 1.6V over de weerstandjes loopt er dus ongeveer 16 µA door deze ledjes. Met de probe-clip heb ik 1 van de inputs aan de GND gehangen.

edit: Dat het verschil zo weinig is, heb ik opnieuw gemeten/gerekend. Links loopt bijna 1 µA. De interne pullup is een stuk zwakker dan ik had gedacht. Edit2: Ik snap het niet. Datasheet er bij gepakt. Ik zie typical 40k op pagina 83.

Op de output module rechts zie je die ene led die uit is. De stroom door de leds is hier 1.5V/48k = 30µA.

Oh, de probe-clip zit natuurlijk direct voor de ene led links die uit is. Sorry, voor de demo had ik natuurlijk een pin aan de andere kant moeten nemen.

1 van deze twee bordjes heeft trouwens een kortsluiting tussen IO2 en IO4. Nog niet opgelost. Gelukkig zie je dat in deze test niet. :-)

Hier is een logic analyser grab van de communicatie.

De ene stuurt een pakketje: Module "y" kan je je inputs verzamelen en opsturen aan module "x"?
De rechter module ontvangt dan het reply (ook rechts in de LA): module "x" zet de outputs op ...

Nu stuur ik vanaf de PC naar de rechter module: Kan je het volgende versturen: ... en dan dus "module Y stuur jou inputs naar module X". Als je dit zou gebruiken, dan kan je zo'n "master PC" blijven gebruiken, of 1 van de modules als master aanmerken en die programmeren om regelmatig de probes uit te sturen. Dat stuk firmware heb ik nog niet gemaakt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

een volgende reactie, vraag aan Fatbeard:

Na twee missers (obsolete chips en afgrijselijk dure chips) is dit mijn oplossing. Bestaat uit een algemeen deel (voor meerdere zender/ontvanger sets), zender modules en ontvanger modules.
Getoond voor 16 digitale signalen per verbinding, maar kan per 8 bits zowel op- als neergeschaald worden.

Vraag: pull-up of pull-down-weerstanden nodig?
(Verbeterd, verkeerd schema geplaatst).

Arco

Special Member

De 7414 heeft push-pull outputs, dus: nee, geen pull up/down.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
fatbeard

Honourable Member

@Arco:
Huh? In de bij de vraag geposte schema's zit geen 7414...
Zal wel een typo zijn, of gereageerd op het inmiddels gecorrigeerde schema.

@Herms:
Naar keuze: hangt af of de bedienende elementen van de ingangen (schakelaars, transistors, opto's) naar GND of VCC schakelen.
In het eerste geval is een pullup gewenst, in het tweede een pulldown.
Voor de 74HCT574 is het niet nodig, die hebben push-pull outputs (max. 4mA!).

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Arco

Special Member

Huh? In de bij de vraag geposte schema's zit geen 7414...

Ja, zo lust ik er nog wel een... :)
Daarstraks stond er een totaal ander schema met 74HCT14!

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Inderdaad, mijn fout. Ten dele. In het schema zit inderdaad de 7414. Maar daar zijn geen ingangen aan gekoppeld en hoeft daarom ook geen pull-up of pull-down-weerstanden te hebben.

Mijn vraag is dus of de 74HC165N pull-down- of pull-up-weerstanden nodig heeft, of geheel zonder kan.
Het ingangssignaal is 0Volt of 5Volt.

fatbeard

Honourable Member

Als het signaal echt ALTIJD 0V of 5V is hoeft het inderdaad niet.
Maar bedenk wel dat een omschakelaar of relais wisselcontact een kort moment heeft waarop de common geen contact maakt met het maak- of verbreekcontact en dus zweeft...
In de praktijk lost men dat op met een pullup, pulldown of een kleine(!) C naar GND; waardes tussen 10k en 100k voor de weerstand en tussen 1n en 10n voor de condensator zijn gangbaar. Die condensator houdt dan de spanning op de ingang vast tijdens het zweven.
De reden om die eventuele C klein te houden is dat deze door een van de contacten wordt kortgesloten, wat extra slijtage van dat contact betekent als de waarde te groot is.

Niet-gebruikte ingangen hebben echter niets aan een C alleen, die hebben echt een pullup of -down nodig; het is dus handiger om die altijd te plaatsen. Als bijkomend voordeel kun je dan volstaan met een eenvoudig maak- of breekcontact: een wisselcontact is dan niet meer noodzakelijk.

Als ontdendering (debounce) gewenst is -en dus een grotere RC-tijd noodzakelijk- kan een kleine (ca. 10Ω) weerstand in serie met het contact worden opgenomen om de kortsluitstroom te beperken.
Voor debounce gebruik ikzelf meestal 10Ω serieweerstand en 100n condensator in combinatie met een 100k weerstand (pullup of -down); daarmee is al een goede ontdendering mogelijk. Indien nodig ga ik naar 1u, in extreme gevallen zelfs naar 10u, maar vanaf ongeveer 1u is een diode parallel aan de weerstand (in sperrichting) aan te bevelen om de ESD-beveiliging van de ICs niet te overbelasten als de spanning wegvalt.

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.

Het probleem met CMOS schakelingen is dat iedere poort, dus ook de input-poort van een chip lijkt op een inverter.

Als de input hoog is, dan gaat de N-fet aan en trekt de output LAAG.
Als de input laag is, dan gaat de P-fet aan en trekt de output HOOG.

Leuk en wel, maar wat nu daartussenin? Nou, omdat in het datasheet staat dat met 2V voeding de hele chip gewoon z'n werk kan doen, weet je dat beide fets met 2V spanningsverschil gewoon aan zullen gaan.

Dus als de voeding 5V is en de input 2.5V dna zullen beide fets aangaan en dus stroom doorlaten!

Nu is het niet zo erg als bij een power-H-brug waarbij de stroom zodanig hoog zou zijn dat de boel in 1x opgeblazen wordt. Maar toch: hoger stroomverbruik en mogelijk een warme chip wat nergens voor nodig is.

Dus: eens met fatbeard: Gewoon doen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

dan doe ik dat, en kan tegelijk aan debouncing doen. Want inderdaad, het zijn wisselcontacten aan de ingang die kunnen denderen.

In principe zou dat allemaal geen probleem mogen vormen, bij zo'n schakeling moet het zo zijn dat wat erin gaat er weer uitkomt, inclusief contactdender, desnoods verlaag je de transfersnelheid.

Btw, heb je al eens aan uw printjes een trage externe klok gehangen zodat je alles beter kunt volgen? over trage klok spreek ik dan van 1 tot 10Hz.

LDmicro user.

ik zou inderdaad de kloksnelheid graag willen verlagen, 10 Herz lijkt me prima. De signalen die ik verstuur kunnen dat heel goed hebben. Dan zal ik de 5 RC-tijden van zender en ontvanger

moeten aanpassen.
De klok is nu 62,5 us, de andere tijden zijn daarop gebaseerd (0,75 klok, 0,25 klok etc.).
De klok wordt bepaald door R=3k9 en C=10n. Wil ik dan van 62,5 us naar 62,5 ms gaan dan zou bijvoorbeeld R moeten worden 390k en C moeten worden 100n. Klopt mijn gedachtengang?

Arco

Special Member

Lijkt trouwens veel op iets wat ik heel lang geleden heb ontwikkeld voor een alarmapparaat, alleen iets andere onderdelen... ;)
(de 4000 serie was wat handiger toen door het grotere bereik van de voedingsspanning)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

ik zie een parallel naar serieel schakeling met een erg lage kloksnelheid....De nieuwsgierigheid: de ontvanger?
Hoe weet de ontvanger welke puls de 1e is?

Arco

Special Member

Ontvanger is een soortgelijke schakeling. De ontvanger verstuurt de clock, dus weet die exact wanneer wat gebeurt...
Kloksnelheid hoeft trouwens niet laag te zijn. (afhankelijk van afstand en kabel)

Met wat extra 4067's simpel uitbreidbaar tot 256 kanalen...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

De snelheid verlagen is enkel maar om te kijken waar het fout loopt in die printjes, je zou het kunnen volgen met enkele ledjes op de signaallijnen.

10Hz is in operationele toestand toch wel heel laag om 16 signalen over te zetten.

LDmicro user.