smbus.h File Reference


Detailed Description

Headerfile for smbus.c.

Application note:
AVR453: Smart Battery Reference Design
Documentation:
For comprehensive code documentation, supported compilers, compiler settings and supported devices see readme.html
Author:
Atmel Corporation: http://www.atmel.com
Support email: avr@atmel.com
Original author: Rob G. Fries - Apt Inc.
Revision
URL
Date

Definition in file smbus.h.

Go to the source code of this file.

Defines

#define ALARM_MODE   0x20
#define BATTERY_ADDR   0x16
#define CAPACITY_MODE   0x80
#define CHARGE_CONTROLLER_ENABLED   0x01
#define CHARGER_ADDR   0x12
#define CHARGER_MODE   0x40
#define CONDITION_FLAG   0x80
#define DISCHARGING   0x40
#define FULLY_CHARGED   0x20
#define FULLY_DISCHARGED   0x10
#define hibyte   1
#define HOST_ADDR   0x10
#define INITIALIZED   0x80
#define INTERNAL_CHARGE_CONTROLLER   0x01
#define lobyte   0
#define OVER_CHARGED_ALARM   0x80
#define OVER_TEMP_ALARM   0x10
#define PRIMARY_BATTERY   0x02
#define PRIMARY_BATTERY_SUPPORT   0x02
#define REMAINING_CAPACITY_ALARM   0x02
#define REMAINING_TIME_ALARM   0x01
#define SMB_M_CMD_ALARMWARNING   0x16
#define SMB_M_CMD_CHARGINGCURRENT   0x14
#define SMB_M_CMD_CHARGINGVOLTAGE   0x15
#define SMBerr_AccessDenied   0x04
#define SMBerr_BadSize   0x06
#define SMBerr_Busy   0x01
#define SMBerr_OK   0x00
#define SMBerr_OverUnderflow   0x05
#define SMBerr_ReservedCommand   0x02
#define SMBerr_UnknownError   0x07
#define SMBerr_UnsuptdCommand   0x03
#define SMBV_AbsSOC   14
#define SMBV_AtRate   4
#define SMBV_AtRateOK   7
#define SMBV_AtRateTTE   6
#define SMBV_AtRateTTF   5
#define SMBV_AvgCurrent   11
#define SMBV_AvgTTE   18
#define SMBV_AvgTTF   19
#define SMBV_BattMode   3
#define SMBV_BattStatus   22
#define SMBV_ChgCurrent   20
#define SMBV_ChgVoltage   21
#define SMBV_Current   10
#define SMBV_CycleCount   23
#define SMBV_DesignCap   24
#define SMBV_DesignVolt   25
#define SMBV_DeviceChem   34
#define SMBV_DeviceName   33
#define SMBV_FullChgCap   16
#define SMBV_MaxError   12
#define SMBV_MfrAccess   0
#define SMBV_MfrData   35
#define SMBV_MfrDate   27
#define SMBV_MfrName   32
#define SMBV_Opt1   0x3F
#define SMBV_Opt2   0x3E
#define SMBV_Opt3   0x3D
#define SMBV_Opt4   0x3C
#define SMBV_Opt5   0x2F
#define SMBV_RelSOC   13
#define SMBV_RemCap   15
#define SMBV_RemCapAlm   1
#define SMBV_RemTimeAlm   2
#define SMBV_RunTTE   17
#define SMBV_SerialNo   28
#define SMBV_SpecInfo   26
#define SMBV_Temperature   8
#define SMBV_Voltage   9
#define SMBvar_int   SV.SMBint
#define SMBvariables   SV.SMBvar
#define TERMINATE_CHARGE_ALARM   0x40
#define TERMINATE_DISCHARGE_ALARM   0x08

Functions

void Check50uS (void)
void InitSMBus (void)
void InitSMBvariables (void)
void MasterInsertMsg (unsigned char addr, unsigned char cmd, unsigned int data)
void SMB_CmdInterpreter (void)
void SMB_Master (void)
void SMB_RestoreBus (void)

Variables

