mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Miso, Mosi, Sck als IO's benutzen


Autor: Rainer Voigt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich baue z.Zt. einen kleinen Roboter mit einem AtMega8. Leider gehen
mir so langsam die IO's aus. Ich würde jetzt gern einen ADC-Pin frei
machen, um damit noch die Batteriespannung verfolgen zu können. Leider
muss ich dann einen anderen Pin finden, an den ich einen der
Bodensensoren anschließen kann.

Hab ich irgendeine Chance, den Bodensensor (der ein 0V oder 5V Signal
erzeugt, wenn er den Boden sieht bzw. nicht sieht) an SCK, MISO oder
MOSI anzuschließen, sodass ich danach immernoch Programmieren kann.
Sonst würde ja das Signal vom Sensor z.B. den Clock 'überschreiben',
da passieren dann jedenfalls Schweinereien. Kann man das irgendwie
entkoppeln? Einen Widerstand in die Signalleitung des Sensors reicht da
nicht, oder?

Viele Grüße,
Rainer.

Autor: Dobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm ... beschäftige mich zwar noch nicht sehr lang mit µC´s nur wie wärs
mit der lösung:

ich nehm mal an dein bot hat kein display das diese pins belegen
würde.
löte auf die platine einfach nen Sockel für den µC drauf belege die
pins wie du sie brauchst und brenn dir den µC extern - weißt wie ichs
mein?

wie wärs damit???

Autor: Rainer Voigt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... er sitzt momentan ja in einem Sockel. Aber das mit dem Ausbauen
find ich nicht so praktisch, vor allem weil das mit dem Ausbauen bei
mir nicht so einfach ist...

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach wenns geht in deine Programmer in die Ausgangsleitungen (SCK, MOSI)
einen 1KOhm Serienwiderstand. Dann hast keine Probleme wenn von deiner
Schaltung ein anderer Ausgang dagegenstromt. Die meisten ICs sollten
5mA Sinken/Sourcen können.
An deinen Digitalsensor mach noch einen 20K Serienwiderstand, dann
gewinnt dein Programmer immer egal was der Sensor sagt.
Und schon kannst du MOSI,MISO,SCK doppelt verwenden.

Autor: Rainer Voigt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also doch mit Widerständen. Dann kriegt der uC zwar nur noch Spannungen
von 1V - 4V im schlimmsten Falle, aber Du meinst das geht?

Gruß,
Rainer.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wiso denn 1V - 4C der eingang des µC zeiht doch fast keinen storm und
ist sehr hochohmig. Du kannst schliesslich auchen einen widerstand mit
einem wert jenseits von 10 KOhm gegen Vcc Schalten und es wird immer
noch als high erkannt. Kannst ja mal ausrechnen: ( der Mega8 braucht
einen min eingangsstrom von 1 µA !) nicht vergessen die evtl
vorhandenen pull widerstände mit einrechnen.

Ausserdem erkennt der µC einen wert von 0,6 V als high.

Gruss Simon

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und bevor ichs vergess, RTFM

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Verfahren funktioniert natürlich nich bei jeder Port Beschaltung.
Aber in deinem Fall spiel einfach alle Konstellationen durch.

Die Eingänge schalten auf Low bei 0.2*Vcc und High bei 0.6*Vcc (steht
im DB unter Electrical Characteristics)

Beim Proggen hast du in den ungünstigen Fällen einen Spannungsteiler
20K/1K und im Betrieb (natürlich bei abgezogenen Progger) hast du
ebenfalls einen Spannungsteiler von 20K und ca. 5MOhm (Port
Eingangswiderstand).

Wenn du naürlich an MOSI/MISO/SCK periphere Inputs hast fängt dein
Roboter lustig an zu tanzen....

Autor: Rainer Voigt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, hab ich nicht. Ich denk so wirds gehen. Vielen Dank.

ciao,
Rainer.

