PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pic als Slave am I2C



kalletronic
05.07.2006, 21:15
Hi Leute,

ich hab mal wieder ein Problem und hoffe ihr könnt mir helfen.
Kennt jemand ein Tutorial, in dem beschrieben wird wie ich nen Pic (16LC621 oder 16F627) als slave am I2C betreiben kann.
Möchte mir so ne Art Servocontroller basteln, so daß ich mehrere Servos über den I2C ansteuern Kann.

Wäre super wenn mir Jemand helfen Könnte !!

Mobius
06.07.2006, 01:29
Also nen 16LC621 würd ich gar nicht in erwegung ziehen, außer wenn du vorhast dir eine Quarzlampe zum Löschen des EPROM zu besorgen (oder ein Chip pro Versuch) und gleich beim 16F627 bleiben. Den kannst du mehr als 10.000x neu beschreiben, bevor er anfängt zu spinnen, das müsste eigentlich für seeehr viele Versuche reichen :D.

Zu deiner Frage, bei Micorchip gibt es eine ganze Application Note (inc. Software und bsp.) darüber, wie man am besten ein Software-I2C Master/Slave löst. Also einfach hier (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011043) schauen und lass dich nicht abschrecken, die Note behandelt sowohl die Master, wie auch die Slave Seite. Für ein Beispiel würd ich dir raten, dir die I2C_TEST.ASM im Zip durchzugehen.

Naja, ansonsten sind die Infos echt dürftig, es gibt einige Posts auf der PicList, die ich gerade nicht wiederfinde und diese (http://www.astrosurf.com/soubie/pic_as_an_i2c_slave.htm) Seite. An den Source-Code zu kommen ist aber ein wenig trickreich, weil da alle Links mit einem "mailto:" anfangen. Also rechtklick auf den Link und Link kopieren, danach das mailto einfach wieder entfernen. Naja, weiteres Malus (zumindest für mich) ist, dass es nicht in Assembler geschrieben wurde ^_^

Ansonsten ist es auch vielleicht hilfreich die offiziellen Specs (http://www.semiconductors.philips.com/acrobat_download/literature/9398/39340011.pdf) von I2C zu kennen, wobei ich aber sehr gut verstehen kann, dass sich so ein Datenblatt net wirklich angenehm liest.
MfG
Mobius

kalletronic
06.07.2006, 08:18
Hi Mobius, erstmal danke für die hilfe, werds gleich mal versuchen

Forelle_blau
21.07.2006, 13:06
Hi,
wenn du es mit einem Compiler versuchst, der hat die Slaveroutinen schon drin. Must nur drauf achten, dass der Slave-pic schneller getaktet wird als der Master. Wird dann ganz easy.

mfg
Forelle

BigWumpus
04.08.2006, 20:46
Ich habe hier PICs mit jeweils 4MHz im Einsatz als Master und Slave !
Ich benutze aber die Hardware (MSSP) der PICs.

Die Master können auch als Software-Emulation arbeiten, weil sie völlig Zeit-unkritisch sind, aber die Slaves gehen nur mit Hardware-I2C ! Aber dann problemlos.

Kleiner Tip:
Das MSSP-Modul würde ich bei jeder Übertragung neu initialisieren, weil Störungen auf der Leitung (auch den Sender) richtig stören können.