Één Chip Computer: Gemakkelijk om te produceren AVR BASIC Computer (4 / 6 stap)

Stap 4: De Firmware


De standaard TinyBASIC Plus sketch moest worden gewijzigd om te maken een standalone computersysteem. De ongewijzigde versie van TinyBASIC Plus maakt gebruik van de seriële poort van de AVR waarmee gebruikers kunnen interactief werken met de software en programma's maken. Ik de TVout bibliotheek geïmporteerd en vervangen alle uitgang voor seriële oproepen (Serial.write() enz) met TVout oproepen (TV.print() enz). De standaard PS/2 toetsenbord bibliotheek botst met TVout waardoor vreemde uitvoer worden weergegeven op de TV en het toetsenbord niet goed wordt gelezen, maar na wat onderzoek, kwam ik over een bibliotheek bekend als de PS2uartKeyboard die de XCK0 pin en RX0 pin voor een AVR verbinding met het toetsenbord maakt zodat een PS/2-toetsenbord te werken met de TVout bibliotheek. Deze bibliotheek kan hier worden gevonden in de buurt van de onderkant van de pagina:

https://code.Google.com/p/Arduino-tvout/issues/detail?id=38

(Werkelijke bibliotheek link hier)

Ik testte de PS2uartKeyboard-bibliotheek en de bibliotheek TVout samen en ze werkten prima dus ik heb de PS2uartKeyboard bibliotheek toegevoegd aan de schets TinyBASIC Plus wat resulteerde in het creëren van een werkend standalone computersysteem. De seriële oproepen die ingang voor seriële in TinyBASIC Plus gelezen werden vervangen door toetsenbord oproepen om te lezen van de invoer van het toetsenbord. Zoals de TVout bibliotheek, de PS2uartKeyboard bibliotheek en TinyBASIC Plus schets allemaal op de zelfde AVR liepen, vereist de computer slechts één chip (één AVR) om te kunnen opereren. Ik begon TVout met behulp van de volgende regel:

TV.begin (PAL, 720, 480);

die TVout begint bij een hogere resolutie dan de standaard om sommige van de tekstoutput van TinyBASIC Plus op een enkele regel als fit bij de verstekwaarde van de resolutie, sommige van de tekst terugloopt naar de volgende regel. Let op, een resolutie van 720 x 480 niet hier wordt gegenereerd als het naar beneden wordt gedeeld door de TVout bibliotheek naar een lagere resolutie. Startende TVout uitzien gebruikt ongeveer 8KB van de ATmega 1284Ps SRAM (voor de video buffer). Ik moest de waarde van de RAMEND in TinyBASIC Plus veranderen zodat voldoende geheugen voor de video buffer TVout voorgeschreven en ik veranderde ook de break-toets gebruikt in TinyBASIC Plus (het was vorige CTRL + C), omdat Ctrl-toetsen worden niet ondersteund door deze PS2 toetsenbord bibliotheek (ik gebruikte de escape-toets in plaats daarvan).

Mij had voor toepassing van de oorspronkelijke ATmega 1284P 16MHz bootloader om te stoppen geen TVout glitches die zich voordoen bij het gebruik van de bootloader van de optiboot (de oorspronkelijke bootloader veroorzaakt geen deze glitches). Wanneer compling de schets in de IDE Arduino ERW, de grootte van de schets is minder dan 22KB en de geschatte SRAM-verbruik van de AVR is bijna 9KB (vertrekt ongeveer 8KB voor de TVout video buffer). De schets TinyBASIC Plus vindt u bijgevoegd op deze pagina.

De ATmega 1284 P Arduino bootloader kan hier worden gevonden:

https://github.com/fakufaku/Mighty-1284p

De oorspronkelijke TinyBASIC Plus-code kan hier worden gevonden:

https://github.com/BleuLlama/TinyBasicPlus

De bibliotheek TVout kan hier worden gevonden:

https://code.Google.com/p/Arduino-tvout/

Houd er rekening mee, TinyBASIC Plus, Arduino software (bootloaders, IDE enz), de PS2uartKeyboard-bibliotheek en de TVout bibliotheek alle houden er eigen softwarelicenties die moeten worden gevolgd als een van de makers-code gebruikt.

Update (23/06/2014): Ik heb het hex bestand voor de TinyBASIC Plus schets (gecompileerd met behulp van de Arduino IDE) bijgevoegd zodat de Arduino IDE niet hoeft te worden gebruikt voor het programmeren van de ATmega 1284P. Ik heb dit bestand van de tijdelijke map die door de Arduino IDE in de fase van de compilatie van de schets gemaakt dus ik niet zeker ben als het de juiste is (laat het me weten als iemand heeft problemen met het gebruik).

Gerelateerde Artikelen

Montage van de Dragon Rider 500 voor gebruik met de AVR Dragon

Montage van de Dragon Rider 500 voor gebruik met de AVR Dragon

niet lang geleden Atmel kwam het bedrijf met een geweldig hulpmiddel voor gebruik met de lijn van de AVR microcontrollers genaamd de AVR Dragon. Deze kleine USB-apparaat biedt professionals en hobbyisten gelijk de mogelijkheid om te gebruiken: In Sys
Arduino AVR Progamming Shield

Arduino AVR Progamming Shield

Je heb een snelle en gemakkelijke manier aan programma AVR chips nodig. Wist u dat u kunt uw Arduino en de Arduino IDE? Dit schild Arduino maakt het proces veel gemakkelijker.U kunt:Branden een bootloader op een vervanging Atmega328 voor uw UNO.Een z
Maken van ijs Chips

Maken van ijs Chips

IntroductieWaarom moet u ijs Chips in plaats van ijsblokjes maken? Aan de ene kant... Ijsblokjes geweest het hoofdbestanddeel van een koud drankje aan partijen, cookouts, festivals, enz. Ze worden gebruikt voor het vullen van koelers om naar het stra
Hoe te programmeren een AVR (arduino) met een ander arduino

Hoe te programmeren een AVR (arduino) met een ander arduino

deze instructables is handig als:* je hebt je arduino met atmega168 en je kocht een atmega328 op je lokale elektronicawinkel. Het hoeft niet een arduino bootloader* u wilt maken van een project dat geen gebruik maakt van arduino - gewoon een regelmat
Boerenkool Chips: Nacho Cheese smaak

Boerenkool Chips: Nacho Cheese smaak

Ik ben een sucker voor kaas op smaak gebrachte chips. Ik kan gemakkelijk Pools uit een hele zak. Mijn gezondheid bewuste dochter maakte me een deal. Zolang ze haar kamer schoon houdt, kan niet ik eten eventuele reguliere chips. Dit is een moeilijke o
Gemakkelijk Water kanonnen van het $5

Gemakkelijk Water kanonnen van het $5

Update! Ik heb een nieuwere, verbeterde waterpistool instructable rechtermuisknop hier!Het is een veel beter ontwerp, en gemakkelijker te maken. De oorspronkelijke inhoud van dit instructable volgt:Onlangs vond ik mezelf een gehele bos van water kano
Gemakkelijke originele kunstwerken

Gemakkelijke originele kunstwerken

Ok deze dagen ik voel mezelf opgroeien, en als zodanig ik kijk naar de huizen van mijn vrienden hebben gekocht of huren, met hun IKEA meubels en massa geproduceerde (maar mooie) illustraties en dacht bij mezelf, "is niet dat deining, misschien als ik
DIY chocolade chips

DIY chocolade chips

Deze chocolade chips is relatief goedkoop om te maken zijn de perfecte mix van zout en zoet.Dit is een snel en eenvoudig behandelen met slechts een paar stappen.Ingrediënten:-Chips die gemakkelijk met dip-origineel / gezouten smaken voorkeur (zoals P
LED Cube 8 x 8 x 8

LED Cube 8 x 8 x 8

maken uw eigen 8 x 8 x 8 LED kubus 3-dimensionale weergave!Wij vinden dat dit Instructable is de meest uitgebreide stapsgewijze handleiding voor het bouwen van een 8 x 8 x 8 die LED kubus ooit gepubliceerd op de kernholocaust. Het leert je alles van
Internet-verbonden huis energie monitor

Internet-verbonden huis energie monitor

Dit is een magische doos die laat u kunt controleren het stroomverbruik van uw huis vanaf elke locatie op het Internet! Het meet zowel vermogen (watt) en schijnbaar vermogen (VA), het houdt een lopend totaal van elektriciteit eenheden gebruikt, en ma
Infrarood Quiz zoemer (draadloze)

Infrarood Quiz zoemer (draadloze)

Hey mensen!Maak je klaar om te verkennen de hoekje en hoek van de IR-signalen en pronken de Arduino-codes. IR zoemer maakt gebruik van een schakeling die vergelijkbaar is met die van een TV-afstandsbediening (openbreken van de afstandsbediening en ne
Orbit Lamp

Orbit Lamp

Geïnspireerd door de Kerf lamp tafellamp van de baan is een interactieve, open ontwerp om te worden gedownload,aangepast en geassembleerd besturen van de LED's met 4mm Populier Ply en een eenvoudige schakeling van de Arduino.Met bewegingen van de han
Met behulp van een In-systeem-programmeur

Met behulp van een In-systeem-programmeur

Wij zijn vertrouwd met de Arduino IDE als een middel van uploaden schetsen. Maar zijn er grenzen aan de IDE. Als we de ontwikkeling van complexe toepassingen voor de ATMega328, vervolgens volstaat de IDE niet. Als er meerdere bronbestanden die naar e
USB SNES Controller

USB SNES Controller

eerste instructable. Laat me weten wat het nodig heeft en corrigeert.Ik maakte niet de circuit of programma. Ik ben gewoon het maken van een handleiding waarin stap voor stap montage van hoe maak je de USB SNES-controller. De originele pagina is hier