Pinmode im Programm ändern - Schaden möglich?

OP #3472905
Lesenswert?
• ▲
▼
Hallo Forum,

ich beschäftige mich gerade mit der Wahl eines Microcontrollers für 
eines meiner Projekte.
Da ich mit Arduino programmiere, kämen für mich die ATtiny45/85 oder 
ATtiny44/84 in Frage.

Der 84er reicht von seiner Pinbelegung locker. Nachdem ich mich jetzt 
mehr und mehr in Konzepte wie I2C eingelesen habe, kam ich auf die Idee, 
das Projekt nochmal auszugraben. Ich habe noch einen ATtiny45 über, der 
aufgrund seiner begrenzten Möglichkeiten im Gegensatz zu den anderen für 
mich nur für schnelle kleine Projekte in Betracht kam und da mein Code 
nach Optimierung 3.8kByte groß ist, würde er ziemlich genau auf den 
passen und ich würde ihn dann permanent einlöten.

Problem ist, momentan benötige ich 6 I/O-Pins. Ich fand es hier wichtig, 
einen Reset-Pin zu lassen, also fällt das raus. Ich nutze zwei Pins, um 
mit einem anderen Gerät zu kommunizieren - Pin A empfängt ein 
HIGH-Signal und gibt über Pin B ein Bestätigungssignal nach Ende des 
Programms aus.
Also eine ganz primitive 2-Draht-Kommunikationsleitung.


Jetzt kam mir die Idee, das ganze über einen Pin laufen zu lassen. Ist 
es 'sicher' für den Chip, den Pin grundsätzlich als Eingang zu halten, 
bei Signaleingang das Programm starten, den Pin zum Ausgang machen, am 
Ende des Programms eine Bestätigung zu schicken und ihn dann wieder zum 
Eingang zu machen?
Am anderen Ende hängt ebenfalls ein Microcontroller.

Das würde den Pin einsparen und ich könnte das Projekt auf den kleinen 
8-Pin-Prozessor bringen, statt den 14-Pin-Prozessor nutzen zu müssen.
Gast #3472913
Lesenswert?
• ▲
▼
Das kommt natürlich drauf an, was am anderen Ende hängt. Pack einen 
Widerstand in Serie dazwischen, damit der maximale Strom durch die 
beteiligten Pins nicht überschritten werden kann (wenn aus irgendeinem 
Grund beide gleichzeitig Ausgänge sind), dann sollte das sicher sein.
Gast #3472940
Lesenswert?
• ▲
▼
Du findest das in den "Absolute Maximum Ratings" bei den "Electrical 
Characteristics". Wenn man über den Wert kommt, riskiert man kaputte 
Hardware.

Open Drain scheint mir hier aber eine viel bessere Lösung zu sein, und 
es kostet nur einen Pullup-Widerstand mehr Aufwand.
Gast #3472987
Lesenswert?
• ▲
▼
Manche Leute nehmen I2C für einen Hausbus. Ein paar Meter gehen locker. 
Man muss ggf. die Geschwindigkeit reduzieren und einen kleineren Pullup 
wählen, aber bei 1,5m höchstwahrscheinlich nicht.

Aber wie soll I2C hier helfen, wenn OP statt zwei Pins nur einen 
verwenden möchte?

Antwort schreiben

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.

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.