Nieuws:

Nu in MSM 249 REPORTAGE: Alles wat u moet weten over de 10de Grote Modelspoor Expo * Spur Z weekend in Altenbeken * RAMMA 2024

Hoofdmenu

G.I.P: automatisch schaduwstation zonder wissels

Gestart door conducteur, 09 mei 2012, 21:33:26 PM

PeterC

Citaat van: conducteur op 19 januari 2014, 11:24:03 AM
Hoe zit dat eigenlijk met die kristallen, tot nu toe heb ik die paar PIC projectjes al altijd voorzien van een extern kristal. Heb ik die nodig voor de PIC op het bedieningspaneel, of bij seriele communicatie? Wanneer wel/niet?

Geert was me net voor  :)

Enkel bij preciese timing gebruik ik een kristal of om met een 18F PIC vanuit een 20 MHz Xtal via de ingebouwde PLL 96 MHz te halen voor USB communicatie.



Citaat van: conducteur op 17 januari 2014, 11:51:27 AM
...Hoe zit dat in JAL voor SPI?

Hier.  Zelf nog geen behoefte gehad aan SPI.  Ik los (voorlopig?) nog alles op met I²C.

Groetjes, Peter


Geert

Citaat van: PeterC op 19 januari 2014, 11:39:08 AM

Enkel bij preciese timing gebruik ik een kristal of om met een 18F PIC vanuit een 20 MHz Xtal via de ingebouwde PLL 96 MHz te halen voor USB communicatie.



USB communicatie... Ik hoop ooit wel eens 'van je ervaring hiermee' gebruik te maken. Ik denk er ook aan dit eens toe te passen.

En de PLL klok versneller, ook daar heb ik geen ervaring mee. Ik kom nog steeds kloksnelheid te kort voor mijn zelfbouw centrale.

Geert
Schaal H0 - digitaal zelfbouw - Favoriete Lok: V200 DB

PeterC

@Geert: als je die USB communicatie in ASM gaat schrijven, wens ik je veel plezier  :o :o :o
In JAL werkt die communicatie zonder probleem (zowel als HID of als seriële emulatie).  Alleen met de timers heb ik problemen.  Intern zou de µC op 48MHz moeten werken, maar als ik mijn timers bereken, kom ik op 32MHz clock uit...  Bizar...


Groetjes, Peter


conducteur

De knoop doorgehakt: het wordt met 2 µC in het systeem... (nu wel met 16f887 2x, de voorziene controller lag blijkbaar niet in z'n doosje en zo'n 40 pins krijg ik er wel op. Misschien wat overkill met redelijk wat I/O op overschot nu)...


LCD aangesloten op de Dpoort


D4-D7 van lcd op D0-D3 in respectievelijke volgorde...
D4 RS
D4 Enable

De 8 knopjes op B-poort, dan is de c vrij voor SPI, als ik goed gekeken heb heb ik daar C4-C6 nodig?
eens proberen of ik er 'hello world' uit krijg...
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Sattrickske

Citaat van: conducteur op 19 januari 2014, 19:28:10 PM
D4-D7 van lcd op D0-D3 in respectievelijke volgorde...
D4 RS
D4 Enable
Gaat niet werken, ik vermoed dat je de laatste op D5 of zoiets gaat hangen?

Citaat van: conducteur op 19 januari 2014, 19:28:10 PM
De 8 knopjes op B-poort
Meer dan 4 knopjes hang je best aan een matrix, bespaart wat pinnetjes.  Maar ja, je had er op overschot dacht ik te lezen...

Citaat van: conducteur op 19 januari 2014, 19:28:10 PM
dan is de c vrij voor SPI, als ik goed gekeken heb heb ik daar C4-C6 nodig?
Paragraaf 13.3 van de datasheet voor PIC16F887:
SDO = RC5
SDI = RC4
SCK = RC3
/SS = RA5 (als er maar één SPI device is, mag je deze op de slave aan de massa hangen; op de master heb je die niet nodig)
Ik weet niet waar je C4-C6 bent gaan halen, maar kijk altijd je datasheet na.

Sattrickske

Nog een kleine opmerking, probeer in je posts de PIC poorten te benoemen zoals Microchip dat doet.  Dat maakt het voor mij (en andere Microchip adepten) iets makkelijker om te lezen.
Bv. PortD = RD0..RD7

HYA

