2024-02-25 07:08 PM
I used STM32H563 transmit a message through I3C CCC direct.
I create a new CCC command "0xA0".Control send the command to target.But target will enter
HAL_I3C_ER_IRQHandler
Uesd the general command "0x89".The target can receive this command. The Buffer is same.
Solved! Go to Solution.
2024-02-27 02:18 AM
Hello @Sunwaz ,
You can't create a new CCC command because these commands are pre-defined.
You should use the available commands for the CCC direct transfert.
Thank you!
Foued
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-25 07:35 PM
I need to send a buffer to the target via the contorller's I3C CCC direct.
2024-02-27 02:18 AM
Hello @Sunwaz ,
You can't create a new CCC command because these commands are pre-defined.
You should use the available commands for the CCC direct transfert.
Thank you!
Foued
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-27 11:11 PM
Hi @Foued_KH
Thanks a lot!
And i have another question: can the target of I3C send data to the master of I2C?My system doesn't necessarily have an I3C controller.
2024-02-28 12:08 AM
The I3C bus only supports I2C targets.
You can configure the I3C bus :
Foued
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-02-29 12:19 AM
Hi @Foued_KH
When the controller sends data to the target, if the sending fails, the system will enter a hardfault.
The reason is that the hi3c->ptrTxFunc pointer will be cleared in the I3C_ErrorTreatment function, but the hi3c->ptrTxFunc null pointer will be called in the retransmission function, resulting in an error, which is unreasonable.
2024-02-29 03:10 AM - edited 2024-02-29 03:13 AM
For communication : I3C controller with I3C target or I2C target on I3C bus :
Make sure that you are using the dynamic address first for the I3C target after the dynamic address process ( pure bus ) or the static address of the I2C target ( mixed bus ) before starting the Private/Direct transfers.
For more details about I3C communication, you can check :
I3C Application Note : Introduction to I3C for STM32H5 series MCU - Application note
I3C WIKI : Getting started with I3C - stm32mcu
You can also check the available examples in the STM32H5 CubeFW STM32Cube_FW_H5_V1.1.1\Projects\NUCLEO-H503RB\Examples\I3C
Foued
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-03-07 02:44 AM
Hello @Foued_KH
My target got dynamic Address . My controller send "HAL_I3C_Ctrl_IsDeviceI3C_Ready",the target will enter frame error.Error code is 0x100000.
I dont understand.
2024-03-07 08:59 PM
I know the cause,ST's library only supports fixed-length receptions. If Tx size is not amount Rx size , it will generate
HAL_I3C_ERROR_SIZE error code.