PSoC™ 6 Forum Discussions
My project is set up with local git. It is self contained so it does not use the share folder. It works... actually it builds without errors. I still get some weird stuff when I program my custom board but that's for another post. I renamed the main project in Eclipse (I made a backup copy before I started) by left clicking on its name and picked "rename". It took a bit of time (refactor) and renamed the project/main folder. I build the new named project and all was ok. No errors. But when I went to program the board I got an error when I click on the (launches) program (Kitprog3 ...). Something about can not find the dynamic variable cy...path or something like that. Sorry I'm using a different computer to type this post I don't remember the exact variable name.
I want to have a copy of the project with a new name. I don't care if I have to rename and then manually copy the project or just save the current project to a new name. How do I do that without getting the error? or how do I fix the error?
Thanks.
Show LessDears
I have CY8CPROTO-062-4343W connected to Pmod I2S2 module. Removed 0R resistors R72, R73, R74, R75 on kit (to disable sharing pins with UART)
I successfully compiled and programmed this demo, but after connecting USB cable to second connector J10 (to act as USB device). Windows 10 is unable to recognise the device. Error message "A request for the USB device descriptor failed."
Details from driver:
Device USB\VID_0000&PID_0002\5&d2dc547&0&1 was configured.
Driver Name: usb.inf
Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
Driver Date: 06/21/2006
Driver Version: 10.0.19041.488
Driver Provider: Microsoft
Driver Section: BADDEVICE.Dev.NT
Driver Rank: 0xFF0000
Matching Device Id: USB\DEVICE_DESCRIPTOR_FAILURE
Outranked Drivers: usb.inf:USB\DEVICE_DESCRIPTOR_FAILURE:00FF2000
Device Updated: false
Parent Device: USB\ROOT_HUB30\4&1c182634&0&0
What can cause these problems ? I think that there could be possible some voltage drops, but I measured it and it looks that it is normal. But it looks that are some problems with initialisation of I2S. When I unplug the PMOD I2S2 module the "PSoC 6 USB Audio Device" is recognised by Windows 10 system correctly...
I have two CY8CPROTO-062-4343W kits (rev 06 and rev 08). I tested both of them on several PCs with same results.
Thanks in advance.
Radim
Show LessHi,
I'm trying to connect PSoC6 to the external SPI master through SPI.
Is it possible to change the default MOSI/MISO pin mapping of PSoC6's SPI as like the below?
In CYB06445LQI-S3D42, when SCB4 is set as SPI Slave
MOSI : P7_0 (default) -> P7_1
MISO : P7_1 (default) -> P7_0
When I've tried it by just swapping MOSI and MISO pin mapping at the function "cyhal_spi_init", it has been failed.
Thanks,
Show Less
Hello,
I am trying to run a security app using custom BSP for CY8C6247FTI-D52.
Using ModusToolbox 2.4.1 I:
- downloaded the example https://github.com/Infineon/mtb-example-psoc6-security for CY8CPROTO-062-4343
- changed the target to PSOC6-GENERIC
- added my custom BSP (make bsp TARGET_GEN=myBSP DEVICE_GEN=CY8C6247FTI-D52)
- changed the target in Makefile for all applications (bootloader, cm0, cm4)
- created a configuration in Device Configurator for all applications
- modified shared config linker scripts
- I have compiled the bootloader, it detects the absence of the application or its correct digital signature after uploading to the FLASH memory with the programmer. There are no problems with it. Below is the output from the compilation:
- The CM0 application is also fine, I can debug it. Here is the output:
- The CM4 application compiles without problems, but I can't debug it and I can't see any output from it, eg changing the GPIO state.
The CM4 application doesn't even enter the assembly code in startup_psoc6_01_cm4.S . I checked this by defining the Cy_OnResetUser function, which should be called first from the startup level before initializing the BSS, clocks, calling main(), etc.
I checked it for bootloader and CM0 application where I successfully jump into this function. But for CM4 I don't see such a result. This makes me believe that for some reason CM4 is starting from the wrong place in memory or not starting at all.
There is a Cy_SysEnableCM4 call in the CM0 application that should start CM4 from the appropriate FLASH location.
The function argument value 0x10030000 is valid, as you can see in the screenshot from the debug session.
The problem occurs when a value 0x5fa0003 is assigned to the CM4_PWR_CTL register, which results in a HardFault of the CM4 core, and there is nothing to fail in this application because in Cy_OnResetUser there is an infinite loop for(;;){}
According to the documentation https://www.infineon.com/dgdl/Infineon-PSoC_6_MCU_PSoC_62_Register_Technical_Reference_Manual-AdditionalTechnicalInformation-v07_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0f9480c901dd 4.1.12 value stands for enabling the CM4 and setting VECTKEYSTAT.
Further hours of debugging led me to a bootloader with the following code:
#if is omitted on CY8CPROTO-062-4343W but on my CY8C6247FTI-D52 Cy_SysDisableCM4 is called and I believe this is the real source of my problems. I know that for my CY8C6xx7 the CM4 starts after a reset, hence the manual shutdown for the purpose of copying FLASH in the bootloader. There must be some problem between disabling and enabling the CM4 core.
Could you point out where I should look for a solution to the problem? Maybe it's something related to LDO configuration, clocks, CPU sleep, etc.
In the PDL documentation https://infineon.github.io/psoc6pdl/pdl_api_reference_manual/html/group__group__syspm.html I see that there are a lot of mentions on this topic for CY8C6xx7. I am using PDL 2.4.1 https://github.com/cypresssemiconductorco/mtb-pdl-cat1#release-v2.4.1
Best regards,
PZbb
Hello, world!
I am seeing inconsistent behavior between two identical statements while debugging an application using PSoC Creator 4.4 on the M4 (Pioneer kit CYC6347BZI-BLD53). In a nutshell, when I set a breakpoint and inspect a variable in the debugger after a mathematical operation, I do not see the correct result.
int adxl_read_reg_multiple(adxl_spi_handle *spi, unsigned char reg,
unsigned short count, unsigned char *val)
{
reg = (reg << 1) | ADXL_SPI_RNW; // ADXL_SPI_RNW = 1
unsigned char r1 = 0;
r1 = (r1 << 1) | ADXL_SPI_RNW;
return spi_write_then_read(spi, ®, 1, val, count);
}
This function is called with the reg argument = 0. Setting a breakpoint at the first statement, the debugger shows reg = 0 (as expected). Step over the statement, and the debugger still shows reg = 0 -- when the new value clearly should be 1! Step over the same statement for r1, and the debugger shows r1 = 1 -- but reg = 0 for the same operation. They should both be 1.
Somewhere in the chain between the compiler, M4, and debugger something is not right. I looked in startup_psoc6_01_cm4.S and the default stack size is 4K., so I don't think I'm running out of stack for a shallow call chain.
This call sequence is taken from the ADXL372 code from Analog Devices. The wrong register value ends up being sent to the chip as a result of this problem (a 0 instead of a 1). If I can figure out what's happening in this test case, hopefully the driver will work. I've removed the actual peripheral code, which isn't necessary to reproduce the issue.
If anyone has any idea what's going on, I'd like to hear it.
Respectfully,
Peter
Show Less
Hello,
I am able to perform the following transactions in order with success:
Cy_Crypto_Sha_Run(), Cy_Crypto_Rsa_Proc(), Cy_Crypto_Aes_Init()
If I change the order it does not work anymore:
Cy_Crypto_Aes_Init(), Cy_Crypto_Sha_Run(), Cy_Crypto_Rsa_Proc()
Why I am unable to perform a Sha_Run()/Rsa_Proc() if i perform a Aes_init() before?
Thank you,
Francesco
Show LessHi,
i'm trying to build a psoc6 based project on psoc creator and i'm in trouble. the error is :
Build error: L6050U The code size of this image (134708 bytes) exceeds the maximum allowed for this version of the linker.
Could you help please?
thanks
Show LessHello,
I'm relatively new to PSoC and PSoC creator.
I'm trying to access the Cryptography hardware acceleration. I've done so successfully using the Client-Server PDL provided. However, when trying to use "Direct Crypto Core Access" (e.g. Cy_Crypto_CoreTrng()), I can't seem to find the requisite .h or .c or .a files. When I try to include cy_crypto_core.h as the documentation indicates, it's not found. My build fails with "undefined reference to Cy_Crypto_CoreTrng().
I tried unsuccessfully to find the straight-forward answer to the simple question: are the Cy_Crypto_Core_xx() functions supported in PSoC Creator ? Below is my environment.
Any help would be greatly appreciated.
Environment:
PSoC Creator 4.4 (4.4.0.80)
Culture: English (United States)
OS Version: Microsoft Windows NT 10.0.19044.0
CLR Version: 4.0.30319.42000
Installed CyInstaller Products:
Peripheral Driver Library 3.1.3
Peripheral Driver Library 3.1.5
PSoC Programmer 3.29.1
PSoC Creator 4.4
Hi. I am trying to create a project using CY8CKIT-062-BLE PSoC 6 BLE Pioneer Board and connect FreeRTOS to it as described in the manual. But I am facing the problem of not understanding what kernel is selected in this project. I see in the bsp makefile that kernel BSP_COMPONENTS:=CM0P_BLESS is selected but when I add configuration file to my project with the right kernel, the project gives errors in another file from mtb_shared folder. Can you explain the logic of working with this kind of error?
And I keep getting this error Unresolved inclusion: "cy_utils.h". How can this be fixed?
Show LessHi!
I found the Snippet code of async recording from the microphone CY8CKIT-062-WiFi-BT with CY8CKIT-028-TFT display here:
https://infineon.github.io/mtb-hal-cat1/html/group__group__hal__pdmpcm.html (Snippet 2: PDM/PCM Asynchronous Receive). My application record a 1-second audio frame and processes it by NN in parallel. I measured the power consumption of PSoC6 and aligned the measured results with the time, required for the calculation in my application (screenshot below) and found, that for almost 0.8 seconds wait for end of the new recording.
The microphone is configurated to record data and write it by using DMA only. So, if I do not use the CM4 while async recordings, is it possible to set the CM4 in sleep mode and wake up it by the event of the ending of the recording (CYHAL_PDM_PCM_ASYNC_COMPLETE)?
I attached the main.c file and remove some processing parts. The idea is to set CM4 to sleep after processing at line 186 and wake it up by end of the recording event (CYHAL_PDM_PCM_ASYNC_COMPLETE).
If CM4 cannot be awakened by the CYHAL_PDM_PCM_ASYNC_COMPLETE event, maybe somebody can recommend other techniques for reducing power consumption while recording data?
Thanks,
Andrii