Nieuws:

Nu in MSM 244 PRAKTIJK: Een kasteeltje uit Forex * Een diorama uit de mouw schudden: een tutorial door Evan Daes

Hoofdmenu

Waar zijn we nu mee bezig ? Microcontrollers

Gestart door ToThePoint, 13 januari 2012, 10:27:28 AM

Havoc

CiteerJe voornaamste keuzes die je gemaakt hebt, komen in CAN ook voor dus op dat vlak zijn de violen gelijkgestemd (enkel de 9-bit is niet van toepassing bij CAN).

Ik denk dat we uiteindelijk wel hetzelfde gaan bekomen, enkel met een ander protocol.  Je gaat wel meer werk hebben met die RS-485, maar je bent nergens aan gebonden, je doet wat je wil en dat kan ook een groot voordeel zijn.

9-bit gebruik ik enkel omdat het reeds in zowel pc-interface als controller voorzien is. En het laat de controller toe om de uart de adressering te laten uitpluizen zonder dat de processor iets moet doen. De RS-485 is enkel gebruikt om de ttl seriële bus zonder problemen over de hele baan te krijgen. Dat is niet meer werk dan een tranceiver op de pc zetten. Vergeleken met software is dat voor mij het minste van alle problemen.

CiteerJuist daarom vraag ik mij af waarom jullie zelf een protocol willen uitvinden?  Wat is er mis met een bestaand?  Weliswaar niet zo snel (16.6 kb) maar algemeen en eenvoudig in gebruik: Loconet!

Ik kan je enkel gelijk geven, zelf een protocol moeten uitvinden is niet echt efficient. Maar meestal is er wel een goede reden (of dat denkt diegene die dat doet toch :D )Voor loconet is het probleem dat het geen open standaard is en dat je dus eigenlijk geen officiële spec hebt die je kan gebruiken. Uit Wikipedia:

CiteerHet LocoNet-systeem is ontwikkeld door Digitrax met als basis de Amerikaanse telefoonkabels. Het is echter geen open systeem en fabrikanten die LocoNet op hun apparatuur gebruiken zijn hiervoor een vergoeding verschuldigd aan Digitrax.

Dat maakt het al niet zo aantrekkelijk.

DCC is wel gemakkelijk te vinden (downloaden bij NMRA) maar wat me daar tegensteekt is dat het een-richting is. Als je 2 totaal verschillende bussen hebt (DCC en S-88) voor 1 ding te doen dan is me dat een behoorlijk nadeel.
Met vakantie voor onbepaalde duur.

PeterC

Daar mijn bestaand PIC ontwikkelingsbordje al geruime tijd niet meer voldeed aan mijn behoeften, ben ik met een nieuw ontwerp begonnen.  Allemaal kleine modules die aan alkaar worden gekoppeld.  Een bordje voor de controller (met kristal, enkele leds en een USB aansluiting), een LCD module (met mogelijkheid om de backlight permanent aan of PWM gestuurd te schakelen) en een Loconet interface zijn reeds klaar.
Volgende modules zijn een MM/DCC interface, een voeding(!), een led bord en een bordje met drukschakelaartjes.
We kunnen opnieuw experimenteren!



Groetjes, Peter


Geert

Peter,

jij weet ook wel hoe je een mens jaloers kunt maken zeg  ;).

Ik ben zelf ook volle bak bezig om mijn µC pendelautomaat verder af te werken.  Maar ik heb tegenslag met mijn programmeer apparaat. Deze werkt enkel op een PC met een com poort. En de enige PC in huis met zulke com poort heeft het begeven. Nu sta ik voor de keuze een PICKIT 2 of 3 aan te schaffen of een USb naar een COM poort.

we zien wel.

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

PeterC

Citaat van: Geert op 01 december 2013, 20:17:29 PM
...jij weet ook wel hoe je een mens jaloers kunt maken zeg  ;)...

En vooral met die mooie degelijke groene schroefconnectors ;) ;) ;)

