SPI og enkelte justeringer

Efter at jeg fik DCC signalet komplet i sidste indlæg har jeg fundet lidt tid til at rode med SPI delen. Derudover har jeg laver et par andre ændringer i kredsløbet, primært for at få sensor output. Jeg tror ikke jeg får brug for alle sensor outputs, men det er surt at stå og mangle et output efter et år eller to, så nu har den fået dem jeg lige kunne komme i tanke om.

Ændringerne er ikke så store, og jeg udelader de skema sider der ikke er ændret. Så nu ser det sådan her ud:

DCC signalet er komplet

De forskellige dele fra mine tidligere blog posts er nu sat sammen, og jeg har et breadboard der kan generere DCC signalet der er gemt i shift registre.

Jeg har stadig ikke lavet den del der læser SPI signalet, men det er et adskilt kredsløb der kører sin egen clock - så de jeg er løbet tør for ledninger til mit breadboard er det nok bedst at få afsluttet denne del og så lave SPI siden selvstændigt. Så må man håbe det hænger sammen senere.

DCC signalet sammensættes

Jeg har i de tidligere blog posts lavet kredslæb der kan styre DCC preamble, data byte start bit, command end bit og naturligvis selve DCC signalet.

DCC kommando output fra shift registre

Når kommandoen skal udlæses fra shiftregistrerne er det lidt kompliceret da kommandoerne vil være mellem 3 og 6 bytes.

Udfordringen er at en 3 byte kommando vil blive indlæst i de "bagerste" 3 shift registre, mens de tre "foreste" vil have tilfældige data fra den tidligere kommando.

Generering af DCC command end bit

Efter at have genereret et signal der kan indsætte DCC data byte start bits i sidste indlæg er turen kommet til at få afsluttet kommandoen.

Generering af data byte start bit.

If sidste afsnit af mit bindegale projekt med at generere DCC  kommandoer med simple off-the-shelves komponenter fik jeg lavet et simpelt kredsløb der kan styre længden af det DCC preamble der starter en ny kommando. Preamblet skal bestå af 1 der bliver sendt 14 eller flere gange.

Jeg finder DCC specifikationen forholdsvis rodet med Packet Start Bit, Address Data Byte, Data Byte Start Bit, Data Byte, og Packet End Bit.

Generering af DCC Preamble

Min originale plan var egentlig at lade min Raspberry Pi (eller hvad der nu kommer til at styre det hele) udregne DCC signet inden det sendes over til mit kredsløb. Og det vender jeg muligvis tilbage til, da jeg "næsten" er i mål.

Forenkling af DCC SPI kredsløbet.

Så er jeg endelig flyttet ind og har alt i orden - ok, det sidste er en løgn, der er flyttekasser overalt, intet er hængt op på væggene, TVet er ikke tilsluttet, ... men man skal jo også have lidt tid til at rode med noget sjovere. Så jeg fortsætter nu hvor jeg slap for lang tid siden i min sidste blog post.

Raspberry PI, DCC og SPI cocktail

Der er ikke sket det store byggeri på projektet. Jeg har fået lagt det meste af sporet, og var egentlig kommet til at tilslutte motorer til sporskifterne (servo i de synlige områder, magnetiske skiftere på skjulte spor).

Men tanken om et lille anlæg der skal styres af en stor IB-COM og en computer virker en anelse forkert. Jeg vil hellere have en lille computer jeg kan bygge ind i anlægget. Så da Raspberry Pi 3 kom på banen blev det min inspiration til at rode lidt med elektronik.

Lidt adskillelse

Der er ikke sket det store i de sidste måneder. Jeg piller lidt en gang imellem - men det var sådan set også planen... jeg skal ikke nå noget, så det er helt fint det tager et par år.

Jeg har nu en adskillelse mellem det synlige del af anlæget og skyggebanegården. Skyggebanegården er langt den største del af anlægget.