Autor: Michael (ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast alles falsch hier.

Nur einen Widerstand einbauen. Und zwar ca. 1.5 Kiloohm zwischen Sensor
und AVR-Pin. Die ISP-Buchse kommt ohne Widerstände direkt an den AVR.

Wenn nun das ISP nicht aktiv ist, sind die ISP-Tool-Pins alle hochohmig
und das ISP-Tool verhält sich so, als wäre es gar nicht aufgesteckt.
Dann spielt der 1.5 Kiloohm Widerstand in der Sensorleitung (fast)
keine Rolle.

Wenn das ISP aber aktiv ist, überstimmt der AVR-Pin bzw.ISP-Pin (je
nach dem, wo Du den Sonsor mit dem Widerstand angeschlossen hast) das
Sensor-Signal. Durch den Widerstand wird der Querstrom auf ca. 3mA
begrenzt.

Siehe hierzu auch die Atmel Applications Notes.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher ist das die einfachste und Lösung und hat weniger Nebenwirkungen.
Ich gebe jedoch folgendes zu Bedenken:

1. Einige Windows Programme fummeln manchmal ungefragt zwischendurch
auf der LPT Leitung rum. Windows tut dies regelmässige bei einem
(ungewollten) Reboot. Und schon stimmt die Annahme, dass ISP-Progger
Ausgang und die AVR ISP Pins nie gleichzeitig aktive sein können nicht
mehr. Mit einem Serienwiderstand im Progger kann einem da schon nichts
mehr passieren (ja ich bin zu faul das ISP Kabel ständig abzuziehen).

2. Hat man sich als an Anfänger erst einmal daran gewöhnt die ISP Pins
als I/O doppelt zu belegen, vergisst man garantiert irgendwann bei
einer wilden Steckbrettorgie in tiefer Nacht den Serienwiderstand am
Sensorausgang. Hat man den Widerstand im Progger immer an Bord muss man
dann nicht gleich wieder 1-2 Wochen aussetzen bis die Ersatzteile da
sind. Wenn jedoch die Widerstände stören/fehlen findet man das sehr
schnell heraus und kann Abhilfe schaffen.

Daher mein Vorschlag für Anfänger das ganze auf der sicheren Seite
anzugehen.

Autor: Michael (ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kupfer Michi:

Wenn Du kein vernüftiges ISP-Tool benutzt, stattdessen die
billigst-primitvst-wacklig-Lösung am Paralleport, bekommst Du noch viel
mehr Probleme, weil diese Einfachst-Digner einfach viel zu fragil sind.


Der Vorschlag mit den 20 Kiloohm in der Sensorleitung und 1 Kiloohm am
"ISP-Tool", hat den Nachteil, dass das Signal mit den 20 Kiloohm und
der Eingangskapazität des AVR-Pins einen deutlichen Tiefpass bildet und
die Flanken nicht mehr ordentlich sind.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rainer

nehm einen CD4053 Triple 2-Channel Multiplexer und beschalte den so,
dass bei Reset die Leitungen des ISP's durchgereicht werden.

siehe auch
http://www.mikrocontroller.net/forum/read-4-685.html

Gruß Jörg

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... Multiplexer iss auch ne Idee, aber da muss ich noch so viel dran
rum löten... (dabei hab ich eigentlich so ne schöne gedruckte Platine)
:)

Danke für die Ideen!

Rainer.

Autor: Kupfer Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>billigst-primitvst-wacklig-Lösung am Paralleport

Hast ja recht. Aber vielleicht 80-90% aller Anfänger lernen damit
laufen und das garnicht mal so schlecht. Sei also nicht so streng im
Urteil. (Bei mir ist das ohne Probleme sei knap einem Jahr im Einsatz
mit 6m PPort- und 40cm ISP-Kabel).

>Tiefpass 20K/AVR-Pin
Bei einer geschäzten max 20pF (DB sagt da nix drüber)
Pin-Eingangskapzität ergibt sich eine Grenzfrequenz von 400KHz und eine
1-tau (63% Anstieg) Zeit bis zum Umschaltpunkt Low/High von 400ns, das
entspricht bei 16MHz eine Verzögerung von 6.5 Taktzyklen. Muss man halt
abwägen was einem wichtiger ist...

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.