Ultrasone meetlint (11 / 13 stap)

Stap 11: Een paar woorden over de SPI protocol en haar positie in dit project


Korte beschrijving van de SPI-protocol
Een SPI (Serial Peripheral Interface)-bus biedt bidirectionele communicatie tussen twee apparaten. Gelijkaardig aan het eerder gebruikte I²C protocol, ook dit is Master/Slave gebaseerd. Het heet vaak vier draad interface; een SPI-bus worden echter vaak de 3, 5, 6 of zelfs meer draden gebruikt om te communiceren. De SPI-bus kan worden uitgebreid door slaven ernaar toe te voegen: hun MOSI, MISO, SCLK pinnen zijn aangesloten samen, hun slaaf Selecteer pin moet afzonderlijk worden getrokken. De slaaf Selecteer pin voor een SPI slaaf is als de slaaf adres bytevolgorde voor een apparaat van de I²C.

Meestal duurt het 8 klokken te voltooien een gegevensoverdracht. Terwijl de master apparaat verzendt een beetje naar de slaaf (op de MOSI-lijn), stuurt de slaaf een beetje aan de kapitein (MISO lijn). Deze overdracht wordt gesynchroniseerd door het kloksignaal op de netto SCLK. De frequentie van deze kloksignaal kan gaan tot tientallen in MHz.

De SPI-protocol en de PIC12LF1840T39A
De kern van een PIC SPI is module het SPIxSR shift register, de verschuiving doet zich voor bij elke kloksignaal op de pin SCLK. Gelijkaardig aan andere seriële randapparatuur, ook dit is dubbele gebufferd, de SSP1SR inhoud niet kan worden geschreven, of direct lezen. De gegevens die nodig zijn om te worden verzonden moet worden geschreven in SSP1BUF, dat fungeert als een register zenden op schrijven. Tijdens de overdracht, de gegevens wordt automatisch geladen in SSP1SR, en is geklokt uit vanaf hier.
Receptie is weer gedaan via het interne shift register. Wanneer 8 bits zijn klokte in de SSP1SR, de byte is geladen intu SSP1BUF, de gebruiker kan het lezen vanaf daar. Deze keer trad de SSPBUF op als een register van ontvangen.
De modules van de SPI gebouwd in de foto's kunnen werken tot 10 MHz. In ons geval zullen we in het bijzonder, ~ 10 KHz gebruiken.

Tot ons grote verdriet, zijn de SPI en de lijnen van de I²C multiplexed op de dezelfde pinnen. Dit betekent, zullen we moeten bits-bang, een van hen. Ik schreef enkele routines voor andere instructable van mij, ik gekopieerd naar deze processor, maar sloeg sommige problemen, dus schreef ik ze weer, ditmaal zonder enige betrokken interrupts.
Want ik ben met behulp van bits geneukt SPI, ik zal niet echt ingaan op details over het. Ik kom liever concentreren op het analyseren van de MAX7219-gegevensblad, om te zien wat ik heb te plaatsen op de pinnen te laten werken!
Hier is een afbeelding van het gegevensblad van de MAX7219:

U kunt zien hoe de lijnen moeten worden van een knevel gevoorzid, naarmate de tijd verstrijkt. Dat is precies wat mijn signalen moeten eruit op een toepassingsgebied, als ik klaar ben. Kijk naar het codevoorbeeld en analyseren wat er geschreven daar, dat zult u zien hoe het werkt voor het genereren van de bit-patroon dat we moeten.

Dit kan worden hergebruikt, hoeft u alleen te wijzigen van de #define-s in het headerbestand of waar u ze hebt geplaatst. Ik heb een interrupt aangedreven versie ook, maar mij got afhelpen ervan, omdat ik al die schuldig voor mijn niet-werkende weergave was. Later bleek het scherm was op de bovenste laag in plaats van de onderste laag - dit gaf mij de hoofdpijn. Echter, op dat moment ik al rolde het vertraging gebaseerde SPI bits-bang-algoritme, en niet wilde om terug te schakelen.

Opdrachten verzenden het beeldscherm zodra de code die u genereert de exacte golfvorm die je verwacht geschreven te genereren, kunt u bij! Er zijn tal van manieren om te testen uw algoritme, er zijn simulator, analysers, scopes die u met dit helpen kunnen.
Dit is een enkel woord transmissie, heeft het bijgesneden uit en ingezoomd uit de volgende afbeelding met de uitwisseling van gegevens

Een mededeling vastleggen, het display nummers worden vernieuwd tijdens deze overdracht

Oke, lijkt het kregen we onszelf door dit display ding ook. Nu moeten we deze PIC om haar MSSP module geconfigureerd als de meester van een I²C configureren.

Gerelateerde Artikelen

Digitale ultrasone meetlint

Digitale ultrasone meetlint

Dit instructable zal tonen hoe te bouwen van een digitale lintmeter met behulp van een HC - SR04 ultrasone afstandssensor en een Arduino Pro Mini. Dit werd geïnspireerd door elecronics, voor iedereen is instructable die kan hier worden gevonden.Ik he
300-voet Pocket meetlint

