You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
None of the power nets are connected. The board was powered with 12 V, and the correct values were measured on the 3V3 and 12V nets. The 5 V converter is not populated on this version of the BMS carrier, since it is not required for validating the new features of this revision.
With the kill switch connector shorted, toggling PB9 (kill switch enable) causes the on-board relay to close and open. Similarly, reading the value of PA15 (kill switch monitor) while toggling PB9 correctly displays the state of the kill switch. So the basic functions of the HSD and LV relay are working.
When attempting the MCP23008 smoke test, the GPIOs are not toggled. By measuring the I2C wires with an oscilloscope, I noticed the clock signal was constantly 3.3 V. I eventually found that the pin on the mezzanine connector on the BMS carrier was not soldered to the PCB. I quickly checked the other pins on that side and found a few other pins that were not soldered to the PCB, including the current sense MOSI. After soldering these pins, the MCP23008 smoke test correctly toggles and reads the values of the GPIOs. The only issue is that after the GPIOs are initialized, the first time the values are read, they are wrong.
Here's the output showing the incorrect values being read.
Version: 298bdac-dirty
[0] projects/smoke_mcp23008/src/main.c:100: Testing GPIO initialization...
[0] projects/smoke_mcp23008/src/main.c:101: Initializing all pins out...
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 0 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 1 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 2 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 3 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 4 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 5 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 6 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:62: State for pin 7 set and read correctly
[0] projects/smoke_mcp23008/src/main.c:104: GPIO initialization complete. Now beginnin
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 0 incorrectly
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 1 incorrectly
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 2 incorrectly
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 3 incorrectly
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 4 incorrectly
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 5 incorrectly
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 6 incorrectly
[0] projects/smoke_mcp23008/src/main.c:83: State for pin 7 incorrectly
[0] projects/smoke_mcp23008/src/main.c:87: GPIO state = low