Re: BeagleBone Black doesn't boot without serial console (10.0 release)
Mouse <[email protected]>
| Newsgroups | gmane.os.netbsd.ports.arm |
|---|---|
| Message-ID | <[email protected]> |
> From the schematic here: > https://github.com/beagleboard/BeagleBone-Black/blob/master/BBB_SCH.pdf > there is a pulldown resitor on UART0_RX input. You call it a pulldown, not a pullup, so I infer it's pulling the pin to a more-negative voltage level. In RS-232, the more negative level is marking, in which case that is not a problem; that's the correct way to pull it. But since you say > The solution is to either rebuild a kernel without DDB, or tie > UART0_RX to a +3.3V pin. I also infer that it is a logic-level signal, not an RS-232-level signal. (3.3V is, just barely, within the defined range for RS-232, but 0V is not.) I would say this is not unreasonable; the designers presumably intended for external level-shifter hardware to be added, which would always drive RXD one way or the other, even with the external cable disconnected. In this case, I can see three possibilities. (1) There is level-shifter hardware in use, to adapt between logic levels and RS-232 levels, but the cable is being disconnected between the level shifter and the BeagleBone. In this case, the correct thing to do is to disconnect at the connector that's using RS-232 levels rather than at the one that's using logic levels. (2) There is no level-shifter hardware in use; the other end is also using logic-level signals. In this case there's no clear "correct"; you're not using standard serial-line signals, so arranging compatibility is on you. A lower-resistance pullup might help, but might also cause trouble. Replacing the pulldown with a pullup might help. Adding a buffer gate and disconnecting on the far side of it could also help. (3) There is no level-shifter hardware in use; the other end is designed around RS-232 voltage levels. In this case, you're lucky it ever works at all. Feeding logic level signals to an RS-232 port produces undefined results, unless you're using very odd logic levels, because you need at least six volts of swing to get defined levels out of RS-232 - more if you want any sort of noise immunity - and that six volts has to be symmetric around zero. In this case, the correct thing to do is, of course, to add level-shifter hardware. (You may also need inverters on the logic-level side; in most of the cases I've encountered, the level-shifter hardware and the logic-level serial port use opposite logic levels.) /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML [email protected] / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B