...

Flash Programmer

In december 2001 verscheen in Elektuur een beschrijving met print van een single board computer met een Atmel 89s8252. Hierbij hoort een softwarepakket om te programmeren in assembler en BASIC dat door Elektuur ter beschikking wordt gesteld. Helaas vallen daarmee Linux-gebruikers uit de boot omdat deze software voor MS-Windows bestemd is. Leden van de HCC Forth gg hebben nu een flashprogramma geschreven waarmee althans programma's vanuit Linux in het board geladen kunnen worden. U kunt dit programma gratis downloaden.   Download de pdf Flash Programmer (42 KB) software     Flash Programmer voor Elektuur Single Board Computer Albert van der Horst In december 2001 verscheen in Elektuur een beschrijving met print van een single board computer met een Atmel 89s8252. Hierbij hoort een softwarepakket om te programmeren in assembler en BASIC dat door Elektuur ter beschikking wordt gesteld. Helaas vallen daarmee Linux-gebruikers uit de boot omdat deze software voor MS-Windows bestemd is. Leden van de HCC Forth gg hebben nu een flashprogramma geschreven waarmee althans programma's vanuit Linux in het board geladen kunnen worden.   Gebruiksaanwijzing Allereerst moet U de zip pdf file  elflash.zip (42 KB) downloaden en uitpakken met unzip. U heeft dan de files isp-el.frt : de source isp-el : het programma isp-el.1 : de man page. COPYING : copyright. flash1.bin : test programma flash.bas : basic test programma .minirc.dfl : configuratie file voor minicom Het gebruik van het programma is simpel : Verbind het Elektuurboard met een rechtdoor D9-kabel van COM2 naar connector K2 op het board. (Voor details zie het Elektuurartikel.) Geef het commando (als user root) isp-el <bestandsnaam> Afhankelijk van de extensie .bin of .hex wordt het bestand als binaire file of Intel-hex geinterpreteerd. Het is niet gewenst om telkens in te loggen als root en dat is ook niet nodig als U het programma officieel installeert. Dit kan door commando's te laten voorafgaan door sudo waarbij U tijdelijk root-bevoegdheid krijgt als U het juiste wachtwoord invoert. Dat gaat als volgt: kopieer het programma naar een directory in het PATH , bijvoorbeeld : sudo cp isp-el /usr/bin maak het programma setuid root : sudo chown root /usr/bin/isp-el sudo chmod +s /usr/bin/isp-el kopieer het man-bestand isp-el.1 naar een directory in het MANPATH , bijvoorbeeld : sudo cp isp-el.1 /usr/man/man1 De gebruiksaanwijzing leest u met man ./isp-el of na installatie gewoon met man isp-el De source wordt meegeleverd. Dit is namelijk een Open Source programma met een GPL copyright. Zie voor detail de file COPYING. De source heeft U echter voor normaal gebruik niet nodig. Het geeft U wel de mogelijkheid fouten uit het programma te halen en uitbreidingen te maken. Als U het verbeterde programma verspreidt, en ALLEEN DAN, bent U verplicht ook de verbeterde source mee te verspreiden. Verder zijn er geen beperkingen, ook niet voor commercieel gebruik, of het opnemen van het programma in distributies. Een simpele test kan gedaan worden met het door Elektuur meegeleverde programmaatje flash1.bin dat voor het gemak hier ook bij zit. Het is het gemakkelijkst als U een LED aansluit op pin 2 van K4 met een weerstand van 1 K naar de plus (op K5). Na het laden van flash1.bin moet deze LED knipperen. Met een voltmeter gaat het ook wel, maar dan kunt U beter pin 7 nemen.   Extra faciliteiten De optie -r kan gebruikt worden om het board te resetten. Indien gewenst kan de seriële poort worden opgegeven met de optie -c (als COM1 of COM2), bijvoorbeeld -c 1 voor COM1. Met de optie -a geef je het adres van de seriële poort als adres, bijvoorbeeld -a 3E8 (let op: gebruik hoofdletters voor het hex adres!) Dit programma is beter geschikt dan het met Elektuur geleverde programma om moeilijkheden met hardware en aansluitingen het hoofd te bieden: De -t optie helpt U bij het line voor lijn controleren van de uitvoer naar het board. Het detecteert een niet aangesloten board. Het heeft een ingebouwde verify; het geeft altijd een foutmelding als het flashen mislukt. Het is bestand tegen soft errors. Een incidentele schrijffout wordt gecorrigeerd. Vooral de ingebouwde verify is prettig. Het betekent dat het programma er gegarandeerd in staat, als U geen foutmeldingen krijgt. Dit programma is geschreven in Forth. Dat wil zeggen dat U alles wat dit programma kan, en meer, ook interactief kunt uitvoeren. Hiervoor moet U een Forth omgeving opstarten (wel met root privilege) en de meegeleverde source inladen. De Forth omgeving (ciforth) waar dit programma voor geschreven is, kunt U downloaden via de ciforth pagina Er zijn commando's voor het wissen van de flash EPROM, voor het verifiëren, voor het teruglezen en in een file zetten van de flash EPROM etc. In de source kunt U zien wat elk commando doet. Enige Forth kennis is dan wel gewenst.   Gebruik van BASIC De door Elektuur meegeleverde BASIC (basic52.bin) kan natuurlijk ook geüpload worden in het board. Maar dan? Het blijkt dat het minicom programma dat in de meeste distributies zit, gebruikt kan worden om met de BASIC te communiceren en BASIC programma's naar het board versturen. minicom vertoont veel gelijkenis met het aloude procomm en ik vind het prettig te gebruiken. Een werkende configuratie file is meegeleverd. Deze dient naar Uw home directory gekopieerd te worden en wordt dan automatisch gelezen. Na opstarten van minicom kan het zijn dat er nog geen contact is. Reset het Elektuur board en stuur spaties. Soms moet U het nog eens proberen. Het opsturen van BASIC files moet - uiteraard - met een ASCII upload. Nu kunt U flash.bas uploaden. Als U de LED heeft aangesloten moet die nu ook weer knipperen. Anders kunt U weer een volt meter gebruiken, maar nu is de pin 2 van K4 het beste om het goed te zien. Helaas is de help file van BASIC52 (AH-BASIC-HLP) niet te begrijpen voor Linux. Overigens kunnen ook niet alle Windows versies er mee overweg, in ieder geval niet het aloude Windows 3.11.

