As part of the Control of Mobile Robotics class offered through Cousera, the students are building robots based around the BeagleBone Black. The robot has 5 infrared distance sensors and 2 reflectance sensors used for odometry. These sensors are connected via voltage dividers to pins 33, 35, 36, 37, 38, 39, and 49 of P9, and are powered from the same power supply used to power the BeagleBone Black. The System Manual has a rather explicit warning:
NOTE: DO NOT APPLY VOLTAGE TO ANY I/O PIN WHEN POWER IS NOT SUPPLIED TO THE BOARD. IT WILL DAMAGE THE PROCESSOR AND VOID THE WARRANTY.
NO PINS ARE TO BE DRIVEN UNTIL AFTER THE SYS_RESET LINE GOES HIGH.
My concern is the current arrangement would allow the sensors to begin driving the pins before the SYS_RESET line goes high; however, I am a software guy just starting down the hardware path. Thus far many in the class have been using the robot without issue. Is my concern invalid?
If everything is driven form the same power source, even with voltage dividers or regulators, can we assume that turning on all devices at the same time, with one power switch, is safe or do we need to somehow put a delay into powering on everything but the BBB board?
Thanks Gerald. That is exactly the response I was expecting and exactly the feeling I had. Never really like playing Russian roulette myself. Do you see any issue with powering the sensors via a voltage regulator like http://www.pololu.com/product/2098 that can be turned on via a pin on the BBB once it is up and running?
The way I read the manual and understand Gerald is that it isn’t safe any more than it is safe to play Russian roulette because you don’t always get shot. As Gerald said, you just might get lucky and not blow anything… until you do.
On a related note: If my sensors are buffered and gated to sys_resetn am I safe if the BBB powers down a few ms before the rest? My circuit watches the 3.3V regulator output and when it falls away the power for the entire circuit is killed as well but it takes 5-9ms for the power controller to notice and react to the condition. My buffers are connected to SYS_RESETN via a schmidt-inverter driving the /OE gates for the pins.
You are fine. Reset is no the issue. Power is. The fact that the power is removed makes everything safe. Reset is an easy way to make sure the board is powered up and provides a logic level indication of that fact…