I have a PIC18F2455 running at the approx 5V of the USB. I want to achieve two-way communication with a 3V device.
There are only two wires: GND plus a data line. The system is symmetrical. Either device can talk first, and they take it in turns to transmit. When listening, they provide a weak pull-up. When talking, they source with about 3K of internal resistance and sink with between about 200R and 3K (it varies from one to the next). There is no datasheet available; this is just what I have observed.
I have previously done one-way communication off a 3V supply using only two states, sourcing through 3K8 to mean Talk:High and Listen, and sinking through 200R for Talk:Low. This works fine, but reading the returning signal would be a problem on some of them, because they can't pull the voltage down far enough. (Increasing the source resistance much more causes the waveform to distort and the signal to fail. It looks like there's some capacitance in there too.) Using a PIC at 3V, I imagine it would work to use one I/O pin with 3K in series, and switch the pin between output and input as required.
It looks like the kind of circuit I use to reduce the level needs to have a tristate output. I have plenty of pins on the PIC, so there would be nothing wrong with using two pins for output control and another one for the input. However, I would like to make the additional circuitry as simple as possible. I have no experience with this kind of thing and no idea what the name of it would be. May I have a few suggestions on this?
There are only two wires: GND plus a data line. The system is symmetrical. Either device can talk first, and they take it in turns to transmit. When listening, they provide a weak pull-up. When talking, they source with about 3K of internal resistance and sink with between about 200R and 3K (it varies from one to the next). There is no datasheet available; this is just what I have observed.
I have previously done one-way communication off a 3V supply using only two states, sourcing through 3K8 to mean Talk:High and Listen, and sinking through 200R for Talk:Low. This works fine, but reading the returning signal would be a problem on some of them, because they can't pull the voltage down far enough. (Increasing the source resistance much more causes the waveform to distort and the signal to fail. It looks like there's some capacitance in there too.) Using a PIC at 3V, I imagine it would work to use one I/O pin with 3K in series, and switch the pin between output and input as required.
It looks like the kind of circuit I use to reduce the level needs to have a tristate output. I have plenty of pins on the PIC, so there would be nothing wrong with using two pins for output control and another one for the input. However, I would like to make the additional circuitry as simple as possible. I have no experience with this kind of thing and no idea what the name of it would be. May I have a few suggestions on this?