M90e32AS spi communication

hi sir,
i am using arduino uno. i am working on the M90E32AS energy metering ic. from the forum i got the example program for read the data from the register. but i dont know how to right in the register.can you please provide me some example.

actually i tried to read the PHASE A RMS voltage from the D9 register. i can read the register but what ever the value i am getting its not a proper value. i am getting the value like a garbage values.
can any one please tell me how to read the data from that register (D9) and how to calibrate the value of this register.

can you please tell me this ic will work with a single phase supply also. if it’s possible means can you please explain it to me.

program:

#include <SPI.h>

#define PM0 7 //Mode control 0
#define PM1 8 //Mode control l
#define CS 10 //ChipSelect
#define DATAOUT 11 //MOSI
#define DATAIN 12 //MISO
#define SPICLOCK 13 //Clock

void setup() {
pinMode(CS, OUTPUT);
pinMode(PM1, OUTPUT);
pinMode(PM0, OUTPUT);
digitalWrite(CS, HIGH);
digitalWrite(PM1, HIGH);
digitalWrite(PM0, HIGH);

SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV16); // slow the SPI bus down 16/16 = 1 Mhz
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE3);

Serial.begin(9600);
}

void loop() {

byte commandByte1 = B10000000; // start bit, 5 bit “x”, and first two address bits 00
byte commandByte2 = B01111000; // address bits 78H = 0111 1000

byte commandByte5 = B00001101; // address bits 0Dh = 0000 1101
byte phaseA_voltage_rms = B11011001; // address bits D9h
byte phaseB_voltage_rms = B11011010; // address bits DAh
byte phaseC_voltage_rms = B11011011; // address bits DBh

byte commandByte3 = B00000000;
byte commandByte4 = B00000000;

/* ************************************************************************/

digitalWrite(CS, LOW);
delayMicroseconds(100);

receiveByte1 = SPI.transfer(commandByte1);
byte receiveByte6 = SPI.transfer(phaseA_voltage_rms);
receiveByte3 = SPI.transfer(commandByte3);
receiveByte4 = SPI.transfer(commandByte4);

delayMicroseconds(100);
delay(50);
Serial.print("receiveByte3 ");
Serial.println(receiveByte3, BIN);
delay(50);
Serial.print("receiveByte4 ");
Serial.println(receiveByte4, BIN);
delay(50);
digitalWrite(CS, HIGH);

delay(50);

Serial.println();
Serial.println();
/* **************************************************************************/

delay(2000);

}

regards
Arun Kumar.N
7373664351