Forum: Mikrocontroller und Digitale Elektronik Pullup Widerstand um Pulldown auszugleichen


von Bernd S. (mms)


Lesenswert?

Hallo,

an dem BMS Pin eines AT91SAM9263 Controllers ist ein 10k Pulldown 
Widerstand vorhanden (diesen kann ich leider nicht entfernen, da sich 
dieser auf einer gekauften CPU-Platine befindet).

Auf meinem Target-Board hab ich einfach einen 100k Pullup Widerstand an 
den Pin zusätzlich drangehängt um einen High Zustand zu erhalten.

Das funktioniert leider nicht. Als Ergebnis hab ich eine 0.5V Spannung 
am Pin und wenn ich am 100k Widerstand messe (mit angeschlossener 
CPU-Platine) erhalte ich lediglich 16k.


Gruß
Bernd

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Bernd Schuster schrieb:

> an dem BMS Pin eines AT91SAM9263 Controllers ist ein 10k Pulldown
> Widerstand vorhanden (diesen kann ich leider nicht entfernen, da sich
> dieser auf einer gekauften CPU-Platine befindet).

Wieso willst du den Widerstand entfernen, bzw. was willst du sonst an 
den BMS Pin hängen?

Über den BMS Pegel wählt man ja die Bootquelle aus (BMS Low: NOR Boot 
bzw. external memory boot). willst du aus dem internen SRAM booten?

> Auf meinem Target-Board hab ich einfach einen 100k Pullup Widerstand an
> den Pin zusätzlich drangehängt um einen High Zustand zu erhalten.
>
> Das funktioniert leider nicht.

Klar, "durch den 100k Pullup-Widerstand kommt von Vcc 10x weniger Stom 
als durch den 10k Pulldown-Widerstand nach GND wegfliesst."

Du könntest einen Spannungsteiler aufbauen und dem eine so hohe Vcc 
geben, dass der BMS Pin log. HIGH sieht.

von Bernd S. (mms)


Lesenswert?

danke für deine antwort.

Ich möchte die Möglichkeit haben entweder über ein externes NOR Flash 
(BMS: low) oder einem "internen" Dataflash (BMS: high) booten zu können.

Das mit dem 100k hab ich mir grad aufgemalt... man muss ja davon 
ausgehen, dass der Prozessor intern ebenfalls einen 100k Pullup besitzt 
-> dadurch muss der externe ungefähr 1k sein damit man ein High-Level 
erreicht.


Ich werds mal mit einem 1k Pullup ausprobieren.

Gruß
Bernd

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Bernd Schuster schrieb:

> Das mit dem 100k hab ich mir grad aufgemalt... man muss ja davon
> ausgehen, dass der Prozessor intern ebenfalls einen 100k Pullup besitzt
> -> dadurch muss der externe ungefähr 1k sein damit man ein High-Level
> erreicht.

1k Pullup sollte funktionieren.

Welchen HIGH Pegel braucht der µC am BMS Pin und welche Spannungen hast 
du zur Verfügung? Aus deinen letzten Daten (R2=10k, R1=100k Uaus=0,5V) 
schätze ich Uein=Vcc=5V ab.

Kannst du den internen Pullup nicht softwaremäßig abschalten?

von Bernd S. (mms)


Lesenswert?

habs grad mit 1k Pullup ausprobiert und es funktioniert. VCC beträgt 
3.3V.

Den internen Pullup kann ich nicht per Software abschalten, da der 
Bootloader (im ROM) nicht verändert werden kann. Und nur in diesem 
Bootloader wird der BMS Pin auf high oder low level überprüft.

Gruß
Bernd

von Karl H. (kbuchegg)


Lesenswert?

> Ich möchte die Möglichkeit haben entweder über ein externes NOR
> Flash (BMS: low) oder einem "internen" Dataflash (BMS: high) booten
> zu können.

Und wie unterscheidest du zwischen den beiden Möglichkeiten?

Du brauchst doch nur eine Brücke vom Pin zu Vcc vorsehen.
Ist die Brücke gesetzt:         BMS high -> Dataflash
Ist die Brücke nicht gesetzt:   BMS low  -> externes Flash

von Bernd S. (mms)


Lesenswert?

hab einen Jumper der den BMS Pin auf GND zieht

von Ulrich P. (uprinz)


Lesenswert?

Ich verstehe das jetzt nicht.

Laut Deiner ersten Beschreibung hat der 9260 einen externen 10k PullDown 
(wer macht sowas??) an seinem Pin. Irgendwann wandelt der sich in einen 
internen PullDown von 10k und dann wird daraus ein steuerbarer PullDown.

Wat-denn-nu? Normalerweise macht man an einen solchen Pin (BMS) einen 
PullUp von 10k..100k gegen Vcc und einen 0R oder einen Jumper gegen GND. 
Alles Andere ist sinnfrei. Eine saubere Lösung wäre, den externen 10k zu 
identifizieren und auszulöten.
Der Bootloader vom 9260er sollte sehr ähnlich dem des RM9200er sein und 
das ist der SAM-BA oder der / das U-Boot. Den SAM-BA bekommt man, glaube 
ich, nur gegen NDA von ATMEL, aber den U-Boot kann man sich als 
Quellcode leicht beschaffen, da Open-Source. Der Initial-Bootloader, der 
SAM-BA oder U-Boot lädt, ist in den Datasheets oder AppNotes von Atmel 
doch als Quellcode drinne, falls man da etwas ändern möchte.

Wäre aber mal interessant zu erfahren, welches 9260er Modul Du da hast, 
das Verbauen von PullDowns wäre glatt ein KO-Kriterium.

Gruß, Ulrich

von Bernd S. (mms)


Lesenswert?

>Laut Deiner ersten Beschreibung hat der 9260 einen externen 10k PullDown
>(wer macht sowas??) an seinem Pin. Irgendwann wandelt der sich in einen
>internen PullDown von 10k und dann wird daraus ein steuerbarer PullDown.

Das CPU Board CSB737 ist gekauft worden, und auf diesem ist eben ein 
solcher 10k Pulldown widerstand installiert (Schaltplan gibt es nicht 
dazu). Ansonsten kann ich mich aber über das Board nicht beklagen.


Gruß
Bernd

von morph1 (Gast)


Lesenswert?

kurze frage, wenn das ein pull-down ist, wieso legst du nicht einfach 
3V3 an?

dann sieht der µC auch logisch high und das kannst du bequem jumpern

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.