Forum: Mikrocontroller und Digitale Elektronik PIC18 mit I2C Modul 50kHz


von DerGast (Gast)


Lesenswert?

Hallo Zusammen,

Ich möchte bei meinem PIC18F46K42 die I2C Geschwindigkeit auf 50kHz 
bringen, da ich ein Display von Newhaven habe, welches nicht mehr als 
50kHz zustande bringt. Im MCC kann ich aber auf mindestens 100kHz. Weiss 
da jemand wie / ob ich den runter bringe?

LG und danke,

DerGast

von Ingo S. (schicki)


Lesenswert?

Hallo,

klar.

Für die Geschwindigkeit wir im Normallfall das Reg. SSPADD verwendet. 
Mit diesem Reg. wird Baud Rate Generator (BRG) -> Siehe Kapitel 21.4.7 
(Seite 312) Da sind auch Tabellen für die Geschwindigkeiten abgedruckt.

Für meine PIC´s (PIC18F46K80 undPIC18F97J60 habe ich eine Routine für 
100 bzw. 400 KHz geschrieben.

MSSP Address Register (SSPADD)
This register has two different functions in slave or master mode. In 
slave mode, it holds the address of a slave device. When this module is 
configured as a master, it is used to define a data transfer rate or 
generate a baud rate. In master mode, only lower seven bits are used. We 
can use this formula to calculate SSPADD value for the desired baud rate 
:

Output = fOSC / 4
 SSPADD  = ( Output/ Baud rate ) -1

Viele Grüße
Ingo

von Alter Native (Gast)


Lesenswert?

DerGast schrieb:
> Weiss da jemand wie / ob ich den runter bringe?

Man schreibt sich eine Ansammlung von Soft-I2C-Routinen.

von Michael D. (Firma: indEAS) (indeas)


Lesenswert?

Mit dem CCS Compiler geht das ganz einach:
#use i2c(MASTER, I2C2,FAST=50000)
den Rest erledigt der Compiler.

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
Noch kein Account? Hier anmelden.