PSoC™ 5, 3 & 1 Forum Discussions
Hi,
We are using PSoC LP5, with bootloader and bootloadable. There are two ways to enter bootloader mode:
- Provide power to PSoC (Power on reset).
- After PSoC bootup to bootloadable, call Bootloadable_Load() from bootloadable.
How to detect by which way bootloader is entered?
Regards,
Winston
Show LessHi,
We are using bootloader and loadable project in our work.
Recently we changed the bootloader TopDesign - just changed some drive modes for some pins. We encountered an issue that after we program the IO PSoC with the new code, we cannot load old IO PSoC SW via cyboot-host-i2c anymore. The output of the command are as below:
# /usr/bin/cyboot-host-i2c -v -d /dev/i2c-1 -a 0x12 -f myimage.cyacd
[main-i2c.c][160] optarg: 0x12
[main-i2c.c][161] device_addr: 0x12
CyBtldr_Program called at [Sat Jul 9 03:21:52 2022]....OpenConnection...
CyBtldr_StartBootloadOperation[TD]..inSize[7]..outSize[15]
WriteData..command[38]..count[7]
ReadData..count[15]..status[0x0]
lineLen[589]..arrayId[0]..rowNum[61]..bufSize[288]..checksum[ef]
CyBtldr_ValidateRow[TD]..inSize[8]..outSize[11]
WriteData..command[32]..count[8]
ReadData..count[11]..status[0x0]
CyBtldr_EndBootloadOperation
WriteData..command[3b]..count[8]
CloseConnection...
CyBtldr_Program failed [0x20]
Iteration[1]..Retry Count this Iteration [0]..Programming time [0]..Total Retries [0]
If I program IO PSoC with old SW, I can still load new SW via cyboot-host-i2c without any issue.
What would be wrong?
Thanks,
Winston
Show Less
Might be for this or some other aspects.
Any one here -- Who tried to build a potentiostat with multiple CV cycles???
Show LessThe attached PNG shows a Comparator driving 3 nets, a "MON" net, which goes to the input of a DMUX, a XOR gate and a SR.
The Comparator is outputing a 200kHz signal which is clocked into the SR at about 500kHz. The output of the XOR gate is filtered by an RC to recover a demodulated signal.
When the "MON" net is in the circuit, an occassional down stream bit error is detected. When the "MON" net is eliminated, the problem goes away. Additionally, if a gate (NOT) is placed in series with the Comparator output, the problem also goes away.
So I first thought that this is a Comparator output loading problem. To test that, I added additional gate loads on the Comparator output. Doing so actually eliminated the problem.
The Comparator is configured for "fast" operation. Setting to "slow" improved performance. Could there be reflections due to internal fast rise-times?
Also note that this problem is not showing up on every chip.
Could this be a routing dependant, chip dependant signal integrity issue?
Show LessHi,
This is what I'm trying to do.
1) PSoC controls the clock as I2C Master and sends data to the I2C Slave - endpoint.
2) Right after the step 1 is completed, I2C slave endpoint would become I2C Master, send a START condition and start sending response continuously. As you might have realized, PSoC I2C component should switch to Slave mode to make this work.
I've configured the I2C component in Multi-master-slave mode and I'm able to do Step-1. How do I go about implementing step 2 ? we don't know when EP will switch to Master mode & start sending data. How do I handle this switch and any code examples for my scenario would be very helpful.
This is my code for step 1 when I send data from PSoC master to slave EP :
I'm stuck here and unable to understand how to let EP be I2C master & PSoC as slave and receive data after step1.
Thanks in Advance,
Srinath
Show Less
Hello, everyone!
I would like to add a component to my project topdesign in psoc Creator 4.4, named bADC_SAR_SEQ. But this component is excluded. How can I add it to my project?
This component located in cycomponentlibrary.cylib dir, but excluded.
Show LessI have CAN module in my design. All initialization code is generated by Creator. It generates a macro "CAN_BITRATE" which is used to initialize module, and value depends on user bitrate selection in GUI. But, I'd like to use bitrate stored in device database, instead of this compile-time constant. Is there any way to prevent Creator to generate CAN_init()-function? And define my own CAN_init(), of course containing the same stuff as in generated one, but using my own bitrate values.
Show LessHi,
We are using PSoC 5LP. In our workspace, there is one bootloader project and one bootloadable project, and they are linked together.
Before doing PSoC FW update, we need to call Bootloadable_Load() from bootloadable project to put PSoC into bootloader mode.
We found that, after setting PSoC to bootloader mode by calling Bootloadable_Load(), instead of a software reset, PSoC does a hardware reset. For software reset, Bootloadable_Load() makes PSoC stay in bootloader mode forever until there is a SW update; For hardware reset, it follows bootloader component settings ( "Wait for command") in bootloader project, wait for the time we set and boots into bootloadable application.
My questions are: how to make Bootloadable_Load() just do software reset so IO PSoC stay in bootloader mode?
I found something as below that may cause a software reset change to hardware reset, but not quite understand:
Note When the voltage detection is enabled and the configured threshold is below VDDA/VDDD during
the software reset (SRES), the hardware reset (LVI reset) might occur. During the software reset, the LVI
reset might get enabled (default state of the RESET_CR3 register) and hence the hardware reset might
occur instead of the software reset.
Best regards,
Winston
Show LessHi,
My usecase requires PSoC controller as both I2C Master and I2C Slave and switch between those two seamlessly without reprogramming.
I2C Write from PSoC to EP - PSoC should be master here. Immediately after, EP should be able to control clock & become master and doI2C Write from EP to PSoC. What should be my design like in this case ? Do I need two separate I2C components - one for Master (I2C_1) and one for Slave(I2C_2) ? In that case, which I2C line will my EP have access to so will that work ? Or a single I2C component can be configured to be both I2C Master and Slave and switch between those two modes based on who sends START condition & controls the clock ? I'm new to embedded programming so any help and explanation would be really helpful. Thanks in Advance.