Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Chinese prut kabel door Klaas Zondervan
Vandaag om 16:26:34
Eén leuke of mooie trein/spoor foto van je vakantie. door tothebeach
Vandaag om 16:26:30
LED / Lampjes (Viessmann) seinpalen aansturen. Vraagje aan electronica experts door Klaas Zondervan
Vandaag om 16:22:26
Bouw Artitec Post T door gtw6016
Vandaag om 16:11:51
Br 38 Piko Superen. door Prutsert
Vandaag om 16:00:58
schok bij vertrek door Hasenwald
Vandaag om 15:29:04
Microstepper motoren voor armseinpalen door bask185
Vandaag om 15:27:30
BR-18.6 Schaal-0. door FritsT
Vandaag om 15:26:50
Bauarbeiten im gange door Eric v C
Vandaag om 15:03:49
US diorama in H0 door Wim Vink
Vandaag om 14:47:50
Lokpilot 4 defect door henk
Vandaag om 14:35:50
Waldbrunn an der Veluwe. Romantiek in H0 (2R) door Karben
Vandaag om 14:35:34
Centraal Zwitserland: Trein, tram, kabelbaan en gondels. door R.C.Grootveld
Vandaag om 14:24:58
Dat overkomt mij niet. door 1200blauw
Vandaag om 14:11:24
Raadplaatje door grossraumwagen
Vandaag om 13:43:18
Ronald doet de Fork Challenge! door Ronald Halma
Vandaag om 12:24:48
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 12:15:44
DCC-decoder geïntegreerd in sein(voet) door janvanbemmel
Vandaag om 11:32:40
ÖBB smalspoor in het Waldviertel. door Hollandserhbfan
Vandaag om 11:06:24
Wèhnich - Eén onbeduidend baantje op 1200 bij 1200mm door Prutsert
Vandaag om 10:52:54
Yet Another Servo Decoder door Karst Drenth
Vandaag om 10:38:02
BMB 00-Modulebaan, BMB-Rijdagen en BMB-Deelname aan Beurzen & Evenementen door Hans van de Burgt
Vandaag om 10:29:18
De bouw van mijn modelbaan in Thailand door Thai-Bundesbahn
Vandaag om 08:04:48
Spoorongeval Duitsland, 27-7-2025 door VAM65
Vandaag om 07:39:50
Rheinburg, TP V/VI door Dave.......
27 July 2025, 23:14:00
Piko 1136 van AC naar DC door Martijn193
27 July 2025, 22:33:48
Mooi weer om buiten te spelen door sncf231e
27 July 2025, 22:28:10
"Spoor op Vleugels" in H0 door MOVisser
27 July 2025, 22:07:43
Toon hier je nieuwe (model-) spooraanwinst(en)... door Cegielski
27 July 2025, 21:33:13
Aachenau West door Wim Vink
27 July 2025, 17:47:51
  

Auteur Topic: USB, PICs, Loconet en DCC  (gelezen 14937 keer)

Peter Korsten

  • Offline Offline
  • Berichten: 8571
USB, PICs, Loconet en DCC
« Gepost op: 21 January 2009, 22:31:46 »
Dit is een stel nogal specifieke vragen, dus houd me ten goede.

Microchip heeft een aantal PIC micro-controllers waar je kinderlijk eenvoudig een USB-poort op kunt aansluiten. Bijvoorbeeld, de 20-pins PIC18F14K40.

Nu hebben die doorgaans één USART aan boord en het lijkt me dat je die via een opto-coupler een Loconet-aansluiting kunt geven. So far, so good.

Maar als je dan ook nog eens het DCC-protocol zou willen doen met dezelfde PIC, heb je dan een tweede U(S)ART nodig? Want dan zit je al meteen aan een 64-pins TQFP en dat lijkt me minder handig.

En als je dan het DCC-signaal (dat van een software-matige centrale af zou kunnen komen) al weet te genereren, is het mogelijk om een galvanische scheiding aan te brengen zoals bij Loconet? En zou je het zonder meer op een booster (al dan niet zelfbouw) aan kunnen sluiten?

