Stap 2: Prototyping:
Ik ook ging en kocht een nieuwe CSS-C-compiler gericht op de 10F2xx-micros. De 10F2xx familie van chips is echt goedkoop! Met hoge verwachtingen, ik dook en begonnen met het schrijven van veel code.
De 10F206 heeft een maar liefst 24 bytes RAM - de chip ook sport 512 bytes van flash en één 8-bits timer. Terwijl de middelen schaars zijn, is de prijs goed op 41 cent in grote hoeveelheden. Mijn gosh, een miljoen instructies per second (1 MIPS) voor 41 cent! Ik hou gewoon van de wet van Moore. Evan op eenmalige prijzen, de 10F206 van Digikey is genoteerd op 66 cent.
Ik heb een heleboel tijd werken met de 10F206. Terwijl het werken met de 10F206 ontdekte ik dat multitasking is absoluut nodig. De uitgangssignalen PWM moet houden bijgewerkt zelfs tijdens het ontvangen van nieuwe berichten van de communicatie. Onderbreking bij het actualiseren van de PWM-signalen zal worden gezien als glitches van de LED's. Het menselijk oog is echt goed bij het zien van glitches.
Er zijn een paar fundamentele problemen met de 10F206-chip. Ten minste fundamentele problemen voor mijn toepassing. Het eerste probleem is dat er geen interrupts! Het vangen van het begin van het nieuwe communicatie met behulp van die een lus polling voor timing fouten maakt. Een tweede probleem is dat er slechts één timer. Ik kon gewoon niet vinden een manier om opdrachten te ontvangen terwijl het handhaven van dat de PWM-uitgangen. De LEDs zou glitch telkens die een nieuwe opdracht is ontvangen. Delen van de timer tussen opdrachten ontvangt en rijden de PWM uitgangen was ook een grote software-gedoe. Ik kon niet opnieuw instellen van de timer terwijl ontvangt van een nieuw karakter, omdat de timer ook gebruikt werd om controle van de PWM-signalen.
Tijdens het werken met de 10F206 zag ik een artikel in Circuit kelder over Freescale van nieuwe kleine MC9RS08KA1 micro. Ik hou van Freescale chips - Ik ben een grote fan van hun BDM foutopsporing. Ik gebruikte de Star12 chips veel in het verleden (ik schreef alle software voor de GM Cadillac & Lacern ultrasone systeem op een Star12 - mijn ultrasone software is in de productie nu op deze twee auto's). Dus, ik was echt hoopvol dat hun nieuwe tiny chips goed zou zijn. De prijs is gelijk ook, Digikey heeft deze fiches die aan 38 cent in grote hoeveelheden worden vermeld.
Freescale was goed en stuurde me enkele gratis monsters. Echter de Freescale 9RS08 chip leek echt goofy - ik kon niet veel vooruitgang mee. De chip heeft ook te kampen met een gebrek aan interrupts en slechts één timer. Oh goed, tenminste ik dacht dat dat allemaal uit zonder geld te verspillen aan het spinnen van een ander proto-bord. Zie foto's hieronder.
Nu ik weet - voor mijn toepassing ik interrupts en meer dan één timer moet hebben.
Terug naar Microchip vond ik de 12F609 chip. Het heeft interrupts en twee timers. Het heeft ook 1K van flash en 64 bytes RAM. Nadeel is de prijs; Digikey bevat deze chips op 76 cent in grote hoeveelheid. Nou ja, de wet van Moore zorgt voor dat snel genoeg. Aan de positieve kant, kunnen de 12F609 ook worden besteld in de duik pakketten. Aan de negatieve kant, ik had tot de aankoop van het volgende niveau omhoog compiler - die nogal gebrand mijn &.
Het is nu April en ik heb veel geleerd over wat zal niet werken. Ik heb een Raad van bestuur en het verspilde geld op een compiler die hoef ik niet gesponnen. Toch is het bemoedigend testen tot nu toe.
Met de nieuwe compiler en 12F209 ging chips in het duik pakketten Bank niveau testen snel. Het testen bevestigd had ik de juiste chip. Tijd om het draaien van een ander proto-bord! Bij dit punt, ben ik vastbesloten.