- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We are sending data using MasterWriteBuf API of I2C.
Its API is defined below.
uint8 I2C_MasterWriteBuf(uint8 slaveAddress, uint8 * wrData, uint8 cnt, uint8 mode)
According to this API, since wrData is uint8, it is 256 pieces.
.
We would like to transmit more than 256 data.
Is it possible to realize it?
Solved! Go to Solution.
- Labels:
-
PSoC 5LP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, you can modify the WriteBuf function to use uint16 type as argument for cnt. You might also need to modify the implementation of the function to support a higher number of bytes to be transmitted. It might also affect whatever protocol you are defining over I2C. For example, some requires to provide the size of the frame before transmitting the data.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In general, you need to put a DMA into your PSOC fabric and point it to the I2C and have it transfer the bytes.
You have a hill to climb, it won't be easy, but it is worth it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, you can modify the WriteBuf function to use uint16 type as argument for cnt. You might also need to modify the implementation of the function to support a higher number of bytes to be transmitted. It might also affect whatever protocol you are defining over I2C. For example, some requires to provide the size of the frame before transmitting the data.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I understand that it is useless just to change the API function to uint16 as it is.
We will consider a configuration using DMA.
Thank you.