www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2561 Port D0 Eingang und SDA


Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es ist dieses board:
http://www.shop.display3000.com/pi12/pi2/pd43.html

allerdings mit:
atmel 2561
16 Mhz

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst doch das I2C in Software machen, kostet auch nicht mehr Code.

Dann kannst Du jede beliebigen 2 Pins als I2C verwenden.


Peter

Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
laut datenblatt geht das nicht.
ist aber nicht schlimm. der taster ist in 2 minuten auf einem anderen 
port gelegt.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..da warte ich mal noch ne weitere meinung ab..nichts für ungut peter.

gruss martin

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann gebe ich da:

#define SCLPORT  PORTD
#define SDAPORT  PORTD

#define SCL  PB5
#define  SDA  PB4

einfach andere port´s ein ?????

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin Schmid (paul-stanley)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo ralf,

danke für deine antwort. aber ich lege dann doch lieber den taster auf 
einen anderen port.

gruss martin

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.