add
This commit is contained in:
13
Customer/MOBIS/PRK3_(ADAS_Parking3)/Code/Mobis빌드시사용모듈.txt
Normal file
13
Customer/MOBIS/PRK3_(ADAS_Parking3)/Code/Mobis빌드시사용모듈.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MCU
|
||||
IIC
|
||||
WDG -> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϴ<EFBFBD> <20><>
|
||||
ICCOM
|
||||
SPI
|
||||
PORT
|
||||
GPT
|
||||
DIO
|
||||
|
||||
|
||||
|
||||
19.4.0 SPI<50><49> <20><><EFBFBD><EFBFBD><EFBFBD>ϴٰ<CFB4> <20><>Ƽ<EFBFBD><C6BC> <20>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD>.
|
||||
68
Customer/MOBIS/PRK3_(ADAS_Parking3)/Code/PMIC_IIC_new.txt
Normal file
68
Customer/MOBIS/PRK3_(ADAS_Parking3)/Code/PMIC_IIC_new.txt
Normal file
@@ -0,0 +1,68 @@
|
||||
void PMIC_I2C_1Byte_Write_with_crc(uint8 slaveIdx, uint16 regAdd, uint8 data)
|
||||
{
|
||||
uint8 targetPage = (uint8)((regAdd >> 8) & 0xFF);
|
||||
uint8 targetAddr = (uint8) (regAdd & 0xFF);
|
||||
uint8 txBuf[3]; /* [Address, Data, CRC] */
|
||||
uint8 crcInput[4]; /* Maximum 4 bytes for Read-back CRC */
|
||||
uint8 slaveAddr = (uint8)CddIic_GaaSlaveConfig[slaveIdx].ulSlaveAddress;
|
||||
|
||||
/* 1. Page Switching Logic with CRC8 */
|
||||
if (g_pmic_current_page[slaveIdx] != targetPage)
|
||||
{
|
||||
uint8 pgRxBuf[2];
|
||||
|
||||
txBuf[0] = 0x00; /* Page Selector Register */
|
||||
txBuf[1] = targetPage; /* This is 0x01 */
|
||||
|
||||
crcInput[0] = (slaveAddr << 1) | 0x00U;
|
||||
crcInput[1] = txBuf[0];
|
||||
crcInput[2] = txBuf[1];
|
||||
txBuf[2] = crc8(crcInput, 3);
|
||||
|
||||
/* [Spec] Page Write - 1st */
|
||||
IIC_Reset();
|
||||
CddIic_Ch0Write(&txBuf[0], 3, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
|
||||
/* [Spec] Page Write - 2nd */
|
||||
IIC_Reset();
|
||||
CddIic_Ch0Write(&txBuf[0], 3, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
|
||||
/* [Spec] Page Read-back Verification */
|
||||
IIC_Reset();
|
||||
CddIic_Ch0WriteRead(&txBuf[0], 1, &pgRxBuf[0], 2, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
|
||||
crcInput[0] = (slaveAddr << 1) | 0x00U;
|
||||
crcInput[1] = 0x00;
|
||||
crcInput[2] = (slaveAddr << 1) | 0x01U;
|
||||
crcInput[3] = pgRxBuf[0];
|
||||
|
||||
if ((crc8(crcInput, 4) == pgRxBuf[1]) && (pgRxBuf[0] == targetPage))
|
||||
{
|
||||
g_pmic_current_page[slaveIdx] = targetPage;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_pmic_current_page[slaveIdx] = 0xFF;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* 2. Actual Data Write with CRC8 */
|
||||
/* RE-INITIALIZE txBuf and crcInput with correct values (targetAddr=0x07, data=0x84) */
|
||||
txBuf[0] = targetAddr; /* 0x07 */
|
||||
txBuf[1] = data; /* 0x84 - <20><><EFBFBD>ڷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */
|
||||
|
||||
/* Calculate CRC specifically for this write operation */
|
||||
crcInput[0] = (slaveAddr << 1) | 0x00U;
|
||||
crcInput[1] = txBuf[0]; /* 0x07 */
|
||||
crcInput[2] = txBuf[1]; /* 0x84 */
|
||||
txBuf[2] = crc8(crcInput, 3);
|
||||
|
||||
IIC_Reset();
|
||||
/* Expecting Packet: SlaveID + 0x07 + 0x84 + CRC */
|
||||
CddIic_Ch0Write(&txBuf[0], 3, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
}
|
||||
70
Customer/MOBIS/PRK3_(ADAS_Parking3)/Code/PMIC_IIC_old.txt
Normal file
70
Customer/MOBIS/PRK3_(ADAS_Parking3)/Code/PMIC_IIC_old.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
void PMIC_I2C_1Byte_Write_with_crc(uint8 slaveIdx, uint16 regAdd, uint8 data)
|
||||
{
|
||||
uint8 targetPage = (uint8)((regAdd >> 8) & 0xFF);
|
||||
uint8 targetAddr = (uint8)(regAdd & 0xFF);
|
||||
uint8 txBuf[3]; /* [Address, Data, CRC] */
|
||||
uint8 crcInput[4]; /* Maximum 4 bytes for Read-back CRC */
|
||||
uint8 slaveAddr = (uint8)CddIic_GaaSlaveConfig[slaveIdx].ulSlaveAddress;
|
||||
|
||||
/* 1. Page Switching Logic with CRC8 */
|
||||
if (g_pmic_current_page[slaveIdx] != targetPage)
|
||||
{
|
||||
uint8 pgRxBuf[2]; /* [Data, CRC] */
|
||||
|
||||
/* Prepare Page Change Packet: Reg 0x00, Target Page */
|
||||
txBuf[0] = 0x00; /* Page Selector Register */
|
||||
txBuf[1] = targetPage;
|
||||
|
||||
/* CRC for Write: SlaveAddr(W) + RegAddr + Data */
|
||||
crcInput[0] = (slaveAddr << 1) | 0x00U;
|
||||
crcInput[1] = txBuf[0];
|
||||
crcInput[2] = txBuf[1];
|
||||
txBuf[2] = crc8(crcInput, 3);
|
||||
|
||||
/* [Spec] 1st Page Write with CRC */
|
||||
IIC_Reset();
|
||||
CddIic_Ch0Write(&txBuf[0], 3, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
|
||||
/* [Spec] 2nd Page Write with CRC */
|
||||
IIC_Reset();
|
||||
CddIic_Ch0Write(&txBuf[0], 3, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
|
||||
/* [Spec] Page Read-back Verification with CRC */
|
||||
IIC_Reset();
|
||||
/* Use WriteRead (Repeated Start) to read Reg 0x00 */
|
||||
CddIic_Ch0WriteRead(&txBuf[0], 1, &pgRxBuf[0], 2, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
|
||||
/* [Modified] Verify Read-back CRC: SlaveAddr(W) + RegAddr + SlaveAddr(R) + Received Data */
|
||||
crcInput[0] = (slaveAddr << 1) | 0x00U; /* Slave(W) */
|
||||
crcInput[1] = 0x00; /* Register Address (Page Selector) */
|
||||
crcInput[2] = (slaveAddr << 1) | 0x01U; /* Slave(R) */
|
||||
crcInput[3] = pgRxBuf[0]; /* Received Page Value */
|
||||
|
||||
if ((crc8(crcInput, 4) == pgRxBuf[1]) && (pgRxBuf[0] == targetPage))
|
||||
{
|
||||
g_pmic_current_page[slaveIdx] = targetPage;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_pmic_current_page[slaveIdx] = 0xFF; /* Switch failed or CRC error */
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* 2. Actual Data Write with CRC8 */
|
||||
txBuf[0] = targetAddr;
|
||||
txBuf[1] = data;
|
||||
|
||||
/* CRC for Write: SlaveAddr(W) + RegAddr + Data */
|
||||
crcInput[0] = (slaveAddr << 1) | 0x00U;
|
||||
crcInput[1] = txBuf[0];
|
||||
crcInput[2] = txBuf[1];
|
||||
txBuf[2] = crc8(crcInput, 3);
|
||||
|
||||
IIC_Reset();
|
||||
CddIic_Ch0Write(&txBuf[0], 3, &CddIic_GaaSlaveConfig[slaveIdx]);
|
||||
I2C_Communication_Complete();
|
||||
}
|
||||
Reference in New Issue
Block a user