Hallo, hat jemand schon I2C mit pic24fj32ga002 geschafft? Brauche dringend eine Hilfe. Grüße, Alex
Danke für schnelle Reaktion, ich habe schon viel mit PIC16F876 und I2C gemacht, nur mit dem neuen pic24 hängt irgenwie. Kann nicht einmal SDA oder SCL zum Leben erwecken. Versuche jetzt mit deinen Routinen. Grüße, Alex
Was natürlich nicht drin ist: Eventuell nötiges Routing der I2C-Pins, denn das gibt's ja erst bei 24F. Hier war's der 30F2010. Und der Test eher kurz, nur mit 8574 I/O-Port, muss also nicht vollständig funktionieren.
Habe jetzt so initialisiert, passiert nichts am Bus!!! nicht einmal die Start-sequenz. Habe die I/O auch richtig initialisiert, PullUps sind auch vorhanden. Configuration, alles ist mehrmals überprüft. Ich glaube das das an Compiler liegt (benutze dsPICC 6.0 von HiTech + MPLAB letzte update)
1 | // I2C Initialisieren...
|
2 | |
3 | I2C1CON = 0; |
4 | I2C1CONbits.SCLREL = 1; |
5 | I2C1CONbits.I2CEN = 1; |
6 | I2C1CONbits.IPMIEN = 0; |
7 | I2C1BRG = 39; |
8 | MI2C1IE = 0; |
9 | SI2C1IE = 0; |
10 | while(1){ |
11 | |
12 | I2C1CONbits.SEN = 1; // set start condition |
13 | while (I2C1CON & 0x1F) |
14 | ;
|
15 | DelayMs(1); |
16 | I2C1TRN = 200; // initiate transmission |
17 | while (I2C1STATbits.TRSTAT) // wait until completed |
18 | ;
|
19 | I2C1CONbits.PEN = 1; // set stop condition |
20 | while (I2C1CON & 0x1F) |
21 | ;
|
22 | InitLCD(); |
23 | ClearLCD(); |
24 | }
|
Hallo zusammen, ich habe zurzeit das gleiche Problem mit em PIC18F458. Ich arbeite mit MPLAB 7.6 . Kann es sein, dass MPLAB en I2C Bus gar nicht richtig simulieren kann? Bei mir passiert auch am Testboard nichts... weder eine Start Sequenz noch ein Interrupt obwohl ich alle Register befüllt habe. HELP! Gruß Michael
Also ich hab ein Signal auf den Bus bekommen. Ich hab bevor ich mit dem Senden beginne einfach mal ein Stop Bit erzeugt... danach hats dann funktioniert.... kann mir jmd mal den logischen Ablauf einer Nachrichtensendung beschreiben? auf welche Register muss ich acht geben und reagieren? evtl ein C-Code Beispiel wäre cool.. Gruß Michael
Michael wrote: > Also ich hab ein Signal auf den Bus bekommen. > Ich hab bevor ich mit dem Senden beginne einfach mal ein Stop Bit > erzeugt... danach hats dann funktioniert.... Irgendsowas steht glaube ich im Erratasheet drin.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.