van 10 parallele digitale signalen naar serieel en weer terug

Op 10 maart 2020 21:53:25 schreef Herms Lunenborg:
mijn doel is de bekabeling van mijn treinbaan te verminderen. Met name het uitlezen van seinen en wissels middels leds op het bedieningspaneel vreet kabelcapaciteit en ik prober daarom met minder draad meer signalen te verwerken. Dat kan misschien wel oplopen tot 200 signalen. Voor mij staat open of ik dan tig 16bits schakelingen parallel bouw of dat er 254 signalen via een seriële aansturing gaan.
Mijn ervaring van het vragen stellen hier is dat hoe specifieker ik de vraag onderbouw de oplossingen "wilder" worden. Daarom zocht ik in eerste instantie naar een simpele oplossing voor het verzenden van 16 signalen.

Heb je op beide locaties Wifi bereik? ESP!

Wie de vraag stelt, zal met het antwoord moeten leren leven.

De afstand is minder dan 10 meter. En ja, er is wifi

serieel via WiFi : https://nl.aliexpress.com/item/32812264101.html

Een kabel is duurder :)

wat is je bedien interface ?

[Bericht gewijzigd door Shiptronic op 11 maart 2020 23:44:20 (15%)]

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Heb je nog ergens een oude Tablet liggen ?

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Hier heb je een mogelijkheid om 16bits serieel te verzenden en terug om te zetten naar parallel.
Het programma werd niet speciaal voor de TS gemaakt, dus moet hij zich tot niets verplicht voelen en mag gerust voor andere opties kiezen.
Het zat al in de pijplijn voor andere toepassingen.

De pinnummers van PORTA en PORTB kun je vinden in de 16F886 datasheet.

Ik heb de snelheid hier van onderschikt belang gemaakt maar is toch voldoende hoog om soepel te werken.
Voor de eenvoud gekozen voor optocouplers ipv RS485 wat niet belet om zelf een paar RS485 modulen aan te sluiten.
Bij gebruik van die RS485 modules of ic's moet je geen schrik hebben dat de data tussen zender en ontvanger zullen clashen.
Het werkt als vraag en aanbod.

Aan de gebruikers om te zorgen voor pullup- of pulldown weerstanden op beide ingangspoorten, naargelang de toepassing.
Geen condensatoren nodig aan de ingang, de software zorgt voor een 1mS vertraging.

Je kunt de verbinding op elke moment onderbreken en weer aankoppelen zonder dat het programma vastloopt.
Na de onderbreking herstart de communicatie automatisch.

Aan de zenderkant is er 1 led (TO) die oplicht als de ontvanger niet aangekoppeld is.
Aan de ontvangzijde staan er 2 leds, RTS = ontvanger vraagt aan de zender de data op en de REC led geeft aan dat er data ontvangen wordt.
Door de snelheid van de RS232 TTL signalen lichten die zwakker op.

De RTS led zal traag pinken als er geen verbinding is, elke 0.5s tracht de ontvanger connectie met de zender te maken.

De kabellengte heb ik niet getest maar zal zeker de 10m overbruggen gezien de baudrate (2400b).
Een Midi-verbinding mag 5m zijn en de baudrate is daar veel hoger.

Minimum pulsbreedte inputs PORTA & PORTB= 20mS
Type van optocoupler is niet belangrijk, alle courante typen zullen werken.

De baudrate kan nog verlaagt worden naar 300b als dit gebruikt wordt in bv. landbouwvoertuigen of waar hele lange kabels nodig zijn.
Geef daarvoor een seintje hier op CO.

De programma's werden in LDmicro geschreven wat voor de meesten latijn zal zijn, bij aanvraag stuur ik ze per email op.
Later worden er dan 16F1527 pic's gebruikt met +48 lijnen, maar dat zal niet voor de eerste maanden zijn.

De HEX-files zijn inclusief de config-bits zodat iedereen de pic's kan programmeren of opsturen om geprogrammeerde pic's te kopen, want ik verkoop en verzend niks :p

Filmpje van test, de rechtse led is de data van de pulsgever.
https://youtu.be/TAJlMV5dyIc

NB. Zopas een telefoon gekregen dat in onze stad/gemeente alle sociale samenkomsten verboden zijn, klussers en ouders(helpers) zijn zelfs niet meer welkom IN de scholen.
We gaan dus veel tijd hebben.

EDit: kleine aanpassing gemaakt aan het receiverprogramma, als de verbinding wegvalt gaan alle uitgangen op 0 voor de veiligheid.
CO2 achteraan de filenaam is de nieuwste versie.

LDmicro user.

@MGP, TS wil maar 1 draad voor Communicatie, bij jouw zie ik er 2 RX,TX?

Wie de vraag stelt, zal met het antwoord moeten leren leven.

2 draad is acceptabel. Als er 256 signalen door kunnen, is 3 draad ook acceptabel.

Op 12 maart 2020 20:04:14 schreef Shiptronic:
@MGP, TS wil maar 1 draad voor Communicatie, bij jouw zie ik er 2 RX,TX?

