Forum: Mikrocontroller und Digitale Elektronik I2C Schnittstelle für mehrere Controller realisieren


von Hans M. (styl4z)


Lesenswert?

Hallo zusammen,

ich habe hier einen STM32F103 Controller, dieser soll als Master durch 
I2C mit einem anderen Bauteil kommunizieren.

Die Anforderung ist, dass das Programm welches ich dafür entwickle auch 
auf anderen Mikrocontrollern funktioniert. Da stellt sich mir natürlich 
die Frage wie ich das realisieren kann.

Ich bin noch sehr neu im embedded Bereich und das ist auch meiner erster 
richtiger Controller mit dem ich arbeite. Der STM32F103 hat ja diverse 
I2C-Register über die ich die I2C-Kommunikation steuern kann. Sprich für 
z.B. die Start/Stop-Conditions muss ich bestimmte Bits setzen.

Ist das bei anderen Controllern ähnlich? Wie kann ich mein Programm so 
aufbauen, dass meine Funktionen zur Generierung der Start, Stop, Read, 
Write ... Funktionen auch auf anderen Controllern funktionieren?

Viele Grüße

von Stefan (Gast)


Lesenswert?

Was meinst Du mit anderen Controllern? Andere STM32Fxxx oder auch 
Atmegas etc.?
Ein Treiber, der auf unterschiedlichen Plattformen verwendbar ist, ist 
nicht möglich. Du kannst einen Treiber aber so aufbauen, daß der für die 
STM32Fxxx und der für die ATmega-Familie dasselbe Interface zu Deiner 
Applikation haben. Du musst dann beim Wechsel der CPU nur die Treiber 
wechseln und nicht Dein Applikationsprogramm.

Für den F103 gibt es die CMSIS-Library, dort werden von ST auch 
I2C-Treiber zur Verfügung gestellt.

Für die STM32F0xx, STM32F2xx und STM32F4xx Familien gibt es im Cube die 
HAL-Library. Die stellt Dir für alle Hardware-Module des STM32Fxxx 
Treiber inkl. Beispielen zur Verfügung.

Gruß, Stefan

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.