PCS DSPI always active hi

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

PCS DSPI always active hi

661 次查看
pietrodicastri
Senior Contributor II

Good morning

I have a remarkable behaviour for the DSPI. Using a KV58 tower .. The example from the SDK is just working normally. I can select the CS0 polarity.
I have my application using a driver SPI just as a copy paste. And the CS0 is always active hi.
I am looking over and over again ... I do not find a reason for it.
If someone wants to dedicate a little time I can send the files or the full project.
I am thankful for every support

Pietro

0 项奖励
回复
2 回复数

653 次查看
pietrodicastri
Senior Contributor II
Hello me agan
I have a remarkable fix and question.
That's the code for the initialization of the DSPI

static bool MCP23S17_DspiInit(void)
{
dspi_master_config_t masterConfig;
uint32_t srcClock_Hz;

CLOCK_EnableClock( kCLOCK_Spi0 );
DSPI_Deinit( MCP23S17_DSPI_BASE );

DSPI_MasterGetDefaultConfig(&masterConfig);

masterConfig.whichCtar = MCP23S17_DSPI_CTAR;
masterConfig.ctarConfig.baudRate = MCP23S17_SPI_BAUDRATE;
masterConfig.ctarConfig.bitsPerFrame = MCP23S17_SPI_BITS_PER_FRAME;
masterConfig.ctarConfig.cpol = MCP23S17_SPI_CPOL;
masterConfig.ctarConfig.cpha = MCP23S17_SPI_CPHA;
masterConfig.ctarConfig.direction = MCP23S17_SPI_SHIFT_DIR;
masterConfig.ctarConfig.pcsToSckDelayInNanoSec = MCP23S17_DELAY_NS;
masterConfig.ctarConfig.lastSckToPcsDelayInNanoSec = MCP23S17_DELAY_NS;
masterConfig.ctarConfig.betweenTransferDelayInNanoSec = MCP23S17_DELAY_NS;

/* Default PCS for init; actual PCS is chosen via configFlags later */
masterConfig.whichPcs = MCP23S17_DSPI_PCS0;
masterConfig.pcsActiveHighOrLow = kDSPI_PcsActiveLow;

masterConfig.enableContinuousSCK = false;
masterConfig.enableRxFifoOverWrite = false;
masterConfig.enableModifiedTimingFormat = false;
masterConfig.samplePoint = kDSPI_SckToSin0Clock;

srcClock_Hz = MCP23S17_DSPI_CLK_FREQ;
if (srcClock_Hz == 0U)
{
return false;
}

DSPI_MasterInit(MCP23S17_DSPI_BASE, &masterConfig, srcClock_Hz);
SPI0->MCR |= (0x003F0000);

return true;
}


The surprise here is the line
SPI0->MCR |= (0x003F0000);

needs to be there .. After the inizialization despite the explicit setting to have a low active CS the CS is always active high. But the procedure is the same in the SDK. So
explain me what is wrong.

Thank You
Pietro
0 项奖励
回复

510 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @pietrodicastri 

Please refer to the PCSIS field in the SPIx_MCR register. When a bit is set to 0, the inactive state of PCSx is low, and high indicates the active state. Also note that the effect of this bit only takes place when the module is enabled. Ensure that this bit is configured correctly before enabling the SPI interface.
Alice_Yang_0-1766472188581.png

 

BR

