van 10 parallele digitale signalen naar serieel en weer terug

't is maar een ingeving, zou je niet beter pulldown weerstanden gebruiken?

Anders zijn het allemaal 1'en aan de uitgang in rust.

LDmicro user.
fatbeard

Honourable Member

Dat hangt af van de aansturende elementen en hoe die geschakeld zijn, daar heb ik geen kijk op.
Maar toegegeven, pull-up was wel 'wat krap door de bocht'... :o

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.
Wie de vraag stelt, zal met het antwoord moeten leren leven.

de aansturende elementen worden gevormd door spanningen, 0 of 5 volt. Hoogstwaarschijnlijk relaiscontacten, maar over ben ik nog niet. Zoals ik er nu over denk heb ik een blokbeveiliging met relais, en moeten alle seinen (leds) op de baan een signaal krijgen. Ze zijn nu allemaal voorzien van een weerstand voor gebruik bij 24V DC. Bij gebruik van het schema van Fatbeard ga ik ze dus allemaal ombouwen naar 5V DC. De leds liggen allemaal met de kathode aan de aarde,

@Ship. ieder zijn ding maar ik vind dat persoonlijk heel moeilijk.
Je moet daar al heel goed in thuis zijn om er iets werkbaar van te maken.

Daarom begrijp ik ook dat de TS niet voor mijn oplossing heeft gekozen, want wat hij nu zal maken zal veel meer werk en testtijd vragen maar hij heeft het zelf in de hand.

Hopelijk zien we later iets van zijn realisatie ;)

LDmicro user.

zekers, ik hou het forum op de hoogte.

fatbeard

Honourable Member

Zoals beloofd: de uitleg (het tijddiagram zat al bij het schema, veel meer is er niet).

KLOKCIRCUIT
Een poort van IC3 (hex Schmitt trigger inverter) is geschakeld als astabiele multivibrator en dient als kloksignaal voor IC4 (dual binairy counter), deze telt op de neergaande flank. De exacte frequentie is niet van belang, met de gegeven waardes ligt die ergens in de buurt van 40kHz.
Zolang de teller nog niet op 16 staat is pin 11 laag, hierdoor wordt D2 (de diode aan de uitgang van een tweede poort van IC2) in sper gehouden.
Daardoor kan via R2 het kloksignaal de cluster van poorten bereiken, zodra de teller stand 16 bereikt wordt via D2 het kloksignaal naar de uitgangspoorten geblokkeerd.
Via D1 wordt echter het resetsignaal nog geblokkeerd totdat pin 5 van IC4 hoog wordt, op dat moment heeft de teller stand 20 bereikt en wordt de boel gereset.
Op deze wijze wordt een kleine pauze ingelast in het kloksignaal.

ZENDER
De schuifregisters IC1 en IC2 zijn geschakeld als een 16-bits register en schuift op de opgaande flank van het kloksignaal zolang de SH/LD input hoog is.
Als de SH/LD input laag is wordt er niet geschoven maar worden de ingangen A t/m H in het schuifregister geladen.
Het kloksignaal wordt via een poort van IC5 geïnverteerd en gaat een pauze-lengte discriminator in, opgebouwd met de diode, R5, C3 en twee poorten van IC5.
Bij elke neergaande flank van het aangeboden kloksignaal wordt C3 geladen, als de flanken snel genoeg achter elkaar komen blijft de spanning op C3 boven het omslagpunt van de Schmitt trigger waardoor de SH/LD inputs hoog blijven en de data seriëel op de output van IC2 verschijnt.
Als de pauze verschijnt in het kloksignaal zal de spanning op C3 dalen tot onder het omslagpunt van de Schmitt trigger, waardoor de SH/LD inputs laag worden en nieuwe data in het schuifregister wordt geladen.
Het kàn noodzakelijk zijn om de waarde van R5 aan te passen, deze is berekend (niet getest) maar gelukkig niet al te kritisch: R5 moet groot genoeg zijn zodat de Schmitt trigger niet omslaat bij een opeenvolgende reeks klokpulsen en klein genoeg dat hij dat wel doet als er 2 of 3 pulsen ontbreken.
Als de waarde te groot is wordt de pauze niet gedetecteerd, als de waarde te klein is wordt het schuifregister bij elke klokpuls geladen.

