Hi Daniel.
No, I couldn't solve it yet.
please check whether the SPI signals are pull up on K32 side? and what is the spi baud on k32 side ?
I don't have hardware pull-ups in SPI lines and internal pullups are disabled.
SPI baudrate is 500KHz:
#define PHDRIVER_KSDK_SPI_DATA_RATE 500000U
These are my SPI Init functions (as close to the original K82F as possible):
phStatus_t phbalReg_Init(
void * pDataParams,
uint16_t wSizeOfDataParams
)
{
spi_master_config_t g_masterConfig;
if ( (pDataParams == NULL) || (sizeof(phbalReg_Type_t) != wSizeOfDataParams))
{
return (PH_DRIVER_ERROR | PH_COMP_DRIVER);
}
((phbalReg_Type_t *)pDataParams)->wId = PH_COMP_DRIVER | PHBAL_REG_KINETIS_SPI_ID;
((phbalReg_Type_t *)pDataParams)->bBalType = PHBAL_REG_TYPE_SPI;
memset(&g_masterConfig, 0, sizeof(spi_master_config_t));
g_masterConfig.enableMaster = true;
g_masterConfig.baudRate_Bps = PHDRIVER_KSDK_SPI_DATA_RATE;
g_masterConfig.dataMode = kSPI_8BitMode;
g_masterConfig.polarity = kSPI_ClockPolarityActiveHigh;
g_masterConfig.phase = kSPI_ClockPhaseFirstEdge;
g_masterConfig.direction = kSPI_MsbFirst;
g_masterConfig.outputMode = kSPI_SlaveSelectAsGpio;
g_masterConfig.pinMode = kSPI_PinModeNormal;
phbalReg_SpiInit();
#ifdef PHDRIVER_KSDK_SPI_POLLING
/* Initialize the DSPI peripheral */
SPI_MasterInit(PHDRIVER_KSDK_SPI_MASTER, &g_masterConfig, CLOCK_GetFreq(PHDRIVER_KSDK_SPI_CLK_SRC));
#else
SPI_RTOS_Init(&g_masterHandle, PHDRIVER_KSDK_SPI_MASTER, &g_masterConfig, CLOCK_GetFreq(PHDRIVER_KSDK_SPI_CLK_SRC));
#endif
return PH_DRIVER_SUCCESS;
}
static void phbalReg_SpiInit(void)
{
port_pin_config_t pinConfig =
{
.pullSelect = kPORT_PullDisable,
.slewRate = kPORT_FastSlewRate,
.passiveFilterEnable = kPORT_PassiveFilterDisable,
.driveStrength = kPORT_HighDriveStrength,
.mux = kPORT_MuxAsGpio,
};
/* SPI Configuration */
NVIC_SetPriority(PHDRIVER_KSDK_SPI_IRQ, DSPI_IRQ_PRIORITY);
/* Configure SSP pins (SCK, MOSI and MISO) */
pinConfig.pullSelect = kPORT_PullDisable;
pinConfig.mux = kPORT_MuxAlt2;
CLOCK_EnableClock(ENABLE_PORT_SSP_1);
PORT_SetPinConfig(PORT_SSP_1, FIRST_PINNUM_SSP, &pinConfig);
CLOCK_EnableClock(ENABLE_PORT_SSP_2);
PORT_SetPinConfig(PORT_SSP_2, SECOND_PINNUM_SSP, &pinConfig);
CLOCK_EnableClock(ENABLE_PORT_SSP_3);
PORT_SetPinConfig(PORT_SSP_3, THIRD_PINNUM_SSP, &pinConfig);
}
I tested another board, and NfcrdlibEx4_MIFAREClassic example is running correctly. So, I'm guessing that it may be some PN5190 EEPROM data misconfiguration? Is there any command to load/reset EEPROM data to factory defaults?
Meanwhile, I purchased PNEV5190BP and I'm trying these configurations:


I'll come back with some results.