Alvast bedankt!

- Peter
***** ***** ***** ***** ***** ***** ***** ***** 40

Dave van der Locht

  • Offline Offline
  • Berichten: 1064
Re: USB, PICs, Loconet en DCC
« Reactie #1 Gepost op: 21 January 2009, 22:35:34 »
Nope, voor genereren van het DCC protocol heb je geen (extra) USART nodig.
Enkele wat slimme routines en een timer is voldoende.

Scheiding d.m.v. een optocoupler aan DCC zijde is geen probleem, gebruik ik zelf ook.
Voor een strak/net uitgangssignaal / ingangssignaal op de booster dien je wel gebruik te maken van een wat snellere opto-coupler. Al heeft het hier ook tijden lang met PC817's gewerkt, al verdiende dat geen schoonheidsprijs.

Groetjes,
Dave
« Laatst bewerkt op: 21 January 2009, 22:43:03 door Dave van der Locht »
Beter een gat in een trein, dan een trein in je gat.

Peter Korsten

  • Offline Offline
  • Berichten: 8571
Re: USB, PICs, Loconet en DCC
« Reactie #2 Gepost op: 21 January 2009, 23:20:39 »
Hé, dankjewel voor je antwoord! Dat is goed nieuws.

Dus je gaat in feite een U(S)ART nabootsen in software? Dan zal het ook niets uitmaken of je Loconet aan de 'echte' of 'nep'-UART hangt, neem ik aan.

De reden voor mijn vraag is dat ik me afvroeg hoe doenlijk het is om een klein en goedkoop apparaatje te maken dat zich op de computer aanmeldt als twee virtuele seriële poorten, eentje voor Loconet en de andere voor DCC.

Immers, je kunt wel een PC voor microcontroller laten spelen en zelf de timing laten doen, maar dat is toch een beetje zonde van de hardware, om het nog maar niet te hebben over het stroomverbruik. Wat dat betreft lijkt het zinvoller om een centrale als de Intellibox in software na bootsen. Die software bestaat immers al, is niet afhankelijk van hele strakke timing en kan op dezelfde computer draaien als een programma als Koploper.

Nog een vraagje over DCC: stel dat je twee of meer boosters hebt, kun je die parallel op de opto-coupler aansluiten, of kun je boosters in serie schakelen? Of zet je de opto-coupler in de booster? (In zowel de interface als de booster zal vast geen goed idee zijn.) Ik heb eens zitten zoeken in Uhlenbrock-handleidingen en schema's van boosters, maar dat is niet geheel duidelijk.

Dan is er nog de 'kleinigheid' dat ik digitale elektronica weliswaar begrijp ('t is niet veel anders dan programmeren), maar dat het analoge gedeelte, zoals wanneer zet je ergens een condensator of een weerstand neer en met welke waarde, toch enigszins zwarte magie voor me is. Maar daar zal met datasheets en veel zoeken en lezen wel wat aan te doen zijn. :)

- Peter
***** ***** ***** ***** ***** ***** ***** ***** 40

Dave van der Locht

  • Offline Offline
  • Berichten: 1064
Re: USB, PICs, Loconet en DCC
« Reactie #3 Gepost op: 21 January 2009, 23:41:33 »
Zo kun je het inderdaad wel bekijken (soort van software-UART zoals ze dat dan noemen).

Mijn eigen centrale heeft ook maar 1 UART welke ik voor XpressNet (RS485) gebruik. Echter is DCC prima te doen middels een timertje (en bijbehorende interrupts). Welliswaar hier wel op een AVR, maar voor een PIC geldt deze basis ook.

En inderdaad... Loconet 'praten' kan ook in software afgehandeld worden. Evt. kun je gebruik maken van de analog comparator indien deze aanwezig is in de betreffende PIC. Dat scheelt weer een extra IC op je print, maar dan is er wel ietsjes meer code nodig om ook dit weer te regelen.

Waarom eigenlijk een virtuele COM-poort voor DCC? Als je PIC Loconet ondersteuning krijgt, kun je ook Loconet opdrachten interpreteren en de bijbehorende DCC opdrachten eruit poepen. Anders speelt je PC alsnog min of meer voor microcontroller.  ;)