Citaat van: Geert op 01 december 2013, 20:17:29 PM
...ik heb tegenslag met mijn programmeer apparaat. Deze werkt enkel op een PC met een com poort. En de enige PC in huis met zulke com poort heeft het begeven. Nu sta ik voor de keuze een PICKIT 2 of 3 aan te schaffen of een USb naar een COM poort.

Geert, mijn beurt om je een plezier te doen: ik heb nog een USB-RS232 convertor op overschot.  Stuur mij je adres via mail en je mag deze week de postbode verwachten!

Niet alle programmers werken met dergelijke omzetter; je zal eens moeten proberen!
Groetjes, Peter


ToThePoint

Heb zelf ooit ook overgeschakeld naar een PICKIT 2 en heb nog geen moment spijt van die aanschaf.
Heb die wel rechtstreeks bij de fabrikant zelf besteld.
De programmer is in een knip klaar en kan vele µC aan.

Maar als u een ESU lokprogrammer hebt, daar zit een usb naar rs232 kabel op.
Als u kijkt zoals u altijd keek zal u steeds zien wat u altijd zag. "BOEDDHA"
Now you're just somebody that I used to know "GOTYE"
Spoor HO, HOe, N, Z, digitaal, EP: I, II, III, IV, V, VI

Gerolf

Ik gebruik ook al een tijdje een USB-programmer (voor AVR dan)
Véél sneller dan mijn vorige. Het maakt het programmeren en testen een stuk minder saai.

Waar ik nu mee bezig ben? I2C-communicatie (1 master en verschillende slaves)
De gebruikte microcontrollers zijn van het type AtMega1284P
Het gaat om relatief grote datapakketten (128 bytes typisch) en dan is wat meer snelheid wel interessant.
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

Geert

#501
Een echte USB programmer zal ik ook ooit is moeten aanschaffen. Ik moet meegaan met de tijd hé. Vandaag een pakketje ontvangen van Peter (PeterC) zodat ik toch wat verder kan met mijn vertrouwde RS232 programmer. Waarbij deze, veel dank aan Peter, om mij zo snel uit de nood te helpen.

Wat staat er nu op mijn programma: een pendelautomaat voor één DCC lok (met al zijn digitale functies) die ik heen en weer kan laten rijden.

Op de simulator werkte het al, nu in praktijk testen met mijn vertrouwde programmer.

Geert

Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Sattrickske

Een USB programmer met ICSP breakout.  Bijna al m'n printjes hebben een ICSP connector, zodat ik de software steeds kan aanpassen zonder de chip eruit te moeten halen.

Waar ben ik mee bezig?  Vorige week de TFT LCD driver en de touch panel driver voor een 2.8" scherm afgewerkt (ansi C).  Nu bezig aan SD Card met een SPI, om raw data van SD of MMC kaarten te kunnen lezen/schrijven.

Het LCD paneeltje verstookt heel veel ROM geheugen voor de images en fonts.  En dat is nu net iets waar een microcontroller er niet teveel van op overschot heeft.  Het LCD paneel heeft ook een ingebouwde SD card reader en nu ben ik daarmee aan 't spelen.  Aparte SD card readers kosten amper 1€ en 2Gb kaartjes 3€, je hebt dus meteen een overschot aan extra ROM geheugen.  Momenteel lees/schrijf ik gewoon raw data (pakweg sectors van 512 bytes in één keer).  Aan 5 Mbit gaat dat al behoorlijk snel, uiteindelijk ga ik er proberen 10 Mbit uit te halen (veel sneller zullen die goedkope SD'tjes niet halen, maar da's ook voor niks nodig).
Op termijn ga ik de raw data laten voor wat het is en overschakelen naar FAT16, zodat de kaartjes door de PC geschreven kunnen worden met gewone bestanden.  In het raw formaat moet ik via een PIC micrcontroller de kaartjes eerst opvullen met de data die ik wens; een andere mogelijk is via een raw editor op de PC.  Nadeel van raw is dat ik zelf moet zien dat ik m'n data op het kaartje terugvind.

