6,25 nanosecond resolutie-timer voor elke microcontroller!


Terwijl het ontwerpen van de vervanging van een vaste toestand voor een vacuüm-buizen-en-CRT radar display subsysteem, zat ik vast op het krijgen van een geschikt systeem voor de periode tussen de synch pols en het echo-puls. De synch pols en echo-puls wordt gevangengenomen op twee pennen van een Arduino. De inachtneming van de Arduino heeft een klok MCLK/2 van 42 MHz, die me een resolutie van 23.81 nanoseconden (ns) die voor de snelheid van het licht geven zou, zou vertalen tot een afstand van 6.86 meter. Ik wilde een betere resolutie.

Na het kijken naar oplossingen met hoge snelheid oscillatoren en discrete logica ICs (tellers, shift registers), FPGA en uit de plank oplossingen kost in het bereik van USD 2.000 /-, heb ik besloten om te onderzoeken de ESP8266 voor sommige solutie voor mijn werkstuk timing.

Aan mijn verrukking, ik ontdekte twee functies in de Arduino ESP8266 API, namelijk ESP.getCycleCount() en ESP.reset()

ESP.getCycleCount() telt de instructie cycli sinds begin, in een interne unsigned 32-bits variabele, aansprakelijk overloopt van elke 28 seconden of zo. Een een microseconde krijgt periode 160 instructie cycli. Nu voor het meten van de overhead vereist door uw software software, moet u alleen de graaf de cycli van de instructie die uw routine voor een 1 microseconde telt vertragen en aftrekken 160 van die tellen, zodat u de software overhead in het verwerven van de graaf. Voor 1 microseconde vertraging kreeg ik een telling van 213. Die uitgewerkt tot 213-160 = 53 graven (53 x 6,25 = 331.25 nanoseconden) software overhead te verwerven van de graaf. Af te trekken van 53 uit elke tellen geeft me een nauwkeurigheid van enkele tientallen picoseconds, telling voor perioden van 30 microseconden tot ongeveer 500 microseconden.

Gerelateerde Artikelen

Digitale timer voor elke elektrische toestel

Digitale timer voor elke elektrische toestel

In eind 2006 Jaycar verkochten een microcontroller gebaseerd flexi-timer kit voor $90 (nu stopgezet). Zij verklaarden in de reclame blurb "Net zo gebruiksvriendelijk als een magnetron timer!".Goed gebruik ik altijd dacht dat als de interface voo
Generieke UART voor elke microcontroller

Generieke UART voor elke microcontroller

Communiceren met een micro-controller tijdens runtime, is een zeer nuttigfaciliteit. Het kan worden gebruikt voor foutopsporing, of voor het verzenden van opdrachten enz. Een van de eenvoudigste beschikbare protocol om te communiceren is de UART. Het
Hoe te kiezen voor een MicroController

Hoe te kiezen voor een MicroController

het gebruikt om te worden dat het aantal verschillende microcontroller chips beschikbaar voor de hobbyist vrij beperkt is. Je moet gebruiken wat je zou kunnen beheren van de postorder chip-dealer te kopen, en dat de keuze voor een klein aantal chips
Ontwikkel bord voor Attiny84 Microcontroller

Ontwikkel bord voor Attiny84 Microcontroller

Dit is een ontwikkeling-board voor Attiny84 microcontroller. Tha Attiny84 chip heeft 11 pinnen adresseerbare met de Arduino IDE, 8k flash geheugen voor programma opslag en 512 bytes RAM beschikbaar voor de stack en programma variabelen.Een kenmerk va
30 Day herinnering Timer voor maandelijkse taken

30 Day herinnering Timer voor maandelijkse taken

Dit instructable is voor een 30 dag herinnering Timer voor maandelijkse taken.Het doel van deze timer is om eraan te herinneren wanneer de 30 dagen zijn verstreken en dat u hoeft te doen van uw maandelijkse taken voor uw huis en de auto. Het verschil
DIY spier Sensor / EMG Circuit voor een Microcontroller

DIY spier Sensor / EMG Circuit voor een Microcontroller

meten van spier activering via elektrische potentiaal, hierna aangeduid als elektromyografie (EMG) , heeft van oudsher gebruikt voor medisch onderzoek en diagnose van neuromusculaire aandoeningen. Echter met de komst van de krimpende ooit nog krachti
Slim en eenvoudig timerfuncties voor elke toepassing

Slim en eenvoudig timerfuncties voor elke toepassing

Een digitale timer (600dt - selec) gebruikt voor het automatiseren van mijn niet-commercieel-motor.Als u wilt snel haasten via het project kunt u op springen op mijn YouTube video hierboven.ifelse {laat start} ;-)Dit is een eenvoudige maar toch nutti
Een nuttige roterende Mount maken voor elke Camera

Een nuttige roterende Mount maken voor elke Camera

Hallo iedereen!In deze snelle instructable ik zal u laten zien hoe maak je een cool roterende Mount voor elke camera. Het is een zeer snelle project en het is goedkoop ook.In principe zullen we kappen een kookwekker vermindering van haar schel geluid
Timer voor Automotive acculader

Timer voor Automotive acculader

Dit instructable gebruikt een Arduino voor het beheren van een automobiel trickle lader.De lader komt op voor 1/2 uur elke drie dagen.Uw batterij zal blijven geladen wanneer u uw auto of motorfiets over de lange winter opslaat.Stap 1: Timer voor auto
Eenvoudige massa-opslag voor uw microcontroller project

Eenvoudige massa-opslag voor uw microcontroller project

wil je gigabytes aan opslag voor uw microcontroller? Wenst u een eenvoudige manier om tranfer bestanden van uw PC naar uw picaxe of arduino of andere micro-project?Deze kleine projecten toont de uDrive die kan worden ingesteld als een extra station o
Ambilight systeem voor elke input aangesloten op uw TV. WS2812B Arduino UNO Raspberry Pi

Ambilight systeem voor elke input aangesloten op uw TV. WS2812B Arduino UNO Raspberry Pi

Ik heb altijd al wilde ambilight toevoegen aan mijn TV. Het ziet er zo cool! Ik eindelijk deed en ik was niet teleurgesteld!Ik heb veel video's en veel tutorials over het maken van een Ambilight-systeem voor uw TV, maar ik heb nooit gevonden een voll
DIY Dome poort voor elke actiecamera

DIY Dome poort voor elke actiecamera

Hallo iedereen!In dit instructable cool ik ga u tonen hoe te maken van een Dome poort voor elke actie camera uitgaven slechts 1$. Het is een echt eenvoudig en snel project dat ongeveer één uur werk duurt (inbegrepen de saaie tijd die nodig is om te l
Een jurk voor elke gelegenheid

Een jurk voor elke gelegenheid

Hallo en welkom de tutorial om "Een jurk voor elke gelegenheid!" In dit instructable, ik wil twee speciale technieken: Hoe ontwerp een nieuwe hals uit een bestaand patroon en Hoe installeer ik een onzichtbare rits wanneer u niet over een onzicht
Olifant kaart voor elke gelegenheid

Olifant kaart voor elke gelegenheid

Hier ik je laten zien hoe je deze leuke olifant-kaart voor elke gelegenheid kunt ambacht. De woorden op de kaart zijn Duits en zeggen: ´best wil! ´ maar kunt u om het even wat schrijven naar de kaart, afhankelijk van de gelegenheid!Stap 1: Benodigdhe