(Split up from this question)
I'm trying to interface an Arduino with an eMMC chip to bit-bang it. eMMC uses bidirectional lines, and one of them (CMD) is first used in open-drain mode (for identifying devices on the bus) and then in push-pull mode.
The eMMC spec advises to use two pull-ups on the CMD line: a weak one for push-pull, just to prevent the bus floating, and a strong one for open-drain. The host should enable / disable the strong pull-up depending on the state machine. As I understand it I don't really need the strong one, it's just to speed up low-to-high transitions (and speed during that phase isn't that important). But if I wanted it, how would I drive it?
Here's a simplified version of my circuit (voltage regulators and lines other than CMD not shown), with a BJT where the Arduino should drive the pull-up:
But even after reading quite a bit about transistors, I'm not sure if it could work and how. I know I'm supposed to drive the BJT to saturation mode (or cut-off to disable), and that requires biasing the poles correctly (and/or let enough current flow to base?), but I'm not in the usual common-emitter configuration because I can't short to ground. Also I need to make sure the emitter voltage is above Vih (should be fine if Vce is only 0.3V).
How would I do that? Just connect a pin of the Arduino to the base, through the LSF with a pull-up? (What resistance then?) Would a FET be more appropriate here?