300-voet Pocket meetlint

hoeveel 300-voet tape maatregelen passen in uw zak en kosten onder $2?Ik had een zeer mooie, enigszins enorme, open reel-type 300-voet landmeter de lintmeter die goed totdat op een dag werkte het wond grappig en ik heb een paar vruchteloos uren tryin
HDD klok - persistentie van de visie

HDD klok - persistentie van de visie

1. een flink POV klokken die er zijn, waarom is dit speciale?Nou, vooral omdat het is de mijne. Er zijn een flink aantal POV klokken die er op het web met behulp van allerlei display mechanismen, chassis, controllers. Enerzijds die heb ik besloten om
Meten van vak (afstand sensing) met behulp van ultrasone Sensor ~ de gemakkelijkste

Meten van vak (afstand sensing) met behulp van ultrasone Sensor ~ de gemakkelijkste

Ooit wilde meten zonder schaal of meetlint?Meet afstand zonder gedoe met dit kleine apparaat!Zeer nauwkeurige *Voor meer Intresting projecten bezoeken: www.miymakers.comFacebook: www.facebook.com/miymakersStap 1: Hoe het werkt 'HOE HET WERKT?Een spec
LinKit een ultrasone afstand meting apparaat

LinKit een ultrasone afstand meting apparaat

In dit instructable, ik zal u tonen hoe te een ultrasone sensor (HC-SR04) combineren met een Linkit één te maken van een afstand meettoestel. Dit apparaat kan een maximale woede tot 2 meter meten, dit is echt leuk project om te ontwerpen. U kunt dit
LinkIt één tutorials - #11 HC-SR04 ultrasone afstandssensor

LinkIt één tutorials - #11 HC-SR04 ultrasone afstandssensor

Voor deze tutorial ga ik een HC-SR04 ultrasone afstandssensor een LinkIt één board interface.De HC-SR04 werken met behulp van een echo systeem - een kleine puls van hoge frequentie ruis (ver boven menselijke gehoor bereik) wordt uitgezonden van één k
DIY digitale meetlint

DIY digitale meetlint

Hey iedereenIk hoop vandaag om je te leren alles over ultrasone sensoren en hopelijk aan het eind heb je een mooie beetje digitale meetlint van uw eigen om te gebruiken als u aub.Geniet vanStap 1: Onderdelenlijst Dit is mijn tweede versie van dit pro
Hoe lees ik een meetlint

Hoe lees ik een meetlint

Leren hoe om te lezen een meetlint is een belangrijke vaardigheid om te leren, of u bent home projects home projecten doen, onderwijzen uw kinderen of leerlingen, of op zoek te krijgen in de ambachtslieden in wat hoedanigheid. Wij hier bij Construct-
Daar tussenin meetlint

Daar tussenin meetlint

Hebben u ooit worstelde om nauwkeurig te meten tussen twee vlakken?Ik heb onlangs is up-fietsen een oude rekken eenheid en die nodig zijn om te meten tussen de bodems van twee behuizingen in de schappen te snijden in de scheidingswand. [Behuizingen z
Besturen van een Motor met behulp van ultrasone sensoren van de afstand (HC-SR04)

Besturen van een Motor met behulp van ultrasone sensoren van de afstand (HC-SR04)

Hallo iedereen! In dit project zullen wij de richting van een motor met behulp van twee ultrasone opgezette sensoren controleren.Als de juiste sensor wordt geactiveerd, zal de motor draaien linksom.Als de linker sensor wordt geactiveerd, zal de motor
Ultrasone afstandsmeter met LCD-scherm van Arduino UNO

Ultrasone afstandsmeter met LCD-scherm van Arduino UNO

In deze tutorial gaan we zien een ander gebruik van de HC-SR04 ultrasone module. In deze module wordt vaak gebruikt op robots en speelgoedauto's te vinden van belemmeringen, maar het kan worden gebruikt voor het meten van afstanden ook.Afstanden geme
Hars meetlint klok

Hars meetlint klok

Wij heb wilde maken van een klok voor geruime tijd nu. We wilde ook proberen molding en het gieten van een object dat een beetje groter was en gedetailleerder zodat we echt de grenzen testen konden van het gebruik van Famowood Glaze vacht als een har
Arduino ultrasone waterniveau Sensor voor espressomachines

Arduino ultrasone waterniveau Sensor voor espressomachines

Ik heb een zeer goede maar mooie oude koffie espressomachine met een uitneembare watertank, het probleem is dat het niet bieden een waarschuwing voor laag waterniveau, licht, dus ik kan niet zo'n niveau voordat u uit water weten! OF op zijn minst zon
Gemakkelijk ultrasone 4-pin sensor controle (hc-sr04)

Gemakkelijk ultrasone 4-pin sensor controle (hc-sr04)

Hallo Instructables,Ik heb wat moeite met mijn goedkoop ultrasone sensor (hc-sr04) en vandaag vond ik een echt eenvoudige oplossing.Het is een echt eenvoudig bewerken van de code van de normale 3pin.Ik voegde de 4 int naar het begin van de code, zoda