www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interner PullUp eines Atmegas644


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Folgende Frage. Ich habe ein Board entwickelt, welches ein wenig 
fehlgeschlagen ist. Ein Schalter verbindet einen Pin eines ATmega644 mit 
entweder GND oder VCC. Wobei VCC = 3,3 V ist. Fals ich nun den Schalter 
umlege (auf VCC), springt die Strombegrenzung ein und das Board geht 
nicht mehr. Kann ich mittels des internen Pullups des ATmegas das Board 
so anhalten, das die Platine nicht ausgeht ?

             ------ VCC
--uC-Pin---\
             ------- GND

Bin für jede hilfe dankbar!

Grüße
Alex

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>...welches ein wenig fehlgeschlagen ist...

Untertreibe bitte nicht.
Trenne die VCC vom Schalter ab und schalte den Pull-Up ein. Fertig.

MfG Spess

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm ganz so einfach geht das nicht leider :/. Ich habe mal die VCC 
leitung durchtrennt. Ausserdem habe ich den internen pull up aktiviert.
DDRC  &= ~(1<<PC4);    // Schalter der Platine ( Auf Eingang)
PORTC |= (PC4);

(sollte doch so gehen oder?)

Leider erkennt der atmega keine signale über den Pins. Liegt das hier am 
Schalter oder habe ich mir den ATmega zerstört?

Gruß
Alex

Laut deiner Schaltung sähe das ja so aus

             ------ (nix)
--uC-Pin---\
             ------- GND

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Alex schrieb:
> Folgende Frage. Ich habe ein Board entwickelt, welches ein wenig
> fehlgeschlagen ist. Ein Schalter verbindet einen Pin eines ATmega644 mit
> entweder GND oder VCC. Wobei VCC = 3,3 V ist. Fals ich nun den Schalter
> umlege (auf VCC), springt die Strombegrenzung ein und das Board geht
> nicht mehr. Kann ich mittels des internen Pullups des ATmegas das Board
> so anhalten, das die Platine nicht ausgeht ?
>
>              ------ VCC
> --uC-Pin---\

kläre, wo dann der Strom langfließt! Ein Eingang eines AVR zieht keinen 
Strom, der eine Strombegrenzung zum Ansprechen bringt, dazu müßte sie im 
µA Bereich ansprechen...

Ein Ausgang könnze das vielelicht schaffen, wenn er auf L programmiert 
ist, ich habe nie getestet, wieviel da wirklich fließt bis der AVR-Pin 
stirbt.
Ich würde aber auch nur im Bereich von 100-200mA vermuten.

Gruß aus Berlin
Michael

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann ich mittels des internen Pullups des ATmegas das Board
>so anhalten, das die Platine nicht ausgeht ?

             ------ VCC
--uC-Pin---\
             ------- GND

>Bin für jede hilfe dankbar!


Schalte den Pin nicht auf Ausgang, dann geht das auch so.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm selbst wenn ich den pin jetzut in den Pin jetzt ganz seperat 
angeschlossen habe sagt mir dieser ich habe ein low signal anliegen. 
aber die konfiguration mittels
DDRC  &= ~(1<<PC4);    // Schalter der Platine ( Auf Eingang)
PORTC |= (PC4);
 dochwar richtig oder ?

Gruß Alex

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ersetz mal die Zeile

PORTC |= (PC4);

durch

PORTC |= (1<<PC4);

Autor: thiemo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Alex schrieb:
> DDRC  &= ~(1<<PC4);    // Schalter der Platine ( Auf Eingang)
> PORTC |= (PC4);
>  dochwar richtig oder ?

Oben benutzt Du "1<<PC4" (viermal 'ne eins shiften ins Byte), unten dann 
"PC4" -- in Deinem Fall wohl die Zahl 4, 0b00000100.
Damit duerfte die 1 an der falschen Stelle landen und der falsche Pullup 
aktiviert werden -- oder halte ich ein schwieriges Problem fuer 
einfacher als es ist?

Tschau,
  Thiemo

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Shiften halte ich für Richtig. Leider habe ich mir irgendwie 
bei dem Versuchen den ATmega geschrottet. Kann es darum leider nicht 
wiklich test :(  Danke Trotzdem.

Gruß Alex

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm also nachdem ich alles durchgetestet habe scheint der uC doch noch 
OK zu sein. Ich habe an ner anderen Stelle ne Sicherung durchgehauen die 
ich erstmal ersetzen muss :). Allerdings habe ich mich auch entschlossen 
die Platine neu zu bauen.  Die Frage ist nun, wie hoch sollte so ein 
Vorwiderstand vor einem I/O Port sein?

Die Schaltung sieht folgendermaßen aus:

VCC----------| R |-------------I/O-Pin
                        \
                         \          /
                          \--------/  |--GND




/  = Schalter. Dieses soll als sicherung dienen damit nicht der Ganze 
Strom von VCC auf Maße liegt. Jemand eine Idee. Die Spannug beträgt 3,3V

Gruß
Alex

Autor: Thiemo N. (thiemo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

kennst Du AVR-Tutorial: IO-Grundlagen? Da werden 10k genommen. Auch 
sonst ganz lesenswert, denke ich.

Tschau,
  Thiemo

Autor: Torben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, musst Du Richtlinien beachten oder wieso musst du einen externen 
Pullup benutzen?


 I/O Pin 0--------SWITCH--GND

In dieser Schaltung kannst Du den internen Pullup aktivieren und ein 
tastendruck wird über eine logische 0 erkannt. Ist der Uc im Reset bzw. 
beim Power Up, dann sind die Pins als Tristate konfiguriert.

Mfg,

Torben

Autor: Volker Schulz (volkerschulz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Torben schrieb:
> Hallo, musst Du Richtlinien beachten oder wieso musst du einen externen
> Pullup benutzen?

Wenn er irgendeine Richtlinie haette, muesste er wohl nicht nach der 
Dimensionierung eines Pull-Ups fragen. ;)

Ich bin auch der Meinung, dass der interne Pull-Up hier ausreichend ist.

Volker

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.