How does CM4 and CM0 of PSOC6 communicate? Is there an example in modus?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Frank_vec
Level 4
Level 4
Distributor - Zenitron(GC)
50 replies posted First like received First comment on blog

1. 我现在计划将CM0用于常规服务,运行RTOS,并将CM4用于数据采集和处理。如果不运行RTOS,CM4将在大多数时间处于休眠状态,这可以吗?
2. 如上,如果CM0是RTOS ,CM0 不带系统,则二者可以通过信号量等通讯吗
3. modus有CM4 和CM0通讯例程吗
4. 非常感谢

 

1. I now plan to use CM0 for regular services, run RTOS, and use CM4 for data collection and processing. If you do not run RTOS, the CM4 will sleep most of the time. Is this OK?
2. As above, if CMOS is RTOS and CMOS does not have a system, can they communicate via semaphores, etc
3. Does modus have CM4 and CM0 communication routines
4. Thank you very much

0 Likes
1 Solution
Len_CONSULTRON
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

Frank,

The PSoC6 with two cores (CM0 and CM4) use a special protocol to communication between each other.  It is called IPC (Inter-Processor Communication).  

Most of the examples available for the PSoC6 that use BLE use IPC to communicate.  In these examples the CM0 core handles the BLE communication HW and the CM4 receives notification of incoming BLE messages and sends BLE message requests using the IPC.

The general goal is that the CM0 processes the BLE messages independently even while the CM4 core is asleep or awake intensely processing the messages for the application phase of the project.  This method virtually assures that all BLE messages can be received in a timely manner.

Part if the IPC protocol does use semaphores.  They also use a concept called "pipes" as shared memory between the two cores where messages can be passed.

Here is a specific example projects of IPC communication: 

mtb-example-psoc6-dual-cpu-ipc-sema 

mtb-example-psoc6-dual-cpu-ipc-pipes 

I believe the following Application Note describes some of the IPC mechanisms involved:

AN215656_PSoC_6_MCU_Dual-CPU_System_Design-ApplicationNotes-v10_00-EN.pdf 

 

Len
"Engineering is an Art. The Art of Compromise."

View solution in original post

0 Likes
2 Replies
Len_CONSULTRON
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

Frank,

The PSoC6 with two cores (CM0 and CM4) use a special protocol to communication between each other.  It is called IPC (Inter-Processor Communication).  

Most of the examples available for the PSoC6 that use BLE use IPC to communicate.  In these examples the CM0 core handles the BLE communication HW and the CM4 receives notification of incoming BLE messages and sends BLE message requests using the IPC.

The general goal is that the CM0 processes the BLE messages independently even while the CM4 core is asleep or awake intensely processing the messages for the application phase of the project.  This method virtually assures that all BLE messages can be received in a timely manner.

Part if the IPC protocol does use semaphores.  They also use a concept called "pipes" as shared memory between the two cores where messages can be passed.

Here is a specific example projects of IPC communication: 

mtb-example-psoc6-dual-cpu-ipc-sema 

mtb-example-psoc6-dual-cpu-ipc-pipes 

I believe the following Application Note describes some of the IPC mechanisms involved:

AN215656_PSoC_6_MCU_Dual-CPU_System_Design-ApplicationNotes-v10_00-EN.pdf 

 

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
LeoMathews
Moderator
Moderator
Moderator
First question asked 500 replies posted 100 solutions authored

Hi @Frank_vec 

Thread was locked due to inactivity for long time, you can continue the discussion on the topic by opening a new thread with reference to the locked one. The continuous discussion in an inactive thread may mostly be unattended by community users.

Thanks and Regards,
Leo

0 Likes