12 juni 2020

...

Microcontroller Netwerk

Een microcontroller netwerk door Willem Ouwerkerk 'De grote gemene snuffelaar' Een netwerk bestaat uit minimaal twee met elkaar verbonden computers die met elkaar communiceren via een afgesproken protocol. Op kantoor wordt het veelal gebruikt om belangrijke files centaal op te slaan en de dure laserprinter met elkaar te delen. Dankzij een netwerk kunnen computers hardware en informatie met elkaar delen (ook het internet is een voorbeeld hiervan). Praten via een protocol Om een netwerk betrouwbaar te laten functioneren moeten alle aangesloten computers zich aan bepaalde afspraken houden, anders loopt de communicatie fout. Over protocollen zijn boeken vol geschreven, ook zijn er internationaal vele afspraken gemaakt. Twee voorbeelden van zo'n protocol zijn, het TCP/IP protocol dat uw computer gebruikt om met het internet te praten en de I2C bus die in het 'Egel werkboek gebruikt wordt om een microcontroller diverse chips te laten besturen. De informatie wordt in pakketten met een voorgeschreven formaat verstuurd. In het beschreven voorbeeld is gekozen voor een netwerk met maar een master, als dit niet zo is dan moet het protocol voorzien in een afhandeling van conflicten tussen de master computers. Als het netwerk maar een master kent, dan vinden deze conflicten niet plaats, omdat altijd dezelfde master het netwerk beheert. Hardware voor een netwerk Als we microcontrollers een netwerk willen laten vormen moeten we geschikte hardware vinden om de chips met elkaar te kunnen verbinden. Bij chips met een ingebouwde UART (RS232) kan deze unit gebruikt worden om de hardware laag van het netwerk te vormen. De uitgangs pennen genaamd TXD en RXD worden voor de werkelijke verbindingen gebruikt, de UART regelt de omzetting van byte naar bitstroom en vice versa. Hier zijn twee manieren om zo'n netwerk te bouwen: Een ring Een bus Een voorbeeld Er zijn vier sensor units, een motor-regelaar en een 8052 besturingscomputer, deze zes computers worden via een netwerk met elkaar verbonden. De sensoren en de motor-regelaar zijn de slave nodes van het netwerk, de 8052 besturingscomputer is de master. De computers zijn via methode b) (een bus) op elkaar aangesloten en de UART in de microcontrollers wordt gebruikt om de bus te besturen. Alle vijf de slaves hebben een of meerdere identificatie- nummers. De master activeert een slave door een pakket van een byte over het netwerk te versturen. Dit pakket bevat het slave adres en een opdracht. De geadresseerde slave voert vervolgens deze opdracht uit. Het lage nibble van elk een byte pakket bevat het slave adres, dit betekent dat er maximaal 16 nodes op de bus aan te sluiten zijn. De hoge nibble bevat data of een commando voor een van de nodes. Adres 0 is een speciaal geval, deze beschrijf ik later. De adressen 1 t/m 4 benaderen de vier sensor nodes, adres 5 t/m 11 benaderen de motor node en adres 12 t/m 15 zijn nog ongebruikt. Er is een adres waarop alle nodes op reageren, je raad het al, dat is adres 0. Deze wordt gebruikt om te controleren of het netwerk nog in leven is. Als dit adres verzonden wordt door de master dan reageert elke node door een nummer terug te sturen. Door deze getallen bij elkaar op te tellen weet de master of alle nodes hebben gereageerd en nog werken. Hoe werkt een sensor node Als een sensor node geaddresseerd is, bekijkt het de data in het hoge nibble. Drie van de vier bits hiervan hebben een betekenis: -- L U2 U1 U1 - Zet uitgang 1 aan of uit (hoog is actief), U2 - Zet uitgang 2 aan of uit (hoog is actief), L - Lees data van alle sensoren. Een sensor stuurt na de leesopdracht L een datapakket van vier bytes terug naar de master. De eerste twee bytes zijn de afstand tot een obstakel gemeten door de ultrasoonsensor, het volgende byte de lichtintensiteit op de ingebouwde LDR en de laatste byte is een vlag die aangeeft of de PIR-sensor beweging heeft gedetecteerd. Epiloog Dankzij het toegepaste netwerk worden nu 11 sensoren, 2 motoren, 5 lampen, een hoorn en een spraakunit bestuurd en uitgelezen via vier draden (+24V, nul, TXD en RXD). Dit heeft mijn robot genaamd 'De grote gemene snuffelaar' onnoemelijk veel bedrijfszekerder gemaakt en veel eenvoudiger om te bedraden.

