|
Embedded systems: Rabbit
De Rabbit RCM5700
Ik ben al heel lang geïnteresseerd in processoren. Dat blijkt wel uit
mijn werk, maar ook als hobby heb ik er nog veel plezier in. Al heel vroeg
(rond 1980) heb ik mijn eerste computer gebouwd (zie mijn zelfbouw-geschiedenis pagina's), en ook later heb ik veel
gespeeld met diverse computer-bordjes, zoals single-board 'embedded systems' met netwerk-mogelijkheden.
Wat is de RCM5700?

De RCM5700 is een
voordelig mini-computerprintje (3x5cm) met een Rabbit 5000 processor er op.
Het wordt via een mini PCI Express connector op bijvoorbeeld een
ontwikkelbordje aangesloten. Het bevat de processor (met
ethernet-interface, real-time clock, 128 kB RAM, timers, I/O-pinnen,
seriële poorten etc) en 1 Mbyte flashgeheugen. Stroomgebruik rond de
70 mA.
Een leuk en voordelig bordje om mee te spelen is de Rabbit RCM5700. Deze is gebaseerd op
een opgevoerde Z80 op 50 MHz, en heeft een aantal I/O-mogelijkheden,
waaronder een Ethernet aansluiting. Voor zo'n 50 Euro (aanbieding) had ik een
ontwikkelsysteem hiermee, dat je via een USB-kabeltje aan je computer kan
koppelen om programma's (die je in 'C' kunt schrijven) te downloaden. Ook
beschikbaar in een draadloze uitvoering RCM5600W (ontwikkelkit op het
moment $99).
Ik ben van plan deze te gebruiken voor simpele besturing van zaken in en
rond het huis, 'home control' (met name automatisch helemaal uitschakelen van
in slaapstand stroomverbruikende apparaten). Bij zoiets is de bediening
altijd het probleem. Het leuke van dit Rabbit bordje is dat er een simpele
web-server op kan draaien (wordt meegeleverd). We hebben thuis ook een Wii:
via de web-browser op de Wii/TV (of op je computer, of op je telefoon, of
...) kan je dus dit bordje op afstand besturen, en via internet in principe
vanuit de hele wereld (pas wel op de beveiliging). Je hoeft dus niet een
schermpje op de Rabbit zelf aan te sluiten, en kan het geheel in een kast
wegwerken, als je wilt. Maar, je kunt uiteraard ook schakelaars en zo aan de
Rabbit koppelen.
De basis-IO
Voor de eerste experimenten heb ik het ontwikkelbord met de RCM5700 erop
samen met een stuk experimenteerprint in een simpele platte behuizing van
10x20 cm geplaatst. Voeding is via de USB-poort (bij het
programmeren/testen), of via een externe +5 Volt voeding. Daarbij heb ik wat
simpele input- en output-mogelijkheden gecreëerd, om bekend te worden
met het bord en het programmeren ervan:
Twee
schakelaars (aangesloten op poort B pin 6 en 7)
- Vier ledjes (aangesloten op poort A pin 4-7)
- Een vijfde led (heart beat, hartslag; deze laat ik een keer per seconde
knipperen om te kijken of'ie nog loopt)
- Een infrarood-ontvanger type TSOP
1738 (aangesloten op de externe interrupt lijn 0: poort E pin 0)
- En daarnaast natuurlijk de bestaande Ethernet-interface, met een
kabeltje naar mijn lokale netwerk
Een 'simpel' programma, geschreven in 'C' (hun 'Dynamic-C'
variant) laat me de 4 ledjes op verschillende manieren aan en uit schakelen,
via:
- de Wii of de PC, via een webinterface naar de op de Rabbit draaiende
web server (gebruik makend van een html/cgi/GET interface)
- de 2 schakelaars (voor 2 van de 4 leds; een keer drukken: led aan,
volgende keer drukken: led uit; softwarematig ontstoord tegen
contact-dender), via time-based pollen
- de afstandsbesturing van de TV (voor een led; alleen nog maar detectie
van het indrukken van toetsen, nog geen decodering, dus iedere toets
schakelt de led), gebruik makend van interrupts
- op tijd, via de real-time clock
Dit is de basis voor meer complexe systemen, en een goede manier om thuis
te raken in de mogelijkheden (web server, interrupts, etc). In plaats van
leds kunnen nu bijvoorbeeld solid-state relais aangestuurd, om 220-Volt
apparaten te schakelen.
Links
Diverse ongesorteerde links uit mijn bookmarks:
|