Als je achter de opto-coupler een buffertje zet is het parallel schakelen van meerdere (gelijk-soortige) boosters hier achter geen enkel probleem, met het in acht nemen van het common-ground verhaaltje uiteraard.

Opto-coupler voor data en kortsluit-signaal zit bij mij direct achter de centrale (niet in of op de booster).

W.b.t. analoge techniek, dat is inderdaad een kwestie van veel lezen, de bijbehorende wetten en regels bestuderen en ook veel experimenteren. Echter zijn hier op internet heel veel Nederlands- of Engelstalige 'cursusjes' e.d. over te vinden. In de tijd dat ik er mee begon, liep ik elke week de bibliotheek uit met een tas boeken als aanvulling op het leer-materiaal wat ik van school mee kreeg. Internet was nog een luxe destijds... ;)

Groetjes,
Dave
« Laatst bewerkt op: 21 January 2009, 23:48:31 door Dave van der Locht »
Beter een gat in een trein, dan een trein in je gat.

Peter Korsten

  • Offline Offline
  • Berichten: 8571
Re: USB, PICs, Loconet en DCC
« Reactie #4 Gepost op: 22 January 2009, 00:43:12 »
Waarom eigenlijk een virtuele COM-poort voor DCC? Als je PIC Loconet ondersteuning krijgt, kun je ook Loconet opdrachten interpreteren en de bijbehorende DCC opdrachten eruit poepen. Anders speelt je PC alsnog min of meer voor microcontroller.  ;)

Ik had gedacht omdat je boosters dan ingewikkelder en dus duurder zouden worden, maar bij nadere beschouwing lijkt een Loconet-boosters louter simpele componenten te bevatten. (http://users.telenet.be/deloof/booster/hdm07nl.pdf) Dat valt dus weer mee. Alleen heeft dit ontwerp weer geen galvanische scheiding.

- Peter
« Laatst bewerkt op: 22 January 2009, 00:45:24 door Peter Korsten »
***** ***** ***** ***** ***** ***** ***** ***** 40

fissy

  • Offline Offline
  • Berichten: 4304
    • Gouda in H0
Re: USB, PICs, Loconet en DCC
« Reactie #5 Gepost op: 22 January 2009, 07:02:17 »
kijk eens hier...

Ik gebruik zelfs ook deze Spax-Booster van de fremo...

Groet

Bernd
Project Gouda in H0 - Nederland - Tijdperk V - Digital: DCC Loconet (Digitrax DCS 100)
OBB bezoekje: 2008

GlaskasteN

  • Offline Offline
  • Berichten: 12
Re: USB, PICs, Loconet en DCC
« Reactie #6 Gepost op: 22 January 2009, 08:30:03 »
De USART is niet zo één twee drie te gebruiken voor Loconet. Loconet is namelijk een bus waarop elke busdeelnemer uit zichzelf kan gaan praten. Het kan voorkomen dat busdeelnemers door elkaar heen gaan praten, en dan moet ze allemaal stoppen met uitzenden, en een bepaalde periode wachten. Dit in tegenstelling tot een RS485 bus zoals als Xpressnet waarbij de master de individuele slaves toestemming geeft om te zenden.

Het project 'Embedded Loconet' is bezig (geweest) om de hardware UART te gebruiken, zie onderandere het volgende mailinglist item:

http://sourceforge.net/mailarchive/forum.php?thread_name=45F2DF24.2000609%40nord-com.net&forum_name=embeddedloconet-developers
1:160 | DRG | SelecTRIX

Karst Drenth

  • Offline Offline
  • Berichten: 10476
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: USB, PICs, Loconet en DCC
« Reactie #7 Gepost op: 25 January 2009, 01:25:01 »
Citaat van: Peter Korsten
...Nu hebben die doorgaans één USART aan boord en het lijkt me dat je die via een opto-coupler een Loconet-aansluiting kunt geven. So far, so good...
Citaat van: GlaskasteN
...De USART is niet zo één twee drie te gebruiken voor Loconet...

Helemaal correct GlaskasteN, Om de LocoNet Specs goed te kunnen implementeren, met name de collision detectie moet je gaan 'bitbangen' dus niet gebruikk maken van een USART, omdat je namelijk bij elke 'hoog' die je het LocoNet opstuurt, moet checken of er geen collision plaats vind.

Peter, aan de USB heb je in dit geval niets helaas. Het LocoNet heeft zijn eigen Hardware protocol. De USB zou je wel kunnen gebruiken als PC-interface...

Citaat van: Peter Korsten
Maar als je dan ook nog eens het DCC-protocol zou willen doen met dezelfde PIC, heb je dan een tweede U(S)ART nodig? Want dan zit je al meteen aan een 64-pins TQFP en dat lijkt me minder handig.
Citaat van: Dave van der Locht
...Nope, voor genereren van het DCC protocol heb je geen (extra) USART nodig.
Enkele wat slimme routines en een timer is voldoende...

Inderdaad, ook het DCC protocol kun je beter 'bit-bangen' dan de ingewikkelde UART constructie zoals die door de diverse 'direct-drive' programma's gebruikt wordt.


Citaat van: Dave van der Locht
...dien je wel gebruik te maken van een wat snellere opto-coupler. Al heeft het hier ook tijden lang met PC817's gewerkt, al verdiende dat geen schoonheidsprijs...

 ;D de 6N137 is the chip to have here ;)