12 juni 2020

...

CHForth

Author's website CHForth (van Coos Haak) is een 16 bits ANSI standaard implementatie voor Intel 80x86 processoren onder MSDOS of DRDOS, maar loopt tegenwoordig ook keurig in een DOSBOX or dosemu. Het loopt in de real mode (16 bits 8086) en gebruikt meerdere segmenten waardoor het veel meer programmeer geheugen heeft dan F83 of de MS-DOS versie van ciforth. Met CHForth kun je MSDOS executeerbare programma's maken ("EXE" files), wat Forthers turnkey programma's noemen. De download is versie 1.25. Hoewel chforth tot minstens 2017 is doorontwikkeld, is dit de versie van 1994, gearchiveerd in 1998.  Pak de zipfile uit en  volg de instructies in de README. Er is pdf documentatie is in dit archief aanwezig (alsook een versie in platte tekst.) Naast de bovenstaande Forth archief, georienteerd op gebruikers, is er ook "ch125m.zip". Dit zijn de sources van chforth zelf en de middelen om daarmee een nieuwe gewijzigde versie te bouwen. Forthers noemen dat een meta omgeving. Het bevat veel know-how en is alleen interessant voor gevorderde Forthers. U moet dan in startup.frt de versie ophogen to 126 en dan bouwt U een nieuwe versie van bovenstaande Forth.  Het archief bevat ook veel dat niet bij de meta-omgeving behoort en mogelijk interessant is. Het gebruik van CHForth is vrij, ook voor commerciele doeleinden. U kunt de documentatie in PDF bekijken. Voor eventuele vragen en hulp, kunt U contact opnemen met Coos Haak. Voor dit gratis beschikbare systeem aanvaardt de auteur geen aansprakelijkheid. Wat bevat CHForth? CHForth bevat onder ander de volgende zaken. Online "help" voor alle Forth woorden (ook voor veel andere begrippen). Een 80x86 assembler, een eenvoudige DOS interface, command line editor met history Locale variabelen, uitgebreide foutopvang, 'TO' bruikbaar met alle datatypen, Interrupt ondersteuning, fraaie decompiler en disassembler, uitgebreide set bibliotheek files, turnkey voorbeelden, etc.  Klikbare woordenlijst CHForth gebruikers-omgeving Download     CHForth meta-omgeving Download

12 juni 2020

...

8052 ANS Forth

