hallo zusammen, auf meinem board ist der port D0 fest mit einem taster verbunden. da ich aber den I²C bus brauche ist es mir nun nicht ganz klar ob dies funktioniert, da am Port D0 auch SDA gleichzeitig aufliegt. lassen sich die beiden sachen gleichzeitig betreiben oder muss ich meinen taster auf einen anderen port legen? das wäre kein grosses problem. müsste halt die leiterbahn auftrennen und auf einen anderen port löten. gruss martin
Hi, das ist eigentlich eine unsaubere Lösung. Entweder Taster, oder I2C. Schliesst der Taster nach Masse? Dann funktioniert es, wenn: a) Taster und I2C nicht gleichzeitig in Betrieb sind b) der Port niemals bei gedrücktem Taster im Push-Pull-Betrieb eine 1 ausgibt (sonst raucht es) Wenn du das ganze unabhängig (und somit sauber) betreiben willst, löte um. Ist auch sicherer für den Port. Da I2C open-collector bzw. open-drain ist, passiert nichts, wenn der Taster gedrückt ist (nur bei Schalten nach Masse(!)), die I2C-Kommunikation tut dann halt nicht. Ist allerdings D0 eine aktive Ausgangsstufe, die gerade High ausgibt, wird es rauchen, wenn der Taster gedrückt ist. Kannst du mal den Schaltplan vom Board posten? Ralf
hallo ralf, danke für deine antwort. der taster schaltet gegen masse und ich trenne lieber die leiterbahn auf und löte den taster dann auf einen anderen eingang. ist vom hersteller dann aber nicht sonderlich klug ausgedacht worden den I²C gleichzeitig auf einen auf dem board integrierten taster zu legen. gruss martin
> ist vom hersteller dann aber nicht sonderlich klug ausgedacht worden den I²C > gleichzeitig auf einen auf dem board integrierten taster zu legen. Je nachdem. Wenn das ein "Anfänger"-Board ist, ist das okay. Weil ein Anfänger erst mal LEDs zum Leuchten bringt und Taster einliest, bevor er mit I2C anfängt. Kann dein Controller den I2C-Bus evtl. auf andere Pins mappen? Manche Controller können das. Guck dir vor dem Auftrennen das Datenblatt an, wär schad drum, wenn du hinterher feststellst, dass du es hättest woanders hinmappen können. Ralf
es ist dieses board: http://www.shop.display3000.com/pi12/pi2/pd43.html allerdings mit: atmel 2561 16 Mhz
Tja, laut Datenblatt kann der 2561 nicht mappen, soweit ich das sehe. Aber da das ein fertiges Board ist, empfehl ich dir eher, den Taster einfach nicht zu benutzen, sondern einen der anderen. Oder brauchst du alle? Wie ich sagte, es ist kein Problem, wenn der Taster nach Masse zieht, dann darf es nicht rauchen, es sei denn, der Port gibt 1 aus. Vielleicht kannst du das ja in der Software berücksichtigen. Ralf
hallo ralf, ich brauche alle taster. werd die leiterbahn auftrennen und eine anderen port benutzen. das ist das einfachste und wohl auch beste, da ich mitten in der tempmessung über i²c die taster drücken können muss. ein verfälschter wert würde sofort eine warnmeldung ausgeben. gruss martin
Du kannst doch das I2C in Software machen, kostet auch nicht mehr Code. Dann kannst Du jede beliebigen 2 Pins als I2C verwenden. Peter
laut datenblatt geht das nicht. ist aber nicht schlimm. der taster ist in 2 minuten auf einem anderen port gelegt.
Martin Schmid wrote:
> laut datenblatt geht das nicht.
Klar geht das.
Jeder Pin, der Eingang oder Ausgang sein kann, ist für SW-I2C geeignet.
Das ist ja der Witz an SW-I2C, daß es keine HW-Unterstützung braucht.
In Bascom oder Codevision ist SW-I2C schon mit eingebaut.
Peter
..da warte ich mal noch ne weitere meinung ab..nichts für ungut peter. gruss martin
Da hat Peter recht, zumal es auch fertige Routinen in Assembler gibt (duuuu, Peter...) :-) Ausserdem brauchst du dann nicht das Board "verunstalten". Der Controller wird das locker packen, ich glaub nicht, dass dein Programm 95% der CPU-Zeit braucht :-) Ralf
dann gebe ich da: #define SCLPORT PORTD #define SDAPORT PORTD #define SCL PB5 #define SDA PB4 einfach andere port´s ein ?????
Nein, so einfach ist es dann doch nicht :-) Du brauchst natürlich auch Software, die dann deine I2C Kommunikation übernimmt. Die SW dürftest du hier im Forum finden, da gibts bestimmt was. Die #defines von oben sagen dann dieser Software, welche Ports denn nun für das Software I2C verwendet werden sollen. Ralf
hallo ralf, danke für deine antwort. aber ich lege dann doch lieber den taster auf einen anderen port. gruss martin
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.