Files
2_Customer/MOBIS/PRK3_(ADAS_Parking3)/Issue/Close_SPI 드라이브 스트렝스 설정/MOBIS Code.txt
2025-09-30 01:01:01 +09:00

64 lines
3.2 KiB
Plaintext

#if 1 /*SPI Drive Strength*/
#define PFC_MCU_BASE (uint32)0xE6050000UL
#define PFC_PORT_GRP0 (0x00000080UL) /* Port Group0 */ -> 이거 잘 못 된 듯. (0x00000000UL) 이여야 하지 않나요?
#define PFC_PORT_GRP1 (0x00000800UL) /* Port Group1 */
#define PFC_RW_OFFSET (uint32)0x00000000UL
#define PFC_DRV0CTRL0_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0080U))
#define PFC_DRV0CTRL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0080U))
#define PFC_DRV1CTRL0_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0084U))
#define PFC_DRV2CTRL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0088U))
#define PFC_DRV3CTRL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x008CU))
#define PFC_DRV0CTRL0_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0080U)
#define PFC_DRV0CTRL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0080U)
#define PFC_DRV1CTRL0_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0084U)
#define PFC_DRV2CTRL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0088U)
#define PFC_DRV3CTRL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x008CU)
#define PMMR0 *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP0 + 0x0000U))
#define PMMR1 *((volatile uint32 *)(0xE6050800UL))
/* Added by ChoMyungJae */
volatile uint32 *regval;
#endif
#if 1
PMMR0 = ~(PFC_DRV0CTRL0_RW & ~((uint32)0x70000000));
regval = (volatile uint32 *)PFC_DRV0CTRL0_RW_ADD;
*regval = (PFC_DRV0CTRL0_RW & ~((uint32)0x70000000));
PMMR0 = ~(PFC_DRV0CTRL0_RW | ((uint32)0x30000000)); -> 0x10000000(가이드대로 원복)
regval = (volatile uint32 *)PFC_DRV0CTRL0_RW_ADD;
*regval = (PFC_DRV0CTRL0_RW | ((uint32)0x30000000)); -> 0x10000000(가이드대로 원복)
PMMR0 = ~(PFC_DRV1CTRL0_RW & ~((uint32)0x00077777));
regval = (volatile uint32 *)PFC_DRV1CTRL0_RW_ADD;
*regval = (PFC_DRV1CTRL0_RW & ~((uint32)0x00077777));
PMMR0 = ~(PFC_DRV1CTRL0_RW | ((uint32)0x00033333)); -> 0x00011111(가이드대로 원복)
regval = (volatile uint32 *)PFC_DRV1CTRL0_RW_ADD;
*regval = (PFC_DRV1CTRL0_RW | ((uint32)0x00033333)); -> 0x00011111(가이드대로 원복)
PMMR1 = ~(PFC_DRV0CTRL1_RW & ~((uint32)0x00777700));
regval = (volatile uint32 *)PFC_DRV0CTRL1_RW_ADD;
*regval = (PFC_DRV0CTRL1_RW & ~((uint32)0x00777700));
PMMR1 = ~(PFC_DRV0CTRL1_RW | ((uint32)0x00333300));
regval = (volatile uint32 *)PFC_DRV0CTRL1_RW_ADD;
*regval = (PFC_DRV0CTRL1_RW | ((uint32)0x00333300));
PMMR1 = ~(PFC_DRV3CTRL1_RW & ~((uint32)0x00077777));
regval = (volatile uint32 *)PFC_DRV3CTRL1_RW_ADD;
*regval = (PFC_DRV3CTRL1_RW & ~((uint32)0x00077777));
PMMR1 = ~(PFC_DRV3CTRL1_RW | ((uint32)0x00011111));
regval = (volatile uint32 *)PFC_DRV3CTRL1_RW_ADD;
*regval = (PFC_DRV3CTRL1_RW | ((uint32)0x00011111));
PMMR1 = ~(PFC_DRV2CTRL1_RW & ~((uint32)0x70000000));
regval = (volatile uint32 *)PFC_DRV2CTRL1_RW_ADD;
*regval = (PFC_DRV2CTRL1_RW & ~((uint32)0x70000000));
PMMR1 = ~(PFC_DRV2CTRL1_RW | ((uint32)0x10000000));
regval = (volatile uint32 *)PFC_DRV2CTRL1_RW_ADD;
*regval = (PFC_DRV2CTRL1_RW | ((uint32)0x10000000));
#endif