8052-ANS-Forth Author's website Zoals de naam zegt is '8052-ANS-FORTH' een 16 bits ANSI standaard implementatie van Forth voor Intel 8052 processoren en verwante processoren. 8052-ANS-Forth, een 16 bits ANSI standaard implementatie voor de 8032 processoren, is op dit moment verkrijgbaar voor de 80(C)32/80(C)52, 80C320, 80C520, 80C552, 80C535 en draait ook op de nieuwe 87C251 familie van Intel. Zoals met de Arduino's kan je een apparaat maken dat een speciaal doel dient. Deze zelfstartende programma's heten turnkey in Forth. Ze starten op zodra het apparaat aangezet wordt. Turnkey programma's kun je in een RAM met batterij backup zetten, of, na reloceren met de ingebouwde relocater, in een vrij gebied in de EPROM branden. Deze Forth voor Single Board Computers moet natuurlijk aangepast worden aan de hardware waar het op draait. Het volgende is een typische configuratie. 8052-ANS-Forth zit in een 32 kByte EPROM en vraagt daarnaast nog 32 kByte RAM. Turnkey programma's kun je in een RAM met batterij backup zetten, of, na reloceren met de ingebouwde relocater, in het vrije gat van 8 kByte in de EPROM branden. Dit is de Forth die gebruikt wordt in het ATS board en in het oorspronkelijke Egel project Wat bevat 8052-ANS-Forth? Locale variabelen, uitgebreide foutopvang, 'TO' bruikbaar op alle soorten variabelen, 8051 assembler, krachtige ondersteuning van ingebouwde registers (SFR, bit-SFR en bit-variabelen) en andere hardware, vele bibliotheek files, veel geteste voorbeeld files en een SERVER onder DOS met vele utilities waaronder een online help functie. Copyright De download is versie #.### Het gebruik van deze Forth is vrij, ook voor commerciele doeleinden. Turnkey's gemaakt met 8052-ANS-FORTH zijn vrij van royalties. U kunt de documentatie in PDF bekijken. U kunt de Forth zelf exclusief documentatie downloaden. Voor eventuele vragen en hulp, kunt U contact opnemen met de auteur. Voor dit gratis beschikbare systeem aanvaardt de auteur geen aansprakelijkheid. 8052-ANS-Forth (Willem Ouwerkerk) 8052-ANS-Forth handleiding (Manual )

7 juni 2020

...

ATS bord en 8052-ANS-Forth

het ATS-bord en 8052-ANS-Forth De 8052-ANS-Forth en de hardware om het op te draaien zijn in onderlinge verband ontwikkeld. Software kan natuurlijk niet eens getest worden zonder hardware. Anderszijds omdat het hier om single board computers gaat behoeft elke versie aanpassing aan de specifieke hardware. Vandaar dat de Forth IG ook het ontwerpen van SBC in eigen hand heeft genomen. (Hier voor de Intel 8052, later ook voor de Texas Instruments 430.) Hiertoe heeft At van Wijk het ATS-bord (een afstammeling van het B+bord) getekend en Willem Ouwerkerk heeft (in samenwerking met Frans Cornelis en Albert Nijhof) de 8052-ANS-Forth in de ROM van deze single board computer gemaakt. Dit wil niet zeggen dat 8052-ANS-Forth alleen op dit bordje draait, een overzicht van de mogelijke processoren vindt U in de beschrijving. 8052-ANS-Forth voor het ATS-board zit in een 32 kByte EPROM en benut de 32 kByte RAM van het board. Dit board is heel geschikt voor het schrijven van turnkey programma's. Het ATS-board kan hiertoe voorzien worden van battery backup voor het RAM. Een permanentere oplossing is om de applicatie te reloceren met de meegeleverde relocator, en dan in het vrije gat van 8 kByte in de EPROM branden.   Communicatie Het ATS-board heeft een seriele communicatie poort waar Forth commando's naar toe gestuurd worden. Hoewel in principe een willekeurige communicatie programma gebruikt kan worden, bevelen we aan om het onder vermelde server32 te gebruiken op MS-Windows systemen. Er zijn dan geen moeilijkheden te verwachten.   De hardware handleiding hieronder bevat een beschrijving van het Ats-bord     Schema van het ATS-bordje   8052-ANS-Forth DOS-Server (Willem Ouwerkerk)   8052-ANS-Forth Windows-Server (Gerard van der Sel) versie 2 (17 aug 2005)   Cursus "Besturen met 8052 Forth" (Ben Koehorst) versie 2.01 - december 2003   Voorlopige versie van de hardware handleiding (At van Wijk)

7 juni 2020

Actueel

'Meld je aan voor de nieuwsbrief' van HCC!forth

'Abonneer je nu op de nieuwsbrief en blijf op de hoogte van onze activiteiten!'

Aanmelden