2561 Port D0 Eingang und SDA

OP #785929
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
Gast
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
OP
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
Gast
> 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
Gast
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
OP
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
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
Gast
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
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.