Ultrasone meetlint (6 / 13 stap)

Stap 6: De PIC als een slaaf van de I²C configureren

Configureren van de MSSP module van de PIC12LF1840T39A
In ons geval zullen we voor het configureren van de PIC12LF1840T39A om op te treden als een slave-apparaat. Eerste ding, dat moet gebeuren, is het configureren van de module MSSP. Het gegevensblad wordt deze procedure in detail, evenals de transacties beschreven.

1. start bit gedetecteerd.
2. S bit van SSP1STAT is ingesteld; SSP1IF wordt ingesteld als interrupt op Start detecteren is ingeschakeld.
3. adres matching met R/W beetje duidelijk wordt ontvangen.
4. de slaaf trekt SDA lage een ACK sturen aan de meester, en SSP1IF-bit ingesteld.
5. software wist de SSP1IF bit.
6. software leest ontvangen adres van SSP1BUF wissen de BF-vlag.
7. als SEN = 1; Slaaf stelt CKP beetje te laat de SCL-lijn.
8. de kapitein klokken uit een gegevensbyte.
9. slaaf rijdt SDA lage een ACK sturen aan de meester, en SSP1IF-bit ingesteld.
10. software wist SSP1IF.
11. software leest de ontvangen byte van SSP1BUF BF wissen.
12. de stappen 8-12 worden herhaald voor alle ontvangen bytes van de meester.
13. Master stuurt Stop voorwaarde, instelling P beetje SSP1STAT, en de bus gaat Idle.

Laten we beginnen met het schrijven van ons programma. Opzij van onze gebruikelijke configuraties, zoals oscillator configuratie, zullen we moeten waarden geven de MSSP registers:

SSP1STAT = 0X80
1 = slew rate control uitgeschakeld voor standaard snelheid modus (100 kHz en 1 MHz)
0 = SMBus uitschakelen specifieke ingangen
0 = geeft aan dat dat de laatste byte ontvangen of verzonden adres
0 = stop bit was niet laatst ontdekt
0 = start bit was niet laatst ontdekt
0 = schrijven
0 = adres hoeft niet te worden bijgewerkt
0 = gegevens overbrengen voltooid (omvat niet de ACK en Stop bits), SSP1BUF is leeg

SSP1CON1 = 0X26
0 = geen botsing
0 = geen overloop
1 = maakt de seriële poort en configureert de SDA en SCL-pinnen als de bron van de seriële poort pinnen
1 = disable kloksnelheid
0110 = I2C-Slave-modus, 7-bits adres

SSP1CON2 = 0X00
0 = algemene oproep adres uitgeschakeld
0 = Acknowledge werd ontvangen
0 = Acknowledge
0 = Acknowledge reeks Idle
0 = ontvangen inactief
0 = stop-voorwaarde Idle
0 = herhaald beginnen voorwaarde Idle
0 = klok uitrekken is uitgeschakeld

SSP1ADD = 0X88
1000100 = slaaf van de 7-bits adres
0 = niet gebruikt

SSP1MSK = 0X0F
Slave adres maskeren, kijk niet voor de wedstrijd in de eerste vier bits

Dit zijn dus de instellingen we aan onze PIC moeten te laten werken zoals wij verwachten. Dit alles gaat in de initialisatie routine, voordat onze oneindige lus.
Zodra dit is gebeurd, we schrijven onze schrijven, lezen, erkennen, negatieve moeten erkennen, stationair, starten en stoppen van routines. Het is altijd een mooi ding om te bouwen van iets vanuit het niets, maar als iemand met I²C vóór werkte, en al zijn favoriete/geoptimaliseerd routines - die enkel te gebruiken. Ik volgde de instructies van het gegevensblad, ook al had ik al een tijdje geleden I²C functies geschreven. Ik ben begonnen van kras omwille van de instructable.

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