Geert

Patrick, ik ken heel wat van µC en data storage , en zo voort. Maar jou kennis van deze zaken is zelfs voor mij 'boven mijn petje'.  Maar ik ben blij dat je me blijft prikkelen, om ook verder te gaan in deze materie.

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Sattrickske

#504
Citaat van: Geert op 08 december 2013, 00:18:57 AM
Patrick, ik ken heel wat van µC en data storage , en zo voort. Maar jou kennis van deze zaken is zelfs voor mij 'boven mijn petje'.  Maar ik ben blij dat je me blijft prikkelen, om ook verder te gaan in deze materie.
Is nochtans helemaal niet moeilijk.  Allemaal standaard principes, de SD card (eigenlijk MMC) kan je serieel perfect uitlezen of schrijven en die koppel je dus gewoon op de SPI van je µC.  Dan is het gewoon een kwestie van de datasheets van de SD card te raadplegen en je hebt alles wat je nodig hebt.  En een logic snifferke in combinatie met een analoge scoop helpt natuurlijk ook.
In m'n eerste job deed ik niks anders dan met microcontrollers 'spelen', nu ontwikkel ik alleen nog software (web applicaties); maar de feeling met de µC ben ik nooit verloren.

Heb net een test gedaan met een PIC18 en de SPI clock op 10MHz, werkt perfect op een goedkoop Chinees SD kaartje van 2Gb.

Sattrickske

Was er wel vergeten bij te zeggen dat je zulke dingen beter in C schrijft.  Assembler kan ook, maar 't zou ellendig veel werk zijn; C is hiervoor beter (of een andere hogere generatie programmeertaal).
Maar ik moet er wel eerlijkheidshalve bij zeggen dat de gratis PIC (Microchip) compilers niet echt je dat zijn.  Microchip 'foefelt' met de gegeneerde assembler code om zo hun betalende pro versie te promoten.  Voor delay loops in C kan dat wel dodelijk zijn, Microchip last her en der random NOP instructies in.  En dan zeggen ze dat de pro versie effeciënter is, yeah right, kassa kassa...
Ik heb nu een paar testen gedaan met de volledig gratis small devices c compiler (sdcc), en dat lijkt prima te werken.  De code is zeer efficiënt, ik zou 'm zelf niet beter kunnen scrijven in assembler.  't Is wel effe prutsen met de toochain in de IDE...

Geert

Ik wist wel al dat de betaalde versie van Microchip compilers meer efficiëntere codes produceerde. Maar dat er een strategie achter zal wist ik niet. (eigenlijk kon ik de link niet direct leggen) Maar vermits ik in assembler programmeer, heb ik er geen last van.  ;)

Toch bedankt voor de info.

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Gerolf

Mijn stapje verder:



I2C/TWI-communicatie voor elkaar gekregen  8)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

Geert

Mooi grafiekjes. Dacht eerst dat het over het MM protocol ging. (de bovenste) Ziet er goed uit, wel wat meer info ?  ;)

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Gerolf

Meer info? Mij goed  :)
't Is een screenshot van mijn USB-scoop. Het gaat om een (herhaalde) verzending van 128 bytes als test.
Bovenaan is de datalijn, onderaan de clock. TWI en I2C zijn tweedraads seriële bussen, hier gaat de clock aan 100 KHz
9 clockpulsen per byte, de laatste puls dient telkens voor handshaking (acknowledge)

In het midden zie je een pauze tussen de twee verzendingen. Rechts daarvan komt eerst een adres-byte (adres 4) en daarna 128 databytes.
Die bytes heb ik bij wijze van test hun rangnummer als inhoud gegeven (dus byte 1 bevat 1, byte 2 bevat 2, ...)
Links zie je het einde van de reeks: byte 123 tot 128, en daarna een not-acknowledge (want einde verzending).
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw