Recent discussions
Hello,
We are using a PSoC5LP and just implemented our bootloader. We are going to program the bootloadable application via the i2c bus from another microcontroller.
The other microcontroller is responsible for sending a "Reset" command to the PSOC to get it into bootloader mode.
What is the correct sequence in the PSOC for the bootloadable application to issue a reset command so it can go into the bootloader, and then wait for the specified host link time in the bootloader?
This forum post [Link] says to do the following in the bootloadable application:
Bootloadable_SET_RUN_TYPE(Bootloadable_SCHEDULE_BTLDR);
CySoftwareReset();
However, when I browsed the generated source code of Bootloader.c, it appears that if SCHEDULE_BTLDER is set, then it will wait forever for the command, and not even check the wait time set in the bootloader component.
If CySoftwareReset() is used without setting the run type, does the PSOC reset to the bootloadable or bootloader?
We used a PSOC4 in a different application, and our reset process was to enable the watchdog so we could reset from that. PSOC5LP is different, because the watchdog API is not as flexible as the PSOC4. Our watchdog is already going to monitor the application, and the timeout is too much for us to use for this purpose.
Show Lessduring build, I got the following in output tab
HDL Generation...
Synthesis...
Tech Mapping...
Error: mpr.M0022: "Net_232" is not a top level pin. Not expecting internal three-state signals. (App=cydsfit)
ADD: mpr.M0037: information: Unused pieces of the design have been optimized out. See the Tech mapping section of the report file for details.
* C:\Users\Larry\Documents\PSoC Creator\LMA Amp Rack APNA Simulation\crosspoint switch test.cydsn\codegentemp\crosspoint switch test.rpt (Tech mapping)
Dependency Generation...
Cleanup...
Error: fit.M0050: The fitter aborted due to errors, please address all errors and rebuild. (App=cydsfit)
--------------- Build Failed: 08/11/2022 10:13:49 ---------------
and the only error in the report file:
Error: mpr.M0022: "Net_232" is not a top level pin. Not expecting internal three-state signals. (App=cydsfit)
Converted constant MacroCell: \SPIM:BSPIM:so_send_reg\ from registered to combinatorial
Converted constant MacroCell: \SPIM:BSPIM:mosi_pre_reg\ from registered to combinatorial
<CYPRESSTAG name="Global Clock Selection" icon="FILE_RPT_TECHM">
Digital Clock 0: Automatic-assigning clock 'SPIM_IntClock'. Fanout=1, Signal=\SPIM:Net_276\
Digital Clock 1: Automatic-assigning clock 'Clock_1'. Fanout=1, Signal=Net_30
</CYPRESSTAG>
questions:
1) what is mpr.M0022 ?
2) how do i find "Net 232" ?
3) what is the actual problem that needs fixing ?
archived files attached
Show LessWe are using PSoC Creator 4.4 and have automated our builds.
In the PSoC Creator User guide, I saw the option to generate project datasheets.
Would it be possible to create these using a command line tool, such that we can integrate it in our automated build?
We would like this to work for all the four projects we have in our workspace. One project is the active project and triggers the build of the other three projects. In the user guide it mentions that the generation is done for the active project. I hope this can be specified when using a command line tool.
Show LessI have been trying to write a program that involves Digital Write and USBUART. The program doesn't seem to work for some reason.
This is a sample code. When I comment out the digital write statements, the USBUART works. And when I comment out the USBUART, the Digitalwrite works. Any idea why?
Any help is greatly appreciated.
#include "project.h"
#include <stdio.h>
int main(void)
{
CyGlobalIntEnable; /* Enable global interrupts. */
ADC_SAR_Start();
AMux_Start();
USBUART_Start(0,USBUART_5V_OPERATION);
while(USBUART_GetConfiguration()==0){}
ADC_SAR_StartConvert();
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
for(;;)
{
/* Place your application code here. */
LED_Write(1);
CyDelay(1000);
LED_Write(0);
CyDelay(1000);
AMux_Select(0);
int pot1 = ADC_SAR_GetResult16();
AMux_Select(1);
int pot2 = ADC_SAR_GetResult16();
char print[100];
sprintf(print, "pot1 : %d, pot2 : %d\r\n", pot1, pot2);
USBUART_PutString(print);
CyDelay(100);
}
}
Show Less
Does Infineon support any implementations of Micro ROS on PSOC (4 or 5)?
If not has anyone tried this and had success?
The officially supported hardware is given here: GitHub - micro-ROS/micro_ros_setup: Support macros for building micro-ROS-based firmware.
Show LessWhat is the future of the psoc5lp? Is it being abandoned?
Looking for CY8C5666AXI-LP004 anyone have some they aren't using?
Searching now for the n'th time for ap note project files leads me to believe
Infineon destroyed a large number of project files for PSOC.
Suggestion, go to ebay, start buying back every kit you can get your hands on,
extract DVD, and github an ISO copy of all DVDs for starters. Then ask community
for ISO copies of the ones you cant get to copy/post.
Then when biz gets good hire about 50 people to fix this sad situation.
What a tragedy......The prior Cypress website was so productive. Maybe Cypress
should have bought Infineon......
Regards, Dana.
Show LessHi,
We are using PSoC 5LP. In our workspace, there is one bootloader project and one bootloadable project, and they are link together.
We use this tool to do PSoC FW update:
Before doing PSoC FW update, we need to call Bootloadable_Load() from bootloadable project to put PSoC in bootloader mode.
We found that, after setting PSoC to bootloader mode (calling Bootloadable_Load()), PSoC stays in bootloader mode only for a couple seconds, then it goes out of bootloader mode. So if our script is quick enough, FW download to PSoC succeeds; otherwise it fails and I can tell the PSoC returns to normal application mode.
My questions are: Why bootloader mode does not stay for longer, and how to make it in bootloader state longer?
Best regards,
Winston
Show LessHi all,
I have a problem with using CyPmHibernate() function.
My extracted code is:
CyPmSaveClocks();
CyPmHibernate();
CyPmRestoreClocks();
All works well during Hybernate state, but when my system is wake up, I noted that my firmware reset and start from the beginning.
I think the problem is due to "CyPmRestoreClocks()" function because if I comment it, the reset not occurred.
Following is my CLOCK setup:
Did sameone experienced the same problem and know how to workaround?
Regards
Show Less