SPI Data Transfer and Read of more than 2 bytes using LPC55S69

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SPI Data Transfer and Read of more than 2 bytes using LPC55S69

814 Views
SrinathVelavan
Contributor III

Hi, 

I am using the LPC55S69 EVK to transfer 5 Bytes of Data (Address + Data) to a slave device (display) and expect to read 2 bytes of data. 

I understand that the MasterTransferBlocking() code of SPI driver files enables us to send only 2 bytes of data at a time and read only 2 bytes likewise. How do I overcome this issue? 

The Usermanual says, Data transmits of 4 to 16 bits supported directly. Larger frames supported by software. Can anyone explain how to achieve this?

We reconfigured the MasterTransferNonBlocking() code to send data over 2 bytes but we are not able to read the expected data from the slave device over the MISO line.

 

TIA

Labels (1)
0 Kudos
Reply
4 Replies

799 Views
Pavel_Hernandez
NXP TechSupport
NXP TechSupport

Hello, my name is Pavel, and I will be supporting your case, I reviewed your questions, could you tell me what kind of display you are using? I reviewed the example and there is a buffer where you can modify to send 4 bytes, the example has 64 bytes for sent.

Best regards,
Pavel

0 Kudos
Reply

716 Views
SrinathVelavan
Contributor III
The Usermanual says, Data transmits of 4 to 16 bits supported directly. Larger frames supported by software.
Any idea how to do this? Can it be done using Blocking or NonBLocking SPI code.??
0 Kudos
Reply

717 Views
SrinathVelavan
Contributor III

Sorry for the delayed response. I am using an EVE TFT Display by NHD. You are right, the example sends 64 bytes of data and the buffer size can be altered. But, The example doesnot read the data using the TransferNonBlocking() function. It sends the data to slave and gets an acknowledgement. 

I need to write 2 bytes of data (0x0198) to a 3 byte address(0x30202c). This cannot be done using the Transferblocking code provided by the drivers, as it can send only maximum of 2 bytes at a time. Hence, I opted to use TransferNonBlocking() code, I am now able to send the data along with the address but since there is no proper code provided for reading data from a register, I am not able to implement the nonblocking code to read. Any examples or code snippets for reading 2 bytes of data from an address greater than 2 bytes will be much helpful. 

TIA

0 Kudos
Reply

669 Views
Pavel_Hernandez
NXP TechSupport
NXP TechSupport

Hello, I understand the following, let me know if I´m wrong.

Need to send a transfer of 5 Bytes of Data (Address + Data) to the TFT, something like the image.

Pavel_Hernandez_0-1699395850466.png

Then you mentioned having a problem because the code example sent 2 bytes at a time.

That is related to this comment on the reference manual.

Pavel_Hernandez_1-1699396070210.png

I suggest change the data transmit to 8 bits, in that way you can achieve the 5-byte changing the buffer on the code to 5 rather than 64, after the transfer you can change to read. 

Best regards,
Pavel