Voila, ik heb me er volledig door deze draad gelezen.
Van de elektronica begrijp ik niets of heel weinig, de programmeertalen zijn me niet bekend.
Maar toch met plezier alles doorgenomen en zeker slimmer geworden.

Sowieso dikke proficiat Rian met je doorzetting, deze is helemaal de regel niet meer tegenwoordig.
Welke richting volg je nu?

conducteur

#397
Citaat van: Sattrickske op 20 januari 2014, 19:40:51 PM
Citaat van: conducteur op 19 januari 2014, 19:28:10 PM
D4-D7 van lcd op D0-D3 in respectievelijke volgorde...
D4 RD4 RS
D4 RD5 Enable
Gaat niet werken, ik vermoed dat je de laatste op D5 of zoiets gaat hangen?

Citaat van: conducteur op 19 januari 2014, 19:28:10 PM
De 8 knopjes op B-poort
Meer dan 4 knopjes hang je best aan een matrix, bespaart wat pinnetjes.  Maar ja, je had er op overschot dacht ik te lezen...

Citaat van: conducteur op 19 januari 2014, 19:28:10 PM
dan is de c vrij voor SPI, als ik goed gekeken heb heb ik daar C4-C6 nodig?
Paragraaf 13.3 van de datasheet voor PIC16F887:
SDO = RC5
SDI = RC4
SCK = RC3
/SS = RA5 (als er maar één SPI device is, mag je deze op de slave aan de massa hangen; op de master heb je die niet nodig)
Ik weet niet waar je C4-C6 bent gaan halen, maar kijk altijd je datasheet na.
-Inderdaad lcd hangt op RD0 tot RD5 (typfoutje, nu zou dat toch moeten werken?)
-De matrix: inderdaad, ik heb voldoende I/O, ook moest ik voortgedaan hebben met de originele opstelling met één microcontroller. En misschien ook uit praktische overwegingen? Je leest direct de juiste waarde in...
-bedankt voor de hulp ivm SPI (mogelijk ook typvoutje)


bedankt HYA, het is heel tof te lezen dat ook non-techneuten het draadje eens gezien hebben! bedankt! Nu volg ik elektronica aan de hogeschool Vives te Oostende...
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Sattrickske

Yep, zo zou het moeten werken.
De matrix was maar een suggestie, onthou dit voor later wanneer je IO pinnetjes wil besparen.  Je hebt toch een serieus stukje software nodig voor zo'n matrix.  Als je pinnetjes genoeg hebt, is het inderdaad makkelijker om ze rechtstreeks aan de IO te hangen.  Gewoon effe de TRIS van de betreffende bits van de poort in de goede richting zetten (input=TRIS=1 ;)) en lezen maar...

conducteur

De drukknoppen worden al correct ingelezen (vlug eens flowcode een testprogramma gemaakt), nu dat lcd nog... Dat wordt wat moeilijker denk ik...
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

dani

en dan de stok in het hoenderhok ....   (sorry mannen, kon het me deze keer echt niet laten)

"bestaan daar geen libraries voor ?"   ->  Bij de Arduino SDK heb je libraries voor al die soorten apparaten en toestanden die je gewoon kan "includen" in je programma, en die bieden je dan functies om te gebruiken in je code.   Simpel als wat .....    Je moet natuurlijk wel nog kunnen programmeren, maar je zit al meteen een laag of 2 hoger "in het abstracte" ipv direct met je neus in de registers, wat het dan weer moeilijker maakt om prciese timing te programmeren, maar is dit altijd echt nodig ?
Het gebruik van bibliotheken maakt het leven van de programmeur een stuk makkelijker.   En ik ben zelf van nature lui  (typisch aan ingenieurs of gewoon mijn karakter ?).

Enfin, soit, kompleet irrelevant en off topic, maar ik meld intussen toch even dat ik dit in stilte volg.
De kruik is te water gegaan...
De kruik is niet meer.

Sattrickske

Ja en nee...
Eerst en vooral, je praat over Arduino, da's een platform; je vertrekt van een bord/module gebouwd rond één bepaald type processor (ARM Cortex M0 of M3) waarop je vanalles kan inpluggen (shields).  Voor elk van die shields is er wel ergens één of andere goedhartige developer die daarvoor een libje gemaakt heeft.  Dat werkt heel mooi en is heel handig zolang je bij dit platform blijft (je kan het bijna vergelijken met Plug and Play).  ARM/Arduino heeft daar heel handig op ingespeeld en een hele community rond gebouwd.
Deze methode heeft wel een paar nadelen, om er een paar te noemen:
- de prints bevatten meestal overtollige componenten voor 'jouw' project en vallen dus groter uit
- de libraries sleuren heel vaak overbodige code mee, omdat ze proberen iedereen te gerieven.

