AMS Bill of Materials
AMS PCB Layout Rev 1.0
AMS Schematic Rev 1.0
AMS Rev 1.0 Errata
PICkit3 Programming Manual
2013 BMS Firmware Analysis Memo
Firmware Hex(zipped)
Firmware Source Code(zipped)
PICkit3 Programmer Application v3.10
AMS 2014 DxDesigner Source (zipped)

The AMS, or Accumulator Management System, is an integrated cell-monitoring system responsible for reporting cell parameters back to the PacMan, and for controlling the bypass circuit as part of cell balancing during pack charging. The AMS may be thought of as a piece of drop-in hardware rather than a software-oriented system. Although it contains a microcontroller, the firmware performs a fixed set of functions that cannot be altered or configured. One AMS board is attached to each cell.

The entirety of the board’s status can be observed and controlled by three LEDs and one pushbutton. The power LED (D4, labelled “PWR”) is green, and is on as long as the voltage regulator is functioning. The activity LED (D3, labelled “ACT”) is yellow, and blinks at a rate of 0.5-1.0 Hz to indicate that the firmware in the uC is operating properly and is not hung up. The bypass LED (D2, labelled “BYP”) indicates that the cell’s bypass circuit is active. The “RESET” button (SW1) resets the uC in case of code failure. The uC may also be reset remotely by placing 3.3VDC ( >1mA) across pins 1 (-) and 6 (+) of either J2 or J3 on the board. This activates a phototransistor which shorts the same connection as the pushbutton.

Having a full uC on each board may seem overkill, but there are several reasons for this. First, the legacy design incorporated more functionality that was moved off-board in this year’s design. Second, the cell data must be aggregated and digitized at some lower level than the central SCADA. It is impractical to run 32 voltage sense lines, 40 temperature sense lines, and 28 bypass control lines to the cells from the central SCADA system. Digitizing the data at the lowest level (i.e. on each AMS board) results in the fewest interconnections. A bus communication line is really is the only choice, as point-to-point communication lines take just as many wires as the analog sense lines. From an economic standpoint, the cost of a uC is significantly lower even than discreet A/D ICs with digital communication interfaces. Furthermore, discreet A/Ds are limited in address space. For these reasons it was advantageous to keep the uC in the design.

The firmware must be loaded on the uC before it is installed in the pack. This is done by way of a PICkit3 in-circuit programming cable connected to header J1 on the AMS board. Instructions for programming are found in the 2013 PICkit 3 Manual (link above).

The firmware assigns each board a default address of 0x00. Each AMS board in the pack must have this default address changed to a unique 8-bit address. The address must be an even number, as required by I2C protocol, and it must not overlap with any other devices on the PacMan board. We recommend using a logical ordering of successive board addresses such as 0x02, 0x04, 0x06, etc for sanity, and labelling the board in some fashion once the address is set. The addresses will be retained even if power is lost or the uC is reset.

Because each AMS board sources its power from the cell to which it is attached, the ground reference is not consistent from board to board. Therefore any communication interface which leaves the board must be electrically isolated. Both the I2C signals and the remote reset signals are isolated between the pin header and the uC.

Leave a Reply

Your email address will not be published. Required fields are marked *