Forum: Mikrocontroller und Digitale Elektronik Internen Pullup ausschalten bei AT91SAM7S


von Johannes (Gast)


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:
1
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, USB_SELECT, 0);
2
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

von Micha S. (e-tec)


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?

von Johannes (Gast)


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

von Stephan W. (sir_wedeck)


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:
1
/// USB VBus monitoring pin definition (PA13).
2
#define PIN_USB_VBUS    {1 << 13, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
3
/// USB pull-up control pin definition (PA16).
4
#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

von Johannes (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.