Part Number:LP5569
How Via I2c we are sending data to SRAM ?
According to Manual ,
1. The compile tool (Lasm.exe) will generate Hex file
2.Then, copy the hex file to the array table
3.upload the data to the SRAM by the below coding.
void load_SRAM()
{
int i,j;
MAP_I2C_setSlaveAddress(EUSCI_B1_BASE,0x40); //Device global setting
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x2F); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x48); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x02); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x54); //send register data
MAP_I2C_setSlaveAddress(EUSCI_B1_BASE, 0x32); //load hex to SRAM in U1
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4b); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x09); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4c); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x78); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4d); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0xa8); //send register data
for(j=0; j<16; j++)
{
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4F); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,j); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE,0x50); //send register address
for(i=0; i<32; i++)
MAP_I2C_masterSendMultiByteNext(EUSCI_B1_BASE,table_32[i+j*32]);//send register data
}
MAP_I2C_setSlaveAddress(EUSCI_B1_BASE, 0x33); //load hex to SRAM in U2
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4b); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x09); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4c); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x7b); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4d); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0xaa); //send register data
for(j=0; j<16; j++)
{
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4F); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,j); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE,0x50); //send register address
for(i=0; i<32; i++)
MAP_I2C_masterSendMultiByteNext(EUSCI_B1_BASE,table_33[i+j*32]);//send register data
}
MAP_I2C_setSlaveAddress(EUSCI_B1_BASE, 0x34); //load hex to SRAM in U3
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4b); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x09); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4c); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x7b); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4d); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0xab); //send register data
for(j=0; j<16; j++)
{
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4F); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,j); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE,0x50); //send register address
for(i=0; i<32; i++)
MAP_I2C_masterSendMultiByteNext(EUSCI_B1_BASE,table_34[i+j*32]);//send register data
}
MAP_I2C_setSlaveAddress(EUSCI_B1_BASE, 0x35); //load hex to SRAM in U5
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4b); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x09); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4c); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x77); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4d); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0xa6); //send register data
References www.ti.com
for(j=0; j<16; j++)
{
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x4F); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,j); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE,0x50); //send register address
for(i=0; i<32; i++)
MAP_I2C_masterSendMultiByteNext(EUSCI_B1_BASE,table_35[i+j*32]);//send register data;
}
MAP_I2C_setSlaveAddress(EUSCI_B1_BASE, 0x32); //SET U1 as the clk out
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x2F); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x49); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x3d); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x08); //send register data
MAP_I2C_setSlaveAddress(EUSCI_B1_BASE, 0x40); //Run all the engine
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x02); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0x00); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x02); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0xa8); //send register data
MAP_I2C_masterSendMultiByteStart(EUSCI_B1_BASE, 0x01); //send register address
MAP_I2C_masterSendMultiByteFinish(EUSCI_B1_BASE,0xa8); //send register data
}
What address we are using to pass the data Patterns to SRAM ?