2018-12-15

Looking back at the post history, and it appears that I am quite the Chatty Cathy this month.

Lots of progress being made.  First order of business: I screwed up the naming in a bunch of places.  Instead of referring to the expansion board as VSPB (Vic’s Serial and Power Board) I referred to it as VPSB (Vic’s Power Serial Board).  Well it’s easier to rename it than to change all of the references, so going forward it’s officially the VPSB.  GitHub repository for the various scripts related to control of the VPSB: https://github.com/vic-simkus/VPSB/.

Controlling the VPSB processor from Linux (or any host OS) is done via two means: GPIO pins and I2C.  I2C control is not yet implemented.  GPIO control is implemented.  The VPSB monitors three pins for change.  Change is defined as transition from high to low or from low to high.  The ENABLE pin going high turns on the power to the IO board(s) and enables the RS232 drivers.  Conversely, ENABLE pin going low turns off the power and disabled the RS232 drivers.  On reset, the ENABLE pin is low.  Pins AUX1 and AUX2 are reserved for future use.

It took a bit head scratching to the get Linux to give up control of the three pins.  Everything has changed since last I messed around with Linux on BeagleBone Black.  I guess we’re no longer doing dynamically managed ‘capes’.  Below are the list of pins and their assignments:

BBB Pin Our Tag Description
P9_27 AUX1 Auxiliary pin #1.
P8_39 AUX2 Auxiliary pin #2
P8_40 ENABLE Enable pin

In order to assert control over them we had to disable the various ‘overlays’ (it’s all part of the device tree malarkey that is simply too much to go into detail) that had claimed them.  Now I could have opened up the spreadsheet detailing what pin does what, but I had already done the research once, the decision had already been made, so I chose to just disable everything that we will not be using as part of this project.

Adding the following to  /boot/uEnv.txt disables everything except for the eMMC which we do need.

disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
disable_uboot_overlay_wireless=1
disable_uboot_overlay_adc=1

I also created a startup script so that the pins are automatically configured at boot.

So it all seems to work so far.  Last system to test is the RS232 communication between the IO boards and Linux.  Should finish that tonight.

Leave a Reply