union {
   volatile unsigned int   SMBint [29]
   volatile unsigned char   SMBvar [29][2]
SV


Define Documentation

#define ALARM_MODE   0x20

Definition at line 129 of file smbus.h.

#define BATTERY_ADDR   0x16

Definition at line 60 of file smbus.h.

#define CAPACITY_MODE   0x80

Definition at line 131 of file smbus.h.

#define CHARGE_CONTROLLER_ENABLED   0x01

Definition at line 127 of file smbus.h.

#define CHARGER_ADDR   0x12

Definition at line 59 of file smbus.h.

#define CHARGER_MODE   0x40

Definition at line 130 of file smbus.h.

#define CONDITION_FLAG   0x80

Definition at line 136 of file smbus.h.

#define DISCHARGING   0x40

Definition at line 154 of file smbus.h.

#define FULLY_CHARGED   0x20

Definition at line 155 of file smbus.h.

#define FULLY_DISCHARGED   0x10

Definition at line 156 of file smbus.h.

#define hibyte   1

Definition at line 119 of file smbus.h.

#define HOST_ADDR   0x10

Definition at line 58 of file smbus.h.

#define INITIALIZED   0x80

Definition at line 153 of file smbus.h.

#define INTERNAL_CHARGE_CONTROLLER   0x01

Definition at line 134 of file smbus.h.

#define lobyte   0

Definition at line 118 of file smbus.h.

#define OVER_CHARGED_ALARM   0x80

Definition at line 144 of file smbus.h.

#define OVER_TEMP_ALARM   0x10

Definition at line 146 of file smbus.h.

#define PRIMARY_BATTERY   0x02

Definition at line 128 of file smbus.h.

#define PRIMARY_BATTERY_SUPPORT   0x02

Definition at line 135 of file smbus.h.

#define REMAINING_CAPACITY_ALARM   0x02

Definition at line 148 of file smbus.h.

#define REMAINING_TIME_ALARM   0x01

Definition at line 149 of file smbus.h.

#define SMB_M_CMD_ALARMWARNING   0x16

Definition at line 68 of file smbus.h.

#define SMB_M_CMD_CHARGINGCURRENT   0x14

Definition at line 64 of file smbus.h.

#define SMB_M_CMD_CHARGINGVOLTAGE   0x15

Definition at line 65 of file smbus.h.

#define SMBerr_AccessDenied   0x04

Definition at line 166 of file smbus.h.

#define SMBerr_BadSize   0x06

Definition at line 168 of file smbus.h.

#define SMBerr_Busy   0x01

Definition at line 160 of file smbus.h.

#define SMBerr_OK   0x00

Definition at line 159 of file smbus.h.

#define SMBerr_OverUnderflow   0x05

Definition at line 167 of file smbus.h.

#define SMBerr_ReservedCommand   0x02

Definition at line 161 of file smbus.h.

#define SMBerr_UnknownError   0x07

Definition at line 170 of file smbus.h.

#define SMBerr_UnsuptdCommand   0x03

Definition at line 164 of file smbus.h.

#define SMBV_AbsSOC   14

Definition at line 87 of file smbus.h.

#define SMBV_AtRate   4

Definition at line 76 of file smbus.h.

#define SMBV_AtRateOK   7

Definition at line 79 of file smbus.h.

#define SMBV_AtRateTTE   6

Definition at line 78 of file smbus.h.

#define SMBV_AtRateTTF   5

Definition at line 77 of file smbus.h.

#define SMBV_AvgCurrent   11

Definition at line 84 of file smbus.h.

#define SMBV_AvgTTE   18

Definition at line 92 of file smbus.h.

#define SMBV_AvgTTF   19

Definition at line 93 of file smbus.h.

#define SMBV_BattMode   3

Definition at line 75 of file smbus.h.

#define SMBV_BattStatus   22

Definition at line 96 of file smbus.h.

#define SMBV_ChgCurrent   20

Definition at line 94 of file smbus.h.

#define SMBV_ChgVoltage   21

Definition at line 95 of file smbus.h.

#define SMBV_Current   10

Definition at line 83 of file smbus.h.

#define SMBV_CycleCount   23

Definition at line 97 of file smbus.h.

#define SMBV_DesignCap   24

Definition at line 99 of file smbus.h.

#define SMBV_DesignVolt   25

Definition at line 100 of file smbus.h.

#define SMBV_DeviceChem   34

Definition at line 107 of file smbus.h.

#define SMBV_DeviceName   33

Definition at line 106 of file smbus.h.

#define SMBV_FullChgCap   16

Definition at line 90 of file smbus.h.

#define SMBV_MaxError   12

Definition at line 85 of file smbus.h.

#define SMBV_MfrAccess   0

Definition at line 72 of file smbus.h.

#define SMBV_MfrData   35

Definition at line 108 of file smbus.h.

#define SMBV_MfrDate   27

Definition at line 102 of file smbus.h.

#define SMBV_MfrName   32

Definition at line 105 of file smbus.h.

#define SMBV_Opt1   0x3F

Definition at line 113 of file smbus.h.

#define SMBV_Opt2   0x3E

Definition at line 112 of file smbus.h.

#define SMBV_Opt3   0x3D

Definition at line 111 of file smbus.h.

#define SMBV_Opt4   0x3C

Definition at line 110 of file smbus.h.

#define SMBV_Opt5   0x2F

Definition at line 109 of file smbus.h.

#define SMBV_RelSOC   13

Definition at line 86 of file smbus.h.

#define SMBV_RemCap   15

Definition at line 88 of file smbus.h.

#define SMBV_RemCapAlm   1

Definition at line 73 of file smbus.h.

#define SMBV_RemTimeAlm   2

Definition at line 74 of file smbus.h.

#define SMBV_RunTTE   17

Definition at line 91 of file smbus.h.

#define SMBV_SerialNo   28

Definition at line 103 of file smbus.h.

#define SMBV_SpecInfo   26

Definition at line 101 of file smbus.h.

#define SMBV_Temperature   8

Definition at line 81 of file smbus.h.

#define SMBV_Voltage   9

Definition at line 82 of file smbus.h.

#define SMBvar_int   SV.SMBint

Definition at line 37 of file smbus.h.

#define SMBvariables   SV.SMBvar

Definition at line 36 of file smbus.h.

#define TERMINATE_CHARGE_ALARM   0x40

Definition at line 145 of file smbus.h.

#define TERMINATE_DISCHARGE_ALARM   0x08

Definition at line 147 of file smbus.h.


Function Documentation

void Check50uS ( void   ) 

Definition at line 760 of file smbus.c.

References SMB_Master(), and TEST50US.

void InitSMBus ( void   ) 

Definition at line 153 of file smbus.c.

References SMB_RestoreBus().

void InitSMBvariables ( void   ) 

Todo:
This can be modified to load defaults from EEPROM rather than fixed values to the SMB variables.

Todo:
Fill in current year, month, day. Values are octal

Todo:
for testing, initialized value before reaching fully charged, 6600mAh * 10727

Definition at line 1618 of file smbus.c.

References PACK_DESIGNCAPTYP, SetMaxTopAcc(), SMBV_AtRate, SMBV_BattMode, SMBV_BattStatus, SMBV_CycleCount, SMBV_MfrAccess, SMBV_MfrDate, SMBV_RemCapAlm, SMBV_RemTimeAlm, SMBV_SerialNo, SMBV_SpecInfo, and SMBvar_int.

void MasterInsertMsg ( unsigned char  addr,
unsigned char  cmd,
unsigned int  data 
)

Definition at line 301 of file smbus.c.

References TXmsg, TXmsgFull, TXmsgHead, and TXmsgQty.

void SMB_CmdInterpreter ( void   ) 

Todo:
Add code here if encryption is desired.

Todo:
Add code here if encryption is desired.

Definition at line 771 of file smbus.c.

References CurrentCmd, FastCRC(), lobyte, SetGenericTimer(), SMB_GenBusTimeout, SMB_GotCmdData, SMB_ReadCmd, SMB_SetUpReply, SMB_WriteCmd, SMBerr_UnknownError, SMBerr_UnsuptdCommand, SMBfaultTimer, SMBV_BattStatus, SMBvariables, TW_RxBuf, TW_RxBufCnt, TW_RxBufIndex, TW_TxBuf, TW_TxBufCnt, TW_TxBufIndex, TWI_CmdFlags, and UsePEC.

void SMB_Master ( void   ) 

Definition at line 694 of file smbus.c.

References FastCRC(), SMLOCK, TEST50US, TW_IDLE, TW_MTxBuf, TW_MTxBufCnt, TW_MTxBufIndex, TWISR_state, TXmsg, TXmsgEmpty, TXmsgTail, and UsePEC.

void SMB_RestoreBus ( void   ) 

Definition at line 874 of file smbus.c.

References BATTERY_ADDR, TW_IDLE, and TWISR_state.


Variable Documentation

volatile unsigned int SMBint[29]

Definition at line 52 of file smbus.h.

volatile unsigned char SMBvar[29][2]

Definition at line 52 of file smbus.h.

union { ... } SV


Generated on Mon Nov 12 15:59:59 2007 for AVR453 Smart Battery Reference Design by  doxygen 1.5.3