DSPI Master Transfer in KSDK 2.0?

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

DSPI Master Transfer in KSDK 2.0?

跳至解决方案
721 次查看
mooreken
Contributor II

Hello, I was wondering if anyone else had run into this kind of issue working the DSPI_MasterTransferBlocking function in the latest version of the KSDK. I am working on with a SPI EEPROM chip and a MK22FN512VLL12, essentially I have a function that accepts a pointer to a struct, the size of that struct in bytes, and the starting location in EEPROM to write to.

 

uint8_t read_eeprom( void *setup, uint16_t size, uint16_t addr)

 

The DSPI_MasterTransferBlocking function needs the SPI_Type pointer and a pointer to the dspi_transfer_t struct. This struct is created in the following fashion.

 

dspi_transfer_t eeprom_command;

eeprom_command.txData = (uint8_t *) calloc(200, sizeof(uint8_t));

eeprom_command.rxData = (uint8_t *) calloc(200, sizeof(uint8_t));

 

Next, I populate the eeprom transfer data (txData) with the contents of the read command and the address.

 

eeprom_command.txData[0] = 0x03; //read command

eeprom_command.txData[1] = (uint8_t) (addr >> 8);

eeprom_command.txData[2] = (uint8_t) (addr & 0x00FF);

 

Now here's where I have my first question, the dataSize field in the dspi_transfer_t struct. I assume this pertains to both the transfer data and the received data. Or does this field only for the txData length?

 

eeprom_command.dataSize = size + 3? or just 3? 

 

Next is the configFlags field, set this to (kDSPI_MasterCtar1 | kDSPI_MasterPcs1) based off hardware. Then I enable the EEPROM chip select and send the command.

 

DSPI_MasterTransferBlocking(SPI1, &eeprom_command);

 

However, I read 0xFF in all the rxData locations... I have a KSDK 1.3 version of this code as well, so I used that to write data and used 2.0 to read that data back.

 

Any help is appreciated!

标签 (1)
标记 (3)
0 项奖励
1 解答
479 次查看
mooreken
Contributor II

Found it, looks like my config flags were off.

在原帖中查看解决方案

0 项奖励
1 回复
480 次查看
mooreken
Contributor II

Found it, looks like my config flags were off.

0 项奖励