De PIC (Microchip) wereld werkt ietsje anders, daar zijn er honderden verschillende platformen te vinden, omdat ze veel meer diversifiëren en zich niet vastpinnen op één platform.  Gevolg is dat er dan ook een veelvoud aan libraries bestaan, en hierdoor veel minder bekend zijn (iedere fabrikant van PIC modules heeft zo z'n eigen bibliotheek). Bv. Mikroe heeft er zo eentje.
PIC legt zich niet direct toe op de hobbyist, die effe -met alle respect- een schakelingetje in mekaar wil flansen zonder eigenlijk een bal af te weten van elektronica;  PIC richt zich eerder op de electronics engineers en de industrie.
Nadeel hiervan is dat je 1000en verschillende schakelingen hebt met PICs en daardoor wordt het verrekte lastig om standaard libraries hiervoor te maken.

Nu, begrijp me niet verkeerd, ik heb geen specifieke voorkeur voor PIC of ARM/Arduino.  Ik gebruik ze allebei, maar kies wel in functie waar ze het best tot hun recht komen.  En soms durf ik af en toe wel modules voor een Arduino aan een PIC te koppelen, en dan kan je gewoon de library van de Arduino shield effe porten naar PIC. Da's meestal kwestie van een paar defines aan te passen en klaar is kees.
Tot nu toe is m'n keuze voor 8bit modules, bijna altijd PIC geweest, omdat ik die schakelingen volledig op maat maak.  Voor de 32bit is dat ARM, omdat die processoren goedkoper en makkelijker te verkrijgen zijn.

Ieder maakt zo z'n eigen keuzes, en eerlijkheidshalve, hier is geen verkeerde keuze.  Zolang je maar de design regels voor iedere familie respecteert en je ze in je ontwerp kan inpassen.

dani

klopt als een zwerende vinger, en ik heb daar dan ook geen verdere toevoegingen op, alleen dat het  "Arduino" platform inderdaad een instap is, en eens je  dat doorgrond hebt, kan je makkelijk zelf je boards ontwerpen rond de Atmel chips zonder die shields en zo.
De kruik is te water gegaan...
De kruik is niet meer.

conducteur

#403
Om een en ander uit te proberen heb ik aan RA2 een ledje gehangen, en de knoppen al kunnen uittesten: het ledje gaat aan als ik op een van de knoppen duw. Op het lcd zou "hello world" moeten verschijnen. Omdat ik nog eens moet uitvogelen hoe dit in C moet, dit testje gemaakt met flowcode. Een tof systeem om op grafische wijze zonder enige kennis van C een programma te schrijven, dus aan het programma kan volgens mij weinig fout zijn.. Uit het lcd komt echter weinig leven, van de bovenste rij karakters lijken volgens mij alle pixels gewoon aan te staan, de onderste rij niets.


Er hangt een knopje aan de reset ingang van de µC, met een pull-up weerstandje naar +5V, als ik die indruk om het spel te resetten reageert de lcd ook, hoewel er geen verbinding is met de lcd zelf. Er is dus toch een zekere vorm van signalen tussen beide? 


ps: (n)iemand goesting om eens op een zaterdag of zondagnamiddag in februari me even op weg te helpen met dit project? De deadline voor dit project staat op de opendeurdag van m'n vorige school. Ik hoop eindelijk dan als ik ga te kunnen melden dat het ding werkt. Dat is ergens na Pasen/begin mei... Met de huidige beperkte ervaring/kennis van programmeren krijg ik het ding nooit tijdig klaar. (bv het probleem met het lcd nu, ben ik toch al aardig wat uren op aan het zoeken, de bedrading gecontroleerd, opnieuw programma gemaakt terwijl het misschien iets doodsimpel is dat ik moeilijk via het forum kan tonen/vragen?)


Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

dani

helaas heb ik zelf van PICs weinig (lees: geen) kaas gegeten.  Anders zou ik wel es kunnen binnen wippen als ik nog eens in Blankenberge ben....
Maar ik weet niet of je veel aan mij gaat hebben nu.    En om alles vanaf nul op een ander platform te herbeginnen is misschien ook niet echt meer aan de orde.
De kruik is te water gegaan...
De kruik is niet meer.