I²C mit dem PIC

Begonnen von picass, 23.01.2022, 14:16:52 CET

Vorheriges Thema - Nächstes Thema

picass

Nur ganz leise wiederhole ich hier, dass ich mit diesem System noch keine Berührung hatte. Ein anderes Projekt hier im Forum brachte nun die Notwendigkeit, sich mit Sensoren zu beschäftigen und da ist man fix außen vor, rsp. kann viele nicht nutzen, weil die .....
Natürlich würde ich hier keine Einführung in diese Systematik erwarten, fürs Erste habe ich mich schon eingelesen. Um den Einstieg etwas einfacher zu ermöglichen, würde ich mich aber über zwei Anregungen, rsp. Hinweise freuen.

Zuletzt eingeschossen hatte ich mich auf die PIC18F14K22. Gibt es eine Empfehlung für einen in etwa ähnlichen PIC, welcher für I²C besonders geeignet wäre, also möglichst weitreichende Unterstützung bietet?
Erbaulich wäre auch ein Hinweis auf ein funktionierendes Beispiel-Programm, fast egal, um welchen Sensortyp es da gehen mag. Es geht um das Programm und da evtl. halt was Übersichtliches.
Sollte es vielleicht auch im Hintergrund ein Script geben?......lange Pause!
Der Sprut hatte eine Einführung, die stammt aber von 2002 und da gibt es bestimmt Aktuelleres (als seinen PIC16Fxxx) oder nur Beschreibung von einzelnen Befehlen.
Würde mich über jeden Tipp freuen.
Grüße, picass

vloki

Hi,
die meisten halbwegs aktuellen 8-Bit PICs haben wohl ein MSSP Modul.
Das dürfte sich auch in den letzten 20 Jahren kaum verändert haben.

Die Beispiele von Sprut müssten leicht auf den 14K22 übertragbar sein.

Selbst habe ich den I2C Bus bisher selten benutzt und könnte nur mit einem
rudimentären C-Programm für einen SHT21 Temp. und Feuchtesensor dienen.
Leider ohne Dokumentation ;-)
MPLABX  XC8  KiCAD

PICkel

Hallo,

ich habe I²C bisher 4x eingesetzt:

Als Master: mit PIC16F882 (Uhr mit RTC-Chip)
u. PIC18F4722 (NC-Steuerung mit I²C-FRAM sowie Selbstbau-Display mit 16F1947)

Als Slave: mit PIC16F1947 (Display an NC-Steuerung s.o.)
u. PIC16F1827 (Ansteuerung eines VFD)

Es werden/sollten also alle PICs, die im Datenblatt I²C anbieten, verwendbar sein. Wichtig: max. Leitungslänge beachten, notfalls Treiber benutzen! 

Programmiert habe ich mit MikroBasic: Die I²C-Master-Funktionen sind in den Bibliothen implementiert.

Die Slave-Funktionen musste ich selbst schreiben.
Das Datenblatt war dabei meine ständige Lektüre  ;D .

Programmierst Du nur mit ASM?

Gruß
PicKel




picass

Ich bedanke mich sehr herzlich für die Kommentare und Anregungen, insbesondere bei PICkel für das Erstellen eines Beispiel-Programmes. Das ist ganz lieb!

Muss einen falschen Fehler gestehen: habe dieses Projekt zum falschen Zeitpunkt angefangen. Kurz nach dem Einstellen des Eröffnungsbeitrages hatte ich mit dem Troubel einer Urlaubsplanung begonnen/ beginnen müssen. Das wurde ein aufwendiges Ausbaldowern von Möglichkeiten, und nu' isses auch passiert: ein Urlaub wurde gebucht und der wird auch kürzest-fristigst angetreten - ohne Rücksicht auf diverse üble Zahlenwerke. Jetzt stecke ich mitten in den hektischen Vorbereitungen, zu allem Übel macht noch das Smartphone technische Probleme, all diese verdammten Formulare wegen ,,C", Leihwagen, etc... So richtig werde ich wahrscheinlich mich erst nach dem Urlaub vertiefen können. Zumindest für mich ist die Thematik nichts, was nebenher mal so fix..... Ja, programmiere immer noch nur in Assembler. Im Moment kämpfe ich aber gegen das Smartphone und eine für den Urlaub wichtige, aber nicht funktionierende App, voll schäbbig das. >:(
Grüße, picass

PICkel

Hallo picass!

Gerne geschehen! Leider haben diese Beispiele viel Ballast wie z.B. Time-out-Funktionen dabei.
Wenn es die Zeit hergibt, kann ich mal ein Beispiel ohne Bibliotheksroutinen erstellen, also selbst Register setzen bzw. lesen. 

Hardwaretest wäre mit I²C-FRAM.

Gruß
PICkel


picass

ZitatHardwaretest wäre mit I²C-FRAM.
Was das nun wieder ist, will ich wahrscheinlich gar nicht wissen.

Ein erster Sensor zum Einüben ist gerade bestellt, nach längerer Suche wurde es ein SHT21, welcher Temp u. Luftfeuchtigkeit anzeigt. Der wurde es, weil man die Daten (-Menge) auf 8 bit beschränken kann. Ob das eine vernünftige Wahl war, muss sich noch zeigen, denn das DFN-Package mit 3 mm Kantenlänge ist natürlich für Handlötungen nicht gedacht. Hoffentlich bringt der avisierte Fädeldraht-Anschluss keine Probs. Is klar, manche Versionen gibts auch auf kleinen Fertigplatinen, aber irgendwann war ich die Sucherei und den Zirkus mit "doch nicht lieferbar" und wieder einer anderen Version leid und hab' bei einem Elektronik-Großhandel zugeschlagen, es wurden ja auch noch andere Teile mit bestellt. Lieferung ca. nach 4 Werktagen, es wird also nichts – wie vorher gesehen – mit einer Aktion noch vor dem Urlaub. Da verbleiben höchstens ein paar Trockenübungen.
Grüße, picass

PICkel

Zitat
ZitatHardwaretest wäre mit I²C-FRAM.
Was das nun wieder ist, will ich wahrscheinlich gar nicht wissen.

Ist einfach nur ein ferroelektrischer Speicherchip FM24C04 mit I²C- Interface, der bei mir grade rumliegt. Ist ähnlich EEPROM, ist aber viel schneller und hält auch viel mehr Schreibzyklen aus. Zum Testen der I²C-Funktionen gut geeignet.
Siehe auch meinen Beitrag in "Projekte und Eigenbau" vom 14.8.21

Gruß
PICkel

PICkel

Hallo picass,

schau' Dir mal meinen Beitrag vom 2.2.22 zum Thema I²C an!
Ich denke, der dürfte eine gute Grundlage für Deine Lösung sein.
Hab' ihn dort reingestellt, weil das Thema vielleicht auch Andere interessiert.

Gruß
PICkel

Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Similar topics (5)