Interner PullUp eines Atmegas644

Gast #1583979
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
Gast
Hi

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

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

MfG Spess
Gast
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
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
Gast
>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.
Gast
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
Gast
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
Gast
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
Gast
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
Gast
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
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

Eine eigene Frage? Dieser Thread ist über 16 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.