mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Internen Pullup ausschalten bei AT91SAM7S


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe folgende Schaltung (ist bereits soweit reduziert):
1M Ohm Widerstand von IO-Pin zu GND.

Da der AT91SAM7S interne Pullups hat, habe ich diese ausgeschaltet:
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, USB_SELECT, 0);
AT91C_BASE_PIOA->PIO_PPUDR = USB_SELECT;

Wenn ich jetzt aber die Spannung am Beinchen messe, so ist diese 1,6V 
bei 3,3V Vcc. Meiner Meinung nach sollte es aber 0V sein.

Hat jemand eine Ahnung warum das so ist, bzw. warum es nicht so 
funktioniert, wie ich es mir denke.

Schönen Gruß,
Johannes

Autor: Micha S. (e-tec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
am besten direkt über das i/o register ausschalten. kenne den controller 
leider nicht... ddr auch richtig gesetzt???
wenn nicht was hängt noch dran, vielleicht hast irgendwo anders nen 
spannungsteiler gebaut?

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also: Dran hängen tut nichts mehr. Der Spannungsteiler kann also 
ausgeschlossen werden. Die Spannung sieht zwar wie Vcc/2 aus, ist es 
aber nicht.
Ich habe jetzt auch den Unterschied zwischen Pullup an und Pullup aus: 
3,0V (an) und 1,69V (aus).

Sieht irgendwie komisch aus. Kann es sein, dass der Mikrokontroller 
kaputt ist?

Servus,
Johannes

Autor: Stephan W. (sir_wedeck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
war heute ein schwere Tag, also kann sein das ich falsch liege, aber du 
kannst die Pins mit "PIO_OPENDRAIN" initialisieren. Oder schon versucht?

Schau dir mal das Kapitel "15.4.6 Multi Drive Control (Open Drain)" im 
DB an.

Schau dir auch nochmal die Beispiele von ATMEL an.
Du willst irgend was mit "USB..." machen?
ATMEL macht das bei den Ports so:
/// USB VBus monitoring pin definition (PA13).
#define PIN_USB_VBUS    {1 << 13, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
/// USB pull-up control pin definition (PA16).
#define PIN_USB_PULLUP  {1 << 16, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}

ich weiß nicht ob es dir weiter hilft.

Stephan

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stephan,

danke für deine Hilfe.
Aber so viel ich sehe, sind das zwei Paar Schuh. Im Beispiel von Atmel 
werden externe Pullups für D+ von USB geschaltet. Mir geht es eher um 
den VBUS. Und der wird einfach nur als Input deklariert.
Der interne Pullup wird gar nicht beachtet.

Schönen Gruß,
Johannes

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.