Alice

 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2266964%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EPCS%20DSPI%20%E5%A7%8B%E7%BB%88%E5%A4%84%E4%BA%8E%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81%20hi%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2266964%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%97%A9%E4%B8%8A%E5%A5%BD%3C%2FP%3E%3CP%3E%E6%88%91%E5%AF%B9%20DSPI%20%E7%9A%84%E8%A1%8C%E4%B8%BA%E9%9D%9E%E5%B8%B8%E8%B5%9E%E8%B5%8F%E3%80%82%E4%BD%BF%E7%94%A8%20KV58%20%E5%A1%94......SDK%20%E4%B8%AD%E7%9A%84%E7%A4%BA%E4%BE%8B%E8%BF%90%E8%A1%8C%E6%AD%A3%E5%B8%B8%E3%80%82%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%89%E6%8B%A9%20CS0%20%E7%9A%84%E6%9E%81%E6%80%A7%E3%80%82%3CBR%20%2F%3E%E6%88%91%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%BD%BF%E7%94%A8%E7%9A%84%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%20SPI%20%E5%8F%AA%E6%98%AF%E5%A4%8D%E5%88%B6%E7%B2%98%E8%B4%B4%E3%80%82%E8%80%8C%20CS0%20%E5%A7%8B%E7%BB%88%E5%A4%84%E4%BA%8E%E6%BF%80%E6%B4%BB%E7%8A%B6%E6%80%81%E3%80%82%3CBR%20%2F%3E%E6%88%91%E7%9C%8B%E4%BA%86%E4%B8%80%E9%81%8D%E5%8F%88%E4%B8%80%E9%81%8D......%E6%88%91%E6%89%BE%E4%B8%8D%E5%88%B0%E5%8E%9F%E5%9B%A0%E3%80%82%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%E6%9C%89%E4%BA%BA%E6%84%BF%E6%84%8F%E8%8A%B1%E4%B8%80%E7%82%B9%E6%97%B6%E9%97%B4%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E5%8F%91%E9%80%81%E6%96%87%E4%BB%B6%E6%88%96%E6%95%B4%E4%B8%AA%E9%A1%B9%E7%9B%AE%E3%80%82%3CBR%20%2F%3E%E6%88%91%E6%84%9F%E8%B0%A2%E6%AF%8F%E4%B8%80%E4%BB%BD%E6%94%AF%E6%8C%81%3C%2FP%3E%3CP%3E%E7%9A%AE%E8%80%B6%E7%BD%97%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2266976%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20PCS%20DSPI%20always%20active%20hi%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2266976%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91%E6%98%AF%3CBR%20%2F%3E%EF%BC%8C%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%E4%BA%86%E4%B8%8D%E8%B5%B7%E7%9A%84%E4%BF%AE%E5%A4%8D%E5%92%8C%E9%97%AE%E9%A2%98%E3%80%82%3CBR%20%2F%3E%E8%BF%99%E6%98%AF%20DSPI%20%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E4%BB%A3%E7%A0%81%3CBR%20%2F%3E%3CBR%20%2F%3Estatic%20bool%20MCP23S17_DspiInit(void)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Edspi_master_config_t%20masterConfig%3B%3CBR%20%2F%3Euint32_t%20srcClock_Hz%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3ECLOCK_EnableClock(%20kCLOCK_Spi0%20)%3B%3CBR%20%2F%3EDSPI_Deinit(%20MCP23S17_DSPI_BASE%20)%3B%3CBR%20%2F%3E%3CBR%20%2F%3EDSPI_MasterGetDefaultConfig(%26amp%3BmasterConfig)%3B%3CBR%20%2F%3E%3CBR%20%2F%3EmasterConfig.whichCtar%20%3D%20MCP23S17_DSPI_CTAR%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.baudRate%20%3D%20MCP23S17_SPI_BAUDRATE%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.bitsPerFrame%3D%20MCP23S17_SPI_BITS_PER_FRAME%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.cpol%20%3D%20MCP23S17_SPI_CPOL%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.cpha%20%3D%20MCP23S17_SPI_CPHA%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.direction%20%3D%20MCP23S17_SPI_SHIFT_DIR%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.pcsToSckDelayInNanoSec%3D%20MCP23S17_DELAY_NS%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.lastSckToPcsDelayInNanoSec%3D%20MCP23S17_DELAY_NS%3B%3CBR%20%2F%3EmasterConfig.ctarConfig.betweenTransferDelayInNanoSec%3D%20MCP23S17_DELAY_NS%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%2F*%20%E5%90%AF%E5%8A%A8%E6%97%B6%E7%9A%84%E9%BB%98%E8%AE%A4%20PCS%EF%BC%9B%E5%AE%9E%E9%99%85%20PCS%20%E7%94%B1%E7%A8%8D%E5%90%8E%E9%80%9A%E8%BF%87%20configFlags%20%E9%80%89%E6%8B%A9%20*%2F%3CBR%20%2F%3EmasterConfig.whichPcs%20%3D%20MCP23S17_DSPI_PCS0%3B%3CBR%20%2F%3EmasterConfig.pcsActiveHighOrLow%3D%20kDSPI_PcsActiveLow%3B%3CBR%20%2F%3E%3CBR%20%2F%3EmasterConfig.enableContinuousSCK%3D%20false%3B%3CBR%20%2F%3EmasterConfig.enableRxFifoOverWrite%3D%20false%3B%3CBR%20%2F%3EmasterConfig.enableModifiedTimingFormat%3D%20false%3B%3CBR%20%2F%3EmasterConfig.samplePoint%20%3D%20kDSPI_SckToSin0Clock%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3EsrcClock_Hz%20%3D%20MCP23S17_DSPI_CLK_FREQ%EF%BC%9B%3CBR%20%2F%3Eif%20(srcClock_Hz%20%3D%3D%200U)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ereturn%20false%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3EDSPI_MasterInit(MCP23S17_DSPI_BASE%2C%26amp%3BmasterConfig%2C%20srcClock_Hz)%EF%BC%9B%3CBR%20%2F%3ESPI0-%26gt%3BMCR%20%7C%3D%20(0x003F0000)%3B%3CBR%20%2F%3E%3CBR%20%2F%3Ereturn%20true%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%BF%99%E9%87%8C%E7%9A%84%E6%83%8A%E5%96%9C%E6%98%AF%3CBR%20%2F%3ESPI0-%26gt%3BMCR%20%7C%3D%20(0x003F0000)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%BF%99%E4%B8%80%E8%A1%8C%E9%9C%80%E8%A6%81%E5%AD%98%E5%9C%A8%20..%E5%9C%A8%E5%88%9D%E5%A7%8B%E5%8C%96%E4%B9%8B%E5%90%8E%EF%BC%8C%E5%B0%BD%E7%AE%A1%E6%98%8E%E7%A1%AE%E8%AE%BE%E7%BD%AE%E4%B8%BA%E4%BD%8E%E7%94%B5%E5%B9%B3%E6%BF%80%E6%B4%BB%20CS%EF%BC%8C%E4%BD%86%20CS%20%E5%A7%8B%E7%BB%88%E4%B8%BA%E9%AB%98%E7%94%B5%E5%B9%B3%E6%BF%80%E6%B4%BB%E3%80%82%E4%BD%86%20SDK%20%E4%B8%AD%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%98%AF%E4%B8%80%E6%A0%B7%E7%9A%84%E3%80%82%E5%9B%A0%E6%AD%A4%EF%BC%8C%3CBR%20%2F%3E%EF%BC%8C%E7%BB%99%E6%88%91%E8%A7%A3%E9%87%8A%E4%B8%80%E4%B8%8B%E5%88%B0%E5%BA%95%E5%93%AA%E9%87%8C%E5%87%BA%E4%BA%86%E9%97%AE%E9%A2%98%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%B0%A2%E8%B0%A2%3CBR%20%2F%3EPietro%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2267988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20PCS%20DSPI%20always%20active%20hi%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2267988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F20031%22%20target%3D%22_blank%22%3E%40pietrodicastri%3C%2FA%3E%3C%2FP%3E%0A%3CDIV%3E%E8%AF%B7%E5%8F%82%E8%80%83%20SPIx_MCR%20%E5%AF%84%E5%AD%98%E5%99%A8%E4%B8%AD%E7%9A%84%20PCSIS%20%E5%AD%97%E6%AE%B5%E3%80%82%E5%BD%93%E6%9F%90%E4%BD%8D%E8%AE%BE%E7%BD%AE%E4%B8%BA%200%20%E6%97%B6%EF%BC%8CPCSx%20%E7%9A%84%E9%9D%9E%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81%E4%B8%BA%E4%BD%8E%E7%94%B5%E5%B9%B3%EF%BC%8C%E9%AB%98%E7%94%B5%E5%B9%B3%E8%A1%A8%E7%A4%BA%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81%E3%80%82%E8%BF%98%E9%9C%80%E6%B3%A8%E6%84%8F%E7%9A%84%E6%98%AF%EF%BC%8C%E8%AF%A5%E4%BD%8D%E7%9A%84%E4%BD%9C%E7%94%A8%E4%BB%85%E5%9C%A8%E6%A8%A1%E5%9D%97%E5%90%AF%E7%94%A8%E6%97%B6%E6%89%8D%E4%BC%9A%E5%8F%91%E7%94%9F%E3%80%82%E7%A1%AE%E4%BF%9D%E5%9C%A8%E5%90%AF%E7%94%A8%20SPI%20%E6%8E%A5%E5%8F%A3%E5%89%8D%E6%AD%A3%E7%A1%AE%E9%85%8D%E7%BD%AE%E8%AF%A5%E4%BD%8D%E3%80%82%3C%2FDIV%3E%0A%3CDIV%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Alice_Yang_0-1766472188581.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Alice_Yang_0-1766472188581.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F371019iE25562D3F679BF2A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Alice_Yang_0-1766472188581.png%22%20alt%3D%22Alice_Yang_0-1766472188581.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E7%88%B1%E4%B8%BD%E4%B8%9D%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E