Citaat van: Peter Korsten
...Immers, je kunt wel een PC voor microcontroller laten spelen en zelf de timing laten doen, maar dat is toch een beetje zonde van de hardware, om het nog maar niet te hebben over het stroomverbruik...

Nou, de LocoNet en DCC timing is dermate kritisch, dat je dat zonder Realtime-OS op de PC niet zal lukken...  :(  ( tenminste als je niet van de PC UART gebruiktmaakt voor generatie van het DCC signaal. LocoNet op de PC, zelfs via de UART, is nooit betroubar aan het werk te krijgen. We praten hier in tijdseenheden tot op de microseconde nauwkeurig.


Maar...  ;D een hardstikke leuk project Peter. En PIC programmeren is echt back to basics ;) Leuk dus  :P

Grtzz en suc6,

Karst


Peter Korsten

  • Offline Offline
  • Berichten: 8571
Re: USB, PICs, Loconet en DCC
« Reactie #8 Gepost op: 25 January 2009, 10:18:48 »
Oké, dat is duidelijk. Trouwens, op de datasheets van de 6N137 staan enkele en dubbele uitvoeringen. Maar met een dubbele uitvoering kom je vast in de knoei omdat er een elektrische verbinding tussen DCC en Loconet is, niet?

Dan nog een vraagje over het programmeren. Er zijn zat schema's voor goedkope programmeurs op het internet te vinden, maar die zijn meestal voor PIC16 chips van meer dan 20 pinnetjes. Zou dat verder nog wat uitmaken, zolang je maar de juiste aansluitingen gebruikt?

Of zou een PicKit2-programmer ($35 + verzending + BTW), of één van deze kits ($50 + verzending + BTW) een goed idee zijn, mocht ik nog meer met PICs gaan doen?

- Peter
***** ***** ***** ***** ***** ***** ***** ***** 40

Peter Korsten

  • Offline Offline
  • Berichten: 8571
Re: USB, PICs, Loconet en DCC
« Reactie #9 Gepost op: 27 January 2009, 09:34:42 »
Inmiddels heb ik de specificaties van zowel Loconet als DCC gedownload (en uitgeprint en netjes in een mapje gedaan) en daar worden de meeste vragen in beantwoord. Voor DCC heb je inderdaad niet gek veel aan een USART.

Karst, USB is specifiek voor de computer-interface en stroomvoorziening voor de PIC.

- Peter
***** ***** ***** ***** ***** ***** ***** ***** 40

Peter Korsten

  • Offline Offline
  • Berichten: 8571
Re: USB, PICs, Loconet en DCC
« Reactie #10 Gepost op: 01 February 2009, 16:25:07 »
Programmer + demo-bordje + 3 PICs (om het geheel boven de €50 te krijgen en niet de 'handling fee' te betalen) op de site van Microchip Direct besteld.

- Peter
***** ***** ***** ***** ***** ***** ***** ***** 40

Jeroen van Tol

  • Offline Offline
  • Berichten: 205
  • Think BIG - Think Digital
Re: USB, PICs, Loconet en DCC
« Reactie #11 Gepost op: 06 February 2009, 13:37:45 »
Peter,

Ik zie in jouw project wat overlap met mijn projectje... En in het 'gebrek aan electronica kennis' zit geloof ik ook wat overlap.  ;D

Om de lege gaten op het gebied van standaard componenten wat op te vullen kwam ik de volgende boeken tegen op internet:

www.ibiblio.org/obp/electricCircuits

Misschien heb je er iets aan!

Overigens misschien leuk om eens 'ervaringen en ideeen' uit te wisselen. Mocht je daar interesse in hebben zie ik vanzelf wel een PB'tje...

Groet,
Jeroen.
Mijn leven is een pendeltrein waarvan de stations steeds een stukje vooruitgeschoven worden...

Peter Korsten

  • Offline Offline
  • Berichten: 8571
Re: USB, PICs, Loconet en DCC
« Reactie #12 Gepost op: 06 February 2009, 14:28:35 »
Kijk eens aan, dankjewel!

Het setje van Microchip is eergisteren al aangekomen, daar hoop ik van het weekend wat mee te kunnen spelen, mits mijn zoontje me met rust laat. :)

