A battery system, comprising: a battery module comprising a plurality of cell groups connected in series, each comprising a plurality of cells (BC1 - BC4) connected in series; a plurality of integrated circuits (3A, 3L, 3N) each provided to a corresponding cell group of the battery module and configured to perform detection of terminal voltages of the cells (BC1 - BC4) in the corresponding cell group, and to perform diagnosis; and a battery controller that, along with being configured to issue commands to the plurality of integrated circuits, is further configured to receive results of detection and results of diagnosis by the plurality of integrated circuits (3A, 3L, 3N); wherein the battery system comprises a writable non-volatile memory that is configured to store data specifying usage environment of the battery module, including a maximum voltage or a maximum current of the battery module and history data based upon operation history of the battery module, characterized in that at least a first storage block and a second storage block for storing the data specifying the usage environment and the history data are set in a storage region of the non-volatile memory; if, among the first and the second storage blocks (1118, 1120) in the non-volatile memory, a storage block that has been written later is the second storage block, then, when reading out data from the non-volatile memory, the controller is configured to read out data stored in the second block; and the controller being further configured to decide whether or not this data that has been read out is normal, and, if it has been decided that the data that has been read out is normal, then, among the first and the second storage blocks (1118, 1120), the controller is configured to perform next writing of data into the first storage block, that is different from the storage block from which the data was read out; and wherein, if it has been decided that the data that has been read out from the second storage block in the non-volatile memory is anomalous, then the controller is configured to perform the next writing of data to the non-volatile memory to the second storage block, that is the same as the block from which the data that it was decided was anomalous was read out, or to a third storage block that is further set in the non-volatile memory a battery module comprising a plurality of cell groups connected in series, each comprising a plurality of cells (BC1 - BC4) connected in series; a plurality of integrated circuits (3A, 3L, 3N) each provided to a corresponding cell group of the battery module and configured to perform detection of terminal voltages of the cells (BC1 - BC4) in the corresponding cell group, and to perform diagnosis; and a battery controller that, along with being configured to issue commands to the plurality of integrated circuits, is further configured to receive results of detection and results of diagnosis by the plurality of integrated circuits (3A, 3L, 3N); wherein the battery system comprises a writable non-volatile memory that is configured to store data specifying usage environment of the battery module, including a maximum voltage or a maximum current of the battery module and history data based upon operation history of the battery module, characterized in that at least a first storage block and a second storage block for storing the data specifying the usage environment and the history data are set in a storage region of the non-volatile memory; if, among the first and the second storage blocks (1118, 1120) in the non-volatile memory, a storage block that has been written later is the second storage block, then, when reading out data from the non-volatile memory, the controller is configured to read out data stored in the second block; and the controller being further configured to decide whether or not this data that has been read out is normal, and, if it has been decided that the data that has been read out is normal, then, among the first and the second storage blocks (1118, 1120), the controller is configured to perform next writing of data into the first storage block, that is different from the storage block from which the data was read out; and wherein, if it has been decided that the data that has been read out from the second storage block in the non-volatile memory is anomalous, then the controller is configured to perform the next writing of data to the non-volatile memory to the second storage block, that is the same as the block from which the data that it was decided was anomalous was read out, or to a third storage block that is further set in the non-volatile memory