PSoC™ Creator & Designer Forum Discussions
Hi all,I have to install a old PSoC Designer 5.0 on Windows 10. Is this possible? and how?
I tried to install it but each time I opened a project an script error appears:
Show Less
We are working on a power application based on CY8C4245AXI, when the PWM starts frequently the PSoC gets stuck in,
CY_NORETURN
CY_ISR(IntDefaultHandler).
Can any one suggest, how can we debug?
We could not see a way to read internal registers of PSoC4.. can some one pls help?
Pls feel free what information is required to understand the case.
Regards,
Nilesh
Show LessIs there a standard IDE available for professional bare metal programmers ? actually I also normally write arm assembler at the RTL level.
Frankly I have never encountered an IDE like PSOC creator/desighner and I certainly would not countanence such a tool as part of any project I am involved in.
Show LessI need to program PSOC 5 components in production. I am attempting to use a Windows 10 command shell to program the devices. Presently I have been using the following commands:
OpenPort KitProg/100E0F6202037400 "C:\Program Files (x86)\Cypress\Programmer"
HEX_ReadFile "D:/Scrap/PSOC-CLI/Stepper.hex"
SetAcquireMode "Power"
SetProtocolConnector 1
SetProtocol 8
SetProtocolClock 224
SetPowerVoltage 5.0
PowerOn
AcquireChipWithDelay 0x0FA0
Calibrate
EraseAll
Program
Verify
VerifyProtect
Protect
CheckSum 0
HEX_ReadChecksum
ClosePort
Which I place in a text file and then execute from the command line
"c:\Program Files (x86)\Cypress\Programmer\ppcli.exe" "--runfile Stepper.txt"
The results are:
OpenPort KitProg/100E0F6202037400 "C:\Program Files (x86)\Cypress\Programmer"
<
0 OK
HEX_ReadFile "D:/Scrap/PSOC-CLI/Stepper.hex"
<0x00040000
0 OK
SetAcquireMode "Power"
<
0 OK
SetProtocolConnector 1
<
0 OK
SetProtocol 8
<
1 OK
SetProtocolClock 224
<
0 OK
SetPowerVoltage 5.0
<
0 OK
PowerOn
<
0 OK
AcquireChipWithDelay 0x0FA0
E
Device is not in ISSP mode.
AcquireChipWithDelay 0x0FA0 returned 80004005
80004005 OK
Calibrate
E
Device is not in ISSP mode.
Calibrate returned 80004005
80004005 OK
EraseAll
E0x775bbf34
Device is not in ISSP mode.
EraseAll returned 80004005
80004005 OK
Program
E
Device is not in ISSP mode.
Program returned 80004005
80004005 OK
Verify
E
Device is not in ISSP mode.
Verify returned 80004005
80004005 OK
VerifyProtect
E
Device is not in ISSP mode.
VerifyProtect returned 80004005
80004005 OK
Protect
E
Device is not in ISSP mode.
Protect returned 80004005
80004005 OK
CheckSum 0
E0xffffffff
Device is not in ISSP mode.
CheckSum 0 returned 80004005
80004005 OK
HEX_ReadChecksum
<0x56f6
0 OK
ClosePort
<
0 OK
<
0 OK
I've tried replacing the "AcquireChipWithDelay 0x0FA0" with a simple Acquire and DAP_Acquire; I've tried both "Reset" and "Power" as the SetAcquireMode parameter - has not changed the results.
Side notes -
There does not seem to be any delay with the AcquireChipWithDelay, I've increased its delay to a couple seconds and it does not seem to change the time it takes to fail.
The HEX_ReadFile requires a strange format for the file name which is not in the documentation. Through experimentation I've determined that Unix "/" path delimiters work as well as "\\" as used with normal expressions but it might be worth noting in the documentation.
Show LessMy project works fine in debug mode, except when i do a mdoify on the "main" function.
Older "main" function:
int main(void)
{
BoardDriverInit();
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
//asr_at_commands(0);
application_start();
for(;;)
{
/* Place your application code here. */
}
}
when in debug mode, it appears:
Newer "main" function:
int main(void)
{
BoardDriverInit();
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
asr_at_commands(0);
//application_start();
for(;;)
{
/* Place your application code here. */
}
}
when in debug mode, it appears:
in summary, the total project is same except that there is a little change in "main" function, then in debug mode the behaviour is different and debug not start in main" function.
Show LessI am probably making a rather silly mistake but this scenario has got me stumped.
I have two input pins which each have an interrupt attached.
I have created logic that has one pin interrupt enabled when the other is disabled and then it swaps upon button press. A green and a red LED to indicate the different button presses. Now this works fine if each button is pressed once. However, if I press one of the buttons twice and then when I press the second button it still shows the first button sequence after this second button, as in it has in memory the 2nd press of the 1st button. Why is this?
Sequence is:
Press Button_1 once. isr_ResetBtn_Enable(); and isr_StartBtn_Disable(); LEDgreen ON then OFF
Now Press Button_2 once. Then isr_StartBtn_Enable(); and isr_ResetBtn_Disable(); LEDred ON then OFF.
Press Button_1 TWICE. isr_ResetBtn_Enable(); and isr_StartBtn_Disable(); LEDgreen ON then OFF
Now Press Button_2 once. isr_StartBtn_Enable(); and isr_ResetBtn_Disable(); LEDred ON then OFF.... then LEDgreen ON then OFF ????
How do I ignore or "clear" that second button_1 press?
Here is code snippet within main()
/* Enable the start pin interrupt */
CyGlobalIntEnable;
isr_StartBtn_Disable();
isr_ResetBtn_Disable();
/* Start the TCPWM Component */
//Timer_Start();
for(;;)
{
if (Started) {
/* Handle the Period of Play Logic */
if (StartButtonIntEnabled) {
StartButtonIntEnabled = false;
/* Turn On the Red LED */
LED_TimeOutReq_Write(LIGHT_ON);
CyDelay(500u);
LED_TimeOutReq_Write(LIGHT_OFF);
isr_StartBtn_Disable();
isr_ResetBtn_Enable();
}
}
else {
if (!StartButtonIntEnabled) {
StartButtonIntEnabled = true;
/* Turn On the Red LED */
LED_TimeOutON_Write(LIGHT_ON);
CyDelay(500u);
LED_TimeOutON_Write(LIGHT_OFF);
isr_ResetBtn_Disable();
isr_StartBtn_Enable();
}
}
}
Show LessCY_ISR(isr_StartBtnHandler)
{
/* Clear pending Interrupt */
isr_StartBtn_ClearPending();
/* Clear pin Interrupt */
Pin_Start_ClearInterrupt();
Pin_Reset_Read();
/* Set the Start flag to true */
Started = true;
}
CY_ISR(isr_ResetBtnHandler)
{
/* Clear pending Interrupt */
isr_ResetBtn_ClearPending();
/* Clear pin Interrupt */
Pin_Reset_ClearInterrupt();
Pin_Start_Read();
/* Set the Start flag to false */
Started = false;
}
Hi,
I've found that the "Find all active references" (ctrl+shift+R) of PSoC Creator only works when you select a symbol from a header file. If you (ctrl+shift+R) on a symbol that's in a C file, it will only return the results of the C file and its header. For example, if I (ctrl+shift+R) on a public function definition in a C file, the results will only return the declaration and definition of the function, even though it's used in another C file. However, if I (ctrl+shift+R) on the function definition in the header, then it works. Is this intended?
Thank you,
Fred
Show LessToday April-30 2018 I removed all Cypress software from my system because Psoc creator 4.2 could not detect a debug target on CY8CKIT-049-42xx
After cleaning up I reinstalled PSOC creator 4.2 I still do get the same result.
I have PSoC creator 4.2 (4.2.0.641)
OS Microsoft Windows NT 6.1.7601 SP1
Installer CyInstaller product
CY8CKIT-049-42xx
First time i encounter problems with PSOC creator ;-(
Need solution quickly...
(added tiny test project)
Regards
Michiel de Jong
Show LessHi,
I installed CMSIS, and I want to make a FFT. The FFT bin example is working, now I want to use the FFT with real values. I have exactly the same problem described by another user here
I fact, I added the arm_bitreversal2.S file to my project, but GCC still complains about an undefined reference. The 'workaround' in the other topic was to simply use the precompiled CMSIS library instead of the single source files. However, I don't want to use the workaround, I want to know the solution for this problem.
Anyone can help here?
Regards,
Ralf
Show Less