Het zijn 3 draden! maar hou jullie niet in, ben nieuwsgierig naar een andere uitkomst.
NB. het programma werd eigenlijk niet geschreven voor de TS zoals ik al schreef, maar kan wel gebruikt worden.

[Bericht gewijzigd door MGP op 12 maart 2020 21:13:19 (18%)]

LDmicro user.
Lambiek

Special Member

Heb je het in LD-micro gemaakt MGP?

Als je haar maar goed zit, GROETEN LAMBIEK.

Ja, staat in de beschrijving van de werking, ik zal ze u opsturen want ik weet dat je uw eerste stappen wilt zetten in LDmicro. ;)

Maar u inleven in andermans gedachtegang zal niet meevallen :)

LDmicro user.

ziet er voor mijn toepassing ook goed uit!

In Elektuur heb ik een schakeling gevonden: parallel naar serieel omzetter, juli/aug. 1984. Gebruikt worden de 74LS161 en de 74LS165. Op zich een prima schakeling. Echter, ik kom er nog niet uit hoe ik het LD signaal goed kan krijgen.

fatbeard

Honourable Member

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.

klokgenerator:

zender:

ontvanger:

[Bericht gewijzigd door fatbeard op 13 maart 2020 22:29:14 (11%)]

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.

U is geweldig! Ook het probleem van het sigbaal dat de pulstrein start/eindigt is geniaal opgelost. Ziet er erg aantrekkelijk uit, ik ga op onderdelenjacht! En dan ook voor zeer betaalbare onderdelen. Ik ben zeer tevreden.

[Bericht gewijzigd door Herms Lunenborg op 13 maart 2020 23:40:23 (17%)]

Ook een mooie oplossing, maar ik ben nog meer onder de indruk van de kwaliteit van uw schema, iets waar ik jammer genoeg het geduld niet voor heb.

LDmicro user.
fatbeard

Honourable Member

Als de extra klok-draad bezwaarlijk is heb ik ook nog een echte enkeldraads oplossing verzonnen, ook met voordelige chips (veelal dezelfde als de vorige oplossing):

zender

ontvanger

Ook deze kan per 8 bits op- en neergeschaald worden.

Voor beide oplossingen is het raadzaam om aan de ingangen minimaal een serieweerstand (4k7-10k) op te nemen ter bescherming van de ingangen.

Uitgebreide uitleg en timingdiagrammen zijn desgewenst beschikbaar.

P.S. De twee oplossingen zijn NIET compatibel!

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

Golden Member

Best onder de indruk maar 2 Microcontrollers en een handjevol 74HC(T)595's zou toch mijn voorkeur hebben :+

De jongere generatie loopt veel te vaak zijn PIC achterna.

En als je niet kunt programmeren, wat dan? :p

Idd een sterk staaltje in TTL techniek.

LDmicro user.

Idd en ik ben er blij mee. Heb de ic's al besteld

fatbeard

Honourable Member

Op 15 maart 2020 15:13:03 schreef bprosman:
Best onder de indruk maar 2 Microcontrollers en een handjevol 74HC(T)595's zou toch mijn voorkeur hebben :+

Als je toch microcontrollers toepast heb je die 595's ook niet nodig >:)
Maar ga dan voor een volledig bus-systeem, compleet met protocol.
Dan kun je over 4 draadjes (inclusief voeding) met 'goedkope' processortjes (die dan wel voldoende pootjes moeten hebben) en 485-chippies meer dan 1000 inputs versturen.
Kost een paar centen (en een hele hoop werk om het goed te krijgen), maar dan heb je ook wat...

EDIT 'k zie net dat er een foutje in de ontvanger staat: de aansluiting van de timing componenten aan de monoflops. Moet net zo zitten als bij de zender.

[Bericht gewijzigd door fatbeard op 15 maart 2020 20:03:31 (11%)]

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.

Ik zal de serieweerstanden opnemen. Moet er ook een weerstand naar de plus of de aarde komen voor die serieweerstand of bij de ingang van het IC? En de uitgangen daar wil ik led's op aansluiten, dat gaat met een weerstand naar de plus of naar de massa?
Daarnaast stel ik "uitgebreide uitleg en timingdiagrammen" zeer op prijs!

[Bericht gewijzigd door Herms Lunenborg op 15 maart 2020 20:28:23 (13%)]

fatbeard

Honourable Member

Een pull-up naar Vcc aan de ingang is inderdaad in de meeste gevallen nodig. Afhankelijk van de plek en de gekozen serieweerstand ligt de waarde tussen 10 en 100k: direkt aan de ingangen van de IC's (geprefereerd) 100k (minstens 10×de waarde van de serieweerstand), als je hem voor de serieweerstand aansluit is 10k ook goed.

Welke versie ga je bouwen?

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. Ik ga de eerste versie bouwen, een extra draad vind ik geen probleem. Ik heb de onderdelen al besteld. Ik hou je van de voortgang op de hoogte!