- Peter
***** ***** ***** ***** ***** ***** ***** ***** 40

Jeroen van Tol

  • Offline Offline
  • Berichten: 205
  • Think BIG - Think Digital
Re: USB, PICs, Loconet en DCC
« Reactie #13 Gepost op: 11 February 2009, 19:37:10 »
Karst,

LocoNet op de PC, zelfs via de UART, is nooit betroubar aan het werk te krijgen. We praten hier in tijdseenheden tot op de microseconde nauwkeurig.

Nu maak je me heel zenuwachtig...
Betekent dat wat ik probeer te bouwen (https://forum.beneluxspoor.net/index.php?topic=17350.0) ook niet kan werken?

Groet,
Jeroen.
Mijn leven is een pendeltrein waarvan de stations steeds een stukje vooruitgeschoven worden...

Patrick Smout

  • Offline Offline
  • Berichten: 441
Re: USB, PICs, Loconet en DCC
« Reactie #14 Gepost op: 11 February 2009, 22:52:32 »
microseconde timing is voorbehouden voor Real Time Operating Systems, een category waar Win* niet eens kort bij komt.
De modale Win programmeur werkt met threads. De maximale tijd die een thread toegekend krijgt alvorens gewisseld wordt naar een andere thread wordt bepaald door de thread quantum tijd en is ongeveer 20-30ms. Dit betekent dat, met een worst case scenario, als meerdere (slecht ontworpen) threads met dezelfde prioriteit hun quantum tijd volledig opgebruiken het ettelijke 100n ms kan duren vooraleer je eigen stukje code terug aan de slag kan.
Wat kan je er aan doen ... weinig, behalve een hogere prioriteit toekennen aan je eigen threads en zo weinig mogelijk andere software draaien als het echt *snel* moet gaan.
Voor je andere project betekent dit vooral erbij stilstaan dat sleeps programmeren om te wachten puur tijdverlies is en dat overlapped IO veel beter werkt. Juiste aanpak hangt af van de USB driver die je hebt (FTDI?) en de API die je aangeboden wordt.

Patrick Smout

Met vriendelijk groeten,

Patrick Smout