PSoC™ 6 Forum Discussions
Issue with using user pipe on PSoC 6
I already have the pipe set up and the endpoints registered according to CE223820 example code.
On CM0+ I call this function every 32ms:
CM4_IPC_CALLBACK_ENCODE_AUDIO is 2, which corresponds to the index of the callback function that I am calling on CM4.
Here is the definition for pT_ipcSendToCm4()
On CM4 this callback function gets called
I have a global int named i which is initialized to 0.
If I have the following code in the callback function:
I see the light on the device flashing blue and green, which is as expected, since i is incremented every time we send a message from CM0+.
However, if I have this code in the callback function:
And this code in the main loop of CM4:
The light on the device stays green and does not change, as if i is not being changed at all. I tested changing different global variables inside an ipc pipe callback function. I observed that the changes to the variable are reflected in the callback function but nowhere else within the scope of CM4.
Why is this happening? Is there something different about the IPC pipe interrupt from other interrupts? How is the memory being handles in this case?
UPDATE: I worked around this issue by declaring all of the memory on CM0 and passing pointers to CM4. So all the memory that M4 uses are statically declared on M0.
Show LessWhere can I find the CY8C62 reference manual. I cannot find it on the Infineon website.
I want to compare the periphals with other microcontrollers. Does anyone know how the peripherals compare with the XMC series of microcontrollers?
Show LessHi,
I am developing a BLE application CY8CKIT-062-BLE board, trying to implement BLE DFU.
I followed the application note "CE216767", the manual guided me firstly to program App0 through PSoC creator, then using CySmart to update App1 by BLE. I can successfully follow this flow, and App1 works normally.
However, for mass production, I want to use wire to program App1 for the initial programming of the products.
I tried to use PSoC creator to program App0 first, then also use PSoC creator to program App1. But after the programming of App1, App1 is not working. Then I push the Reset button on the board, but still, the App1 is not working.
So, my question is: is it possible to both program App0 and App1 without using Cysmart? Could you please let me know how to do that?
Thank you very much for your reading!
Looking forward to your help and suggestions.
Best regards,
Jiabin
Show Less
Device is CYBLE-416045-02, sometimes two consecutive I2C transactions fail. Happens with (Write then read) and (Write then Write) cases.
Pseudo code:
cy_stc_scb_i2c_master_xfer_config_t transfer;
uint8_t writeBuffer[1UL] = { subAddress };
transfer.slaveAddress = i2cAddress;
transfer.buffer = writeBuffer;
transfer.bufferSize = 1;
transfer.xferPending = true; /* Do not generate Stop
Cy_SCB_I2C_MasterWrite(SCB1, &transfer, context);
xSemaphoreTake(i2c_sem);// wait for CY_SCB_I2C_MASTER_WR_CMPLT_EVENT callback
Cy_SCB_I2C_MasterRead(); //returns CY_SCB_I2C_MASTER_NOT_READY
If CMPLT_EVENT was received, how can a master not be ready ?
I found if I wait 20uS after a MASTER_NOT_READY, it works. But I cannot explain why I need to waste that time.
Show Less
Dear Experts.
Using CY8CKIT-062-WiFi-BT (PsoC6 WiFi-BT Pioneer Kit), i'm testing to use CSD Capsense & CSDADC functions at the same time.
CAPSENSE™ Middleware Library 3.0: High-level Functions (infineon.github.io)
With reference to the above, I am testing by switching Capsese and CSDADC.
I checked the mode conversion and CSDADC was read normally.
However, CapSense does not work properly.
I'm try to fix everything, it doesn't work.
Please help if there are any mistakes or areas that need to be corrected.
***
This is a project created by adding CSDADC and SARADC to the CAPSENSE_Buttons_and_Slider example.
(File Attached)
CSDADC: P1_2, P1_3, P1_4
SARADC: P10_0, P10_1, P10_4, P10_5
CAPSENSE: BTN: P8_1, P8_2,
Slider : P8_3~7
thank you
Show LessI have two PSoC 6 kits ( PSoC 62 and PSoC 64). I aim to read and write on an SD card from the PSoC controller. Both boards have SD card holders, but I can not find an example of interfacing with it.
Please share the link.
Show LessHi everyone,
We do have a custom board with PSoC63 on it, using, among other components, an I2C Master.
For a twisted setup, I'd like to use a Scan_ADC component, sampling on the same PSOC6 pins as our existing I2C master pins. The below picture explains better my needs :
The Pin_1_SCL and Pin_2_SDA are defined as below, mapped on P0[2] and P0[3] respectively :
However, at build time, I'm facing the following errors :
Digital Placement...
Warning: placer did not place the following components:
\ADC_1:SARMUX\:SARMUX
Digital Routing...
Error: pft.M0094: Connections on the pin 'P0[3]' require conflicting HSIOM settings 'AMUXA, ACT_7' which cannot be resolved.
Error: pft.M0094: Connections on the pin 'P0[2]' require conflicting HSIOM settings 'AMUXB, ACT_7' which cannot be resolved.
Any idea how to help the routing ?
Enclosed is a project sample extract to demonstrate what I'm trying to implement.
PS : I'm using the 3.1.5 PDL version, assuming it's the latest.
Thank you very much for your help,
Regards,
/Pierre
Show LessHi All,
I am planning to interface a TFT LCD display having SPI interface with emWin library using PSOC6 on PSOC creator IDE.
I have gone through the example CE223726 – PSoC 6 TFT Display Interface with EmWin Graphics Library. , which uses 8-bit parallel interface and not SPI. The display has the ILI9488 as the driver IC and it has support for emWin.
- Can anyone help me on how to proceed with changing the example code's parallel interface to SPI ?
- Is there any update for PDL for supporting SPI in GraphicLCDIntf_1 component ?
regards,
Vinu
Show LessTested it with CY8CKIT-062-BLE and CY8CKIT-062-WIFI-BT,
Modus ToolBox and VSCode.
-------
https://github.com/Infineon/mtb-example-psoc6-dual-cpu-ipc-pipes or
project creator
CY8CKIT-062-BLE
Peripherals
Dual-CPU IPC Pipes
Right out of the box, VSCode detects two problems in the code for cm0p:
main.c app-cm0p
identifier "NvicMux7_IRQn" is undefined C/C++(20)[Ln60, col 28]
struct "<unnamed>" has no field "cm0pSrc" C/C++(136)[Ln61, col 5]
surprisingly, the compiler does not detect the errors, compiles the code
and runs on the target kit without detectable errors...
I am not well versed using Eclipse, but, it does not seem to be aware of the
problems and it compiles fine too. (same tool chain)
the lines with the issue are:
const cy_stc_sysint_t mcwdt_int_cfg =
{
.intrsrc=(IRQn_Type) NvicMux7_IRQn, // 7
.cm0psrc=srss_interrupt_mcwdt_0_IRQn, // 19
.intrPriority = 2 //
};
The problem in the first line can be bypassed by replacing it with:
.intrsrc=(IRQn_Type) 7
The second line issue is a bit more convoluted...
After all the #ifdefine lines are resolved, the stucture cy_stc_sysint_t
presented to main.c (app_cm0p) does not have a cm0pSrc field.
it appeared that it was missing the definitions in
#include "cy8c6347bzi_bld53.h" (CY8CKIT-062-BLE)
but, adding it to the #include list made no difference.
----------------------------------
Another unrelated problem in IPC code:
the structure definition for ipc_msg_t
lines 104-111 of ipc_communication.h
is:
typedef struct __attribute__((packed, aligned(4)))
{
uint8_t client_id; <-- is this supposed to be uint32_t ???
uint8_t cpu_status;
uint16_t intr_mask;
uint8_t cmd;
uint32_t value;
} ipc_msg_t ;
Cy_IPC_Pipe_RegisterCallback(...) expects uint32_t
and the documentation says it is an uint32_t.
Show Less
Starting a project using CY8C6245LQI-S3D42. This does not seem to be supported by PSOC Creator, so I tried installing ModusToolbox. However I cannot create even a simple project. (I tried multiple BSPs and starting projects)
The IDE fails at Step 5 in Quick Start Guide. I get the following error when using the Project Creator 1.40 (File>New> Modustoolbox application>... etc)
BSP: CY8CPROTO-062S3-4343W
Template Application(s): ADC basic
Application(s) Root Path: C:/Users/******/Documents/gitDev/******
Press 'Create' to create the selected application(s).
Collecting application data...
Info: The following entered on the command line will create the exact same project as that created with the GUI tool:
C:/Users/*****/ModusToolbox/tools_2.4/project-creator/project-creator-cli.exe --board-id CY8CPROTO-062S3-4343W --board-uri https://github.com/cypresssemiconductorco/TARGET_CY8CPROTO-062S3-4343W --board-commit latest-v2.X --app-id mtb-example-psoc6-adc-basic --app-uri https://github.com/cypresssemiconductorco/mtb-example-psoc6-adc-basic --app-commit latest-v1.X --cypress-tools C:/Users/******/ModusToolbox/tools_2.4 --target-dir C:/Users/*******/Documents/gitDev/******* --user-app-name ADC_basic --output-for-machine --use-modus-shell
==============================================================================
= Cloning 'mtb-example-psoc6-adc-basic' =
==============================================================================
Cloning https://github.com/cypresssemiconductorco/mtb-example-psoc6-adc-basic into C:/Users/*******/Documents/gitDev/******* directory...
env git clone --progress --origin cypress https://github.com/cypresssemiconductorco/mtb-example-psoc6-adc-basic ADC_basic
Cloning into 'ADC_basic'...
fatal: invalid branch name: init.defaultBranch =
Project 'mtb-example-psoc6-adc-basic' failed to create.
'git clone' failed.
Failed to create and export 'ADC_basic' application.
Show Less