Serial port interface for microcontroller embedded into integrated power meter Mr. Borisav Jovanović, Prof. dr. Predrag Petković, Prof. dr. Milunka Damnjanović, Faculty of Electronic Engineering Nis, Serbia Niš, September 2007-1 -
INTRODUCTION Modern power meters relays on single chip devices referred to as integrated power meter (IPM). Proposed three-phase IPM integrates all primary functional blocks required to implement solid-state energy meter. The chip performs the precision computations necessary to measure: active, reactive energy in four quadrants for all three-phases, instantaneous frequency for each phase, RMS currents and voltages, active, reactive and apparent power and power factor. Niš, September 2007-2 -
INTRODUCTION Fig.1 Architecture of the Integrated Power-Meter IPM is a mixed signal circuit consisting of analog and digital signal processing blocks (Fig.1). The analog part of IPM contains Sigma-Delta AD converters for current and voltage channels, Band-Gap voltage reference and PLL circuits. The digital part is composed of digital filters, digital signal processing block (DSP) and microcontroller unit together with integrated peripherals. Niš, September 2007-3 -
THE MICROCONTROLLER UNIT OVERVIEW MCU operates at 4.194 MHz. Instruction set is compatible with 8052 microcontrollers. One-byte instructions are performed in a single cycle. Processing throughput of more than 4 MIPS. Fig.2 Microcontroller unit memory map Memory areas: program memory, implemented as internal 8kB SRAM block; external data memory, 2 kb SRAM memory block which also resides on chip; internal data memory shared between Special Function Register and 256B RAM Niš, September 2007-4 -
THE MICROCONTROLLER UNIT OVERVIEW The MCU peripherals: three 8-bit wide digital in-out ports two programmable UART modules serial port interface (SPI) for communication with external EEPROM memories LCD driver circuits capable to support up to 168 pixels LCD real-time clock In AMIS CMOS 0.35μm technology we don t have available on-chip non-volatile memory blocks. Therefore, external EEPROM devices had to be used together with the Integrated Power Meter In the special programming mode, the IPM has ability to receive MCU program through special UART input pin and store it into external EEPROM memory through SPI pins. After resetting MCU, in the initialization mode, program memory (internal 8kB SRAM block) is automatically loaded from external EEPROM memory through SPI pins. Niš, September 2007-5 -
SERIAL PORT INTERFACE The interface between MCU and EEPROM is designed as an I2C-like serial port interface.the hardware module dedicated for this purpose is named MASTER SPI. The communication between MCU and the external EEPROM requires data transfer during chip initialization, programming and normal operation mode. Fig.3 MASTER SPI interface Only two pins are required: SDA for data and SCL for clock. The serial clock frequency is 100 khz. Internal communication with MCU employs two 8-bit Special Function Registers: EEDATA and EECTRL that are embedded into MASTER SPI block. Niš, September 2007-6 -
SERIAL PORT INTERFACE Bit position Name 7 Error Illegal command received 6 Busy Serial Data Bus is busy Description 5 Rx_ack Acknowledge received from EEPROM 4 Tx_ack Acknowledge transmitted to EEPROM Table 1. EECTRL register content 3:0 Cmd(3: 0) 0 No operation 2 Receive a byte from EEPROM and send ACK 3 Transmit a byte to EEPROM 5 Issue a STOP sequence 6 Receive a byte from EEPROM and do not send ACK 9 Issue a START sequence Niš, September 2007-7 -
SERIAL PORT INTERFACE Fig. 4 EECTRL(3:0)=1001 Issue a START sequence Fig.5 EECTRL(3:0)=0101 Issue a STOP sequence Writing data into four least significant bits of EECTRL register commences the MASTER SPI actions. Niš, September 2007-8 -
MCU PROGRAMMING AND INITIALIZATION The main blocks are: MASTER SPI; UART; Finite State Machine (FSM) 8192-byte SRAM memory block 13-bit COUNTER that defines the address for SRAM Fig. 6 The part of chip dedicated for EEPROM programming and chip initialization Niš, September 2007-9 -
MCU PROGRAMMING AND INITIALIZATION s t a r t w ri t dev. address e high mem. addr. low mem. addr. data byte 1 data byte 32 101 0 xxx 0AAA a a a a a 2 1 0 c c c c c k k k k k Fig. 7 The structure of one data package sent to the EEPROM during programming mode a c k s t o p During programming mode all data received from UART block are serially transmitted in form of 32-byte data packages through SDA pin to the EEPROM device. The 32-byte package begins with start bit, followed by device address byte, high memory address byte, low memory address byte, 32 data bytes and ends by stop bit. Bytes are separated by acknowledge bit received from EEPROM Niš, September 2007-10 -
MCU PROGRAMMING AND INITIALIZATION Fig.8 Data package during SRAM initialization mode Chip initialization begins after MCU reset. The FSM starts the communication with a dummy write operation (one with no data bytes) to load the EEPROM address counter. The LSB in the second device address byte signifies read operation. After receiveing 8192 bytes from EEPROM, FSM terminates the read operation. Niš, September 2007-11 -
SIMULATION AND SYNTHESIS The serial port interface as well as the whole digital part of a chip was described in VHDL. Behavioral model in VHDL is created for I2C EEPROM 24LC64 which is after used in test-benches for SPI verification. Digital synthesis was performed by Cadence tool named BuildGates. Logical verification is carried out in NCsim digital circuit simulator The used standard cell technology is AMIS CMOS 0.35μm. Digital block Area (gates) MASTER SPI 554.73 FSM 465.29 UART 291.25 COUNTER 68.98 8192 SRAM 50096.00 Table 2. Area of digital blocks Niš, September 2007-12 -
SIMULATION AND SYNTHESIS Fig. 9 EEPROM read operation Niš, September 2007-13 -
CONCLUSION MASTER SPI dedicated for communication with external EEPROM device has I2C-like interface that operates at 100kHz. External EEPROM is used for chip programming, SRAM program memory initialization and also for storing the important measurement results gathered during chip normal operating mode. MASTER SPI can be programmed by 8052 microcontroller through only two 8-bit Special Function Registers EEDATA and EECTRL MASTER SPI as well as the whole digital part of a IPM system-on-chip is coded in VHDL. The code was verified by simulations and synthesized by Cadence tools. AMI Semiconductor CMOS 0.35μm standard cell technology was used for chip implementation. Niš, September 2007-14 -