ONTVANGER
De schuifregisters IC6 en IC10 zijn geschakeld als een 16-bits register en schuift op de opgaande flank van het kloksignaal.
De uitgangen worden gebufferd in de latches IC7 en IC11, deze nemen de ingangswaarde over op de opgaande flank van de CLK input.
De werking van de klok-discriminator is gelijk aan die van de zender, al is de polariteit van het latch signaal hier geïnverteerd.
De latches hebben uitgangen die maximaal 6mA kunnen sourcen of sinken, voor LEDs die meer stroom nodig hebben is dus een extra driver nodig.

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.

Toevallig heb ik een aantal ULN2803 liggen. Kan ik die op deze manier aansluiten?

bprosman

Golden Member

Ja dat kan maar de uitgangen van de ULN2803 schakelen altijd naar <GND>

De jongere generatie loopt veel te vaak zijn PIC achterna.

de uitgangen van de ULN2803 schakelen altijd naar <GND>

Daar heb ik geen probleem mee! ;)

is het verstandig dat datalijn en de clocklijn uit te voeren als draden met aardafscherming? Gaat om 10 meter tussen zender en ontvanger.

fatbeard

Honourable Member

Dat is het niet per sé nodig, maar gelet op de omgeving (treinbaan = veel inductieve belastingen) wel raadzaam. Meer nog ter bescherming van de ICs dan voor de data-integriteit.
Met de gegeven waardes voor de klokgenerator zou dat helemaal goed moeten gaan tot een meter of 20, de kabelcapaciteit zou bij nog grotere afstanden roet in het eten kunnen gooien...

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.
Lambiek

Special Member

Op 15 maart 2020 22:15:16 schreef Herms Lunenborg:
dank je. Ik ga de eerste versie bouwen, een extra draad vind ik geen probleem.

Vergeet niet om bij ieder IC een 100nF ontkoppel condensator te zetten. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

10m draadlengte voor TTL vind ik veel, vooral omdat de data ingang van die 74HCT164 geen schmitt-trigger is.
Altijd geweten dat 5m voor TTL signalen het max is... maar je kunt het proberen.

LDmicro user.

Van dmx weet ik dat je een booster gebruikt om het signaal weer goed te krijgen. Zou zouets hier ook kunnen?

DMX zijn heel andere signaalniveau's, maar als het bij u niet werkt kun je 2 optocouplers gebruiken zoals ik heb gedaan, dan is 10m zeker geen probleem.

LDmicro user.

Ik heb een flink aantal til11. Zijn die geschikt? Want het uitgangssignaal is max 5 mA.

Dat zullen TIL111 zijn vermoed ik, ja die zullen werken, gebruik een 4k7 weerstand aan de uitgang.

LDmicro user.
bprosman

Golden Member

DMX is RS485 (mijn eerdere suggestie :+ )

De jongere generatie loopt veel te vaak zijn PIC achterna.

DMX ja. Maar daar komt weer programmeerwerk bij kijken in de IC's. Dat is een no-go voor mij. Ik werk regelmatig met DMX, maar schakelingen in elkaar solderen daarvoor begin ik niet aan.

en zo meteen ga ik voor het eerst proberen met Kicad een print te ontwerpen. Dat wordt nog een echte uitdaging.

bprosman

Golden Member

en zo meteen ga ik voor het eerst proberen met Kicad een print te ontwerpen. Dat wordt nog een echte uitdaging.

Mocht je hulp nodig hebben laat maar weten.
Allereerst schema opzetten (Zender-Ontvanger) is nogal eens snel gedaan.
Wil ik wel voor je doen.

De jongere generatie loopt veel te vaak zijn PIC achterna.
hennep

Golden Member

Zomaar een inval, zou je zoiets niet met aan de ene kant een DA converter en aan de andere kant van de draad een AD converter kunnen doen?
Storing te elimineren door de laagste bits niet te gebruiken.

ik zou wel hulp kunnen gebruiken om met Kicad iets te gaan doen.
Na een paar uur proberen kan ik zeggen oef, dat is een zware uitdaging. Ik zie eigenlijk niet welke uitvoering van een weerstand, condensator of diode zou moeten hebben. En om dan van plaatje 2 naar een printontwerp te komen... ik vrees dat mij dat nog erg veel tijd gaat kosten. Een handleiding heb ik wel gevonden maar die gaat zo vreselijk snel dat ik daar (nog) niet echt uitkom.