DemUinoDuo (1 / 3 stap)

Stap 1: SYSTEEMOVERZICHT


Het DemUino-concept draait rond een controller-gebaseerd-computer en in het bijzonder AVR 8 bit beesten met behulp van de Arduino bibliotheken. In een poging om het project actueel te houden had ik het voor het gebruik van USB-toetsenborden en moderne opslagmedia – SD of microSD met adapters-ondersteunende bestanden van de PC als tekst zonder opmaak (vet) aan te passen.

Het grote probleem met deze "upgrade" is het enorm potentieel offer zowel in flash-code en de RAM vraag statisch of dynamisch. Echter, het gebruik van een systeem met dubbele opslagprocessor verlicht de pijn van de akelige verlies en biedt een soort waarde-de-inspanning gevoel wanneer het project is een concreet bruikbaar resultaat bereikt. Het systeem kan worden opgebouwd met beide processors wordt atmega328s, iets dat alle functionaliteit van DemUino versie 1,66 maar met slechts een beetje meer dan 700 bytes RAM gratis reproduceert. Het gebruik van een atmega644 als de behandeling van de SD-kaart en de delegatie van USB, I2C master en RS232 hoofdprocessor (PC-gegevens) naar een atmega328 bouwt een beter meer geschikt systeem met meer dan 1300 bytes gratis voor DemUinoDuo versie 1.0 met inbegrip van SD FAT functionaliteit. Het display is een standaard tekst voor 4 x 20 LCD (parallelle modus) aangedreven door de GPOUT-poort van de maxim-controller op de USB host schild.

De volgende pagina toont de systeemarchitectuur. Het besluit om de USB-controle overgebracht naar de atmega328 was gebaseerd op de lastige aard van de Usb.Task()-functie die moet ongehinderd in een continue en voorspelbare lus uitvoeren. De hoofdprocessor – de atmega644 – moet dienst van allerlei situaties en zelfs wachten op de dingen gebeuren naast gewoon gebruiker vertragingen. De toetsenbord-persen worden verzonden via de I2C-bus veroorzaakt gebeurtenis-handlers in de belangrijkste MCU tijdig reageren en voeden hen naar de programma zoals ze zich voordoen. Er is een continue stroom van 21 bytes tegelijk behandeld als een groep/pakje gegevens van de slave-atmega644 (#3 op de I2C-bus) naar de master atmega328 die LCD opdrachten of synchronisatiegegevens. De externe EEPROM slaaf aanwezig is momenteel niet geregeld door de meester.

Er is een vertraging van de 200ms voor een herhaling van alle indrukken van een toets om te registreren. Aan de kant van de primaire domeincontroller de LCD-verzoeken worden bediend met een 5ms vertraging en de lus keyboardavailable() introduceert een 5ms te vertragen. Echter als het gebruikersprogramma maakt geen gebruik van alle LCD-opdrachten vervolgens een lege for-lus door zelf tellen tot 1000 uitgevoerd in ongeveer 126ms voor een totaal van 1002 verklaringen. Een toewijzing aan een variabele in de dezelfde lus verhoogt de uitvoeringstijd te 535ms voor een totaal van jaarrekening 2002.

De USB host schild wordt gemaakt door de goede mensen van http://www.tkjelectronics.dk/ en ik moet dank Kristian Lauszus op https://github.com/Lauszus voor de kandidatuur reageren op mijn vragen en ook voor de seriële opti-bootloader van de atmega644.

De eenheid was eigenlijk gebouwd en gefotografeerd met behulp van de DemUino2 en SD2RS232 platen om geld te besparen. Het schema gepresenteerd op de volgende pagina's is de voorgestelde manier van het opbouwen van de eenheid waarvoor minder onderdelen dan wat is waargenomen vanaf de foto's.

Tijdens het opstarten de eenheid controleert op de aanwezigheid van een SD-kaart en indien niet gevonden dan de geluiden ZOEMER gedurende één seconde. Het LOGO kan verschijnt meteen maar wachten tot de verlichting van het toetsenbord knipperen even voordat u weg typt in gelukzaligheid.

De hardware zoals het nu voorligt biedt zeer goede ontwikkelingsmogelijkheden, zeker beter dat wat ik momenteel adres met versie 1.0 van de vrijgegeven code. Naast de vereiste optimalisatie te slaan flitser en RAM ruimte (zonder te veranderen de vraatzuchtige SD-bibliotheek) is er de ongetemde potentieel van de ondersteunende atmega328 als GPIO module door zelf en natuurlijk de werkgelegenheid voor de externe EEPROM als een opslagplaats van gegevens.

Gerelateerde Artikelen