PSoC™ 4 Forum Discussions
Hello
I had used CY8C4124LQI-433.
I have some Capsense Applications. That works well.
These Application compiler optimization is speed.
Flash size of application is 11KB.
I want to add bootloader. but bootloader code size is 5KB. it is too mush to use 16KB chips.
I need to use Compiler optimization for code size.
I had checked optimization code size. It is 13KB. It is suitable for my application.
Have you ever size optimized your CapSense and Bootloader application?
Is there any problem to use this?
Thanks!
Show LessHello,
For PSoC4000S (Not UDB) UART Start bit detection, can I refer to the following?
001-97157 Rev. *D "2 out of 3 Voting"
http://www.cypress.com/file/177171/download
Best regards,
Yocchi
Show LessHello,
I am trying to interface CY8C4245AXI-483 with ESP8266. The code is attached below.
As per my knowledge, the code should get the ip address and also return string 'welcome' , but there is nothing displayed on the serial terminal.
H/W connections apart from GND are :
MCU tx - ESP rx, FTDI rx
MCU rx - ESP tx, FTDI tx
Also, FTDI 3.3 V is given to ESP module.
Please let me know what should be done to at least establish communication between wifi module and MCU.
Thank you.
Show LessHi, when doing firmware upgrade brown out testing on a device running PSoC 4 I noticed that sometimes it failed to upgrade and corrupted the launcher.
Looking at the Copier code I could guess what happen, the power is cut during flash write of metadata #1. It had cleared the flash area but not yet written to it.
When the launcher boots next time it will restart the copying but will read out the destination row from metadata #1. This results in it copying the new image to row 0(0xffff + 1) and corrupting the launcher.
I've verified this with the following fix.
Bootloader.c:672(version 1.60)
- uint16 launcherLastRow = Bootloader_GetMetadata(Bootloader_GET_BTLDR_LAST_ROW, Bootloader_MD_BTLDB_ACTIVE_0);
+ uint16 launcherLastRow = Bootloader_GetMetadata(Bootloader_GET_BTLDR_LAST_ROW, Bootloader_MD_BTLDB_ACTIVE_1);
It might seem less safe to use the value from the new metadata, but the copier just copies metadata #2 over metadata #1 without any sanity checks so in the end it does not matter.
I also wonder how firmware upgrades using the Copying method is intended to work. It always copies from one fixed location to another.
So if I where to upgrade the bootloader component to a newer version and that version used a more flash, I would not be able to produce applications that could be loaded on devices using the older bootloader. Reading launcher last row from metadata #2 might solve this case as well.
Regards, Johan Carlsson
Show LessHi,
I have a mostly working USB project, with matching PC code. The device side uses Auto-DMA to echo data back to the PC, and writes the data to a LCD. It is Generic HID interrupt type, think AN82072 with the Auto DMA from USBFS: Use of APIs in DMA Auto Mode Memory Management . It works both ways, but makes a noticeable number of mistakes. It will display doubles of characters(ex: 0123455789). It will sometimes drop characters.
I could deal with this by using a field in the report for some sort of check, maybe packet numbers. But that would be a waste of space in the report if there is a better way of doing it. Is there some built in way of doing it, both on the device side and PC side?
I am using the functions as they are used in AN82072 for the PC side. Maybe there's a function called CheckPacketIntegrity()? or maybe there's a handy field or register I could check?
Thank you.
Show LessHi Sir,
When using P6/P4/P4BLE development is complete.
Our product starts mass production, what tools are used to download the program?Make the production process
convenient and fast;
Best regards,
Robin
Show LessHi,
I have a situation where I am trying to reduce the current consumption when my chip is active (I need it to be able to start up on low input voltages and then go through an initialisation sequence before going into a sleep mode) and I'd like to be able to start up the chip with, say, the IMO set to 4MHz and the ADC sampling frequency set to 1MHz, then, once its gone through its start up, to change these to IMO = 24MHz and ADC sampling = 8MHz for operation thereon.
It seems I can only configure these parameters via the Clock Setup for ADC components within PSOC Creator, and can't modify these "on-the-fly" within my code. Is that correct? Or is there someway I can do this in my code so I can adjust things after the start up sequence has been completed.
Cheers,
Mike
Show LessDear,
we are willing to use assembly language(don't use C) to design with PSOC 4 MCU, but we can't find much more user guide for assembly,including project create, compile, debug, compoent configure and export to other IDES, etc.
please help to check if any guide for this, thanks.
another question: where can we find the detailed register list, we need the info. to configure register directly.
b/r
vincent
Show LessHello,
I have a device that I want to update the firmware of.
I want to use a custom bootloader interface for the update of the device, however, when I try to use this interface, the update process is super slow (in comparison to using CySysFlashWriteRow function and writing the new app by myself).
I currently have a simple POC bootloader program that writes an application from the disk.
I have two implementations for this bootloader. The first one is using the CySysFlashWriteRow function and writes the application manually, and the second one is constructing the bootloader commands and using the bootloader interface to write the program.
I saw that it is taking a lot more time to do the update with the bootloader interface.
The simple application that I am writing has 10 rows, while the real application I am using has 330 rows.
To emulate the run time of the real application update in this simple program, I write the same application 33 times.
By using the CySysFlashWriteRow function, the update takes a bit less than 10 seconds.
By using the bootloader interface, the update takes about 5.5 minutes (330 seconds)!
(There is a huge difference when writing only 10 rows as well, but it is a lot harder to measure)
I tried to look at the auto-generated code of the bootloader itself, but couldn't find any specific piece of code that took a long time there.
I understand that the bootloader adds overhead to the operations (it uses more functions, and does a lot of checks on the data), but an overhead of 33 times the original length seems way too long for me.
Is this the way it should be?
Is there any way to make the bootloader more efficient?
I am attaching my simple POC update application.
Changing the value of UPDATE_METHOD to either BOOTLOADER_INETRFACE or MANUAL_WRITING will make the bootloader run the update using the appropriate way.
Any help will be greatly appreciated,
Omri
Show Less