Rolf Nooteboom helped develop a technique for writing and compiling firmware for PSOC5 on Linux and Macintosh (and Windows). The overall system uses the free VSCode from Microsoft, the ARM compiler from ARM itself, some of the Modus Toolbox work Cypress put into previous versions of ModusToolbox(tm).
The upside to his work is the entire project's build finishes in seconds on Mac or Linux vs. minutes natively. (The minutes is when building under Windows using Creator). I was able to take his work and stumble into modifying it for using a KitProg (as well as kitprog 2 or 3). The pattern for the project directory was also changed, making it easy to use as a template for future projects, and with FreeRTOS. (Yes, a complete FreeRTOS rebuild takes seconds on a Mac.)
I wrote several blog posts on this at socmaker.com. My guide for coding/compiling on Linux (which is built on the previous blogs) is at https://socmaker.com/?p=1119 . You have to create the schematic with PSOC Creator first. (I use a virtual machine running windows 7, 64 bit to accomplish this.) Then finish with the firmware development on your native O.S.
Previous posts at socmaker.com cover the Macintosh side. EnjoyShow Less
I started a discussion thread that had gotten locked due to inactivity.
I'd like to continue the request for new component features.
I current have a new custom component that is a special counter. I haven't officially published it yet.
The intent of this new counter is to provide additional useful features while at the same time only using the same PSoC resources as other Infineon counters currently available.
I have a working version with a number of special features. It needs documentation (datasheet) and a good demo project to display most of its capabilities and the API calls to access them.
Here's a quick overview of its current features:
- Settable width 1 to 32 bits.
- Count value available by HW-routable outputs, DMA or CPU.
- Settable Unsigned or signed counting (design-time)
- Settable reset value (run-time)
- Settable increment value. (run-time) (With increment values > 1, some counts are skipped. Therefore the desired initial and maximum values may be readjusted for the count to work properly.)
- Settable initial starting value (run-time)
- Settable maximum value (run-time)
- Terminal count output
- Next Count available output (intended for DMA, ISR or HW signaling downstream)
- Reset input.
- Settable capture input with a 4-byte FIFO capture buffer. (run-time)
- Settable Up/Down count (design-time)
- Up/Down count input (run-time)
Any other recommendations?
I'm hoping to publish this new counter by the end of June.Show Less
we are automating PSOC miniprog3 using Bridge control panel using python . Can you share the python library for python sample code. so that we can directly give control to programmer. we are using I2C protocal and its code is given below
our I2c code is:
w 68 82 25 p
r 68 x p
w 68 1b 81 p
r 68 x p
Cypress Update Manager is a component of PSoC development products. When you install PSoC Creator or PSoC Programmer, etc., it will be automatically installed and appears in your Windows Start Menu. It’s a tool for managing all PSoC products.
Users could run into a situation that he needs Cypress Update Manager to be uninstalled or reinstalled. In this case, users might find it hard to uninstall Cypress Update Manager, because it doesn’t appear in Apps & Features in Windows Settings.
This is because Cypress Update Manager is installed as a hidden component in Windows, so it won’t appear in Apps & Features. And kindly note that, directly removing the installation directory of Cypress Update Manager won’t get it uninstalled, because it’s a registered software in your system and doing so will cause you many problems.
To truly uninstall Cypress Update Manager, please follow the steps below. And the steps below also help with the case that you accidentally delete the whole installation directory of Cypress Update Manager and find no way to reinstall it.
- Go to the system folder “%windir%\installer”, then right-click on the column names and select "Title".
- With the help of the new column "Title", locate the msi file that has the title "Cypress Update Manager Installer", and you will find that you have and only have one msi file with that title in this folder (but the file name will not be the same as the following picture shows, because it's auto-generated).
- Right-click on the msi file, choose the 3rd item "Uninstall", and then permit and fire the operations coming to you.
- After the uninstallation, the msi file you just used should disappear, which implies the uninstallation has been executed successfully.
- If you need to reinstall Cypress Update Manager, try to reinstall PSoC Creator or PSoC Programmer, etc., which includes the installer of Cypress Update Manager and the installation will have Cypress Update Manager side-installed. Cypress Update Manager is not a stand-alone software and you won’t find the stand-alone installer of it.
IF you have rather complex code modules THEN
IF your linker is set for default settings of "Remove Unused Sections" THEN
IF you debug your code THEN
the PSOC Creator debugger gets bad information and you are debugging in the wrong file.
The FIX is to go into Menu Project -> Build Settings ... -> Dialog , goto Arm GCC 5.4 -> Linker -> Optimization and change "Remove Unused Sections" to FalseShow Less
I am using Psoc Creator 3.3 and am designing a Bootloader component to be used with a Bootloadable component.
One of the requirements is that the bootloader needs to validate itself before proceeding with bootloading, which is provided by the "Bootloader application validation" setting in the bootloader component in "TopDesign.cysch" file.
However, after building and flashing the project in Eclipse with a J-Link (not Miniprog3), the code hangs during checksum calculation. The reason is these two following lines in Bootloader_1.c:
const uint32 CYCODE Bootloader_1_SizeBytes = 0xFFFFFFFFu;
const uint32 CYCODE *Bootloader_1_SizeBytesAccess = (const uint32 CYCODE *)(&Bootloader_1_SizeBytes);
As you can see, the bootloader's size is hard coded and as a result it will calculate the checksum forever. I confirmed this by pausing the program with the debugger.
According to Cypress:
Bootloader application validation
If this option is enabled, the bootloader validates itself by calculating the checksum and comparing it with the saved one that resides in the internal variable. PSoC Creator generates and puts the exact value into this variable during the post-build step.If validation does not pass, the device halts.If this option is disabled, the bootloader is executed even if it is corrupted. This can lead to unpredictable results.
this should be handled during post-build.
Am I missing a setting somewhere?Show Less
I just upgraded to PSoC Creator 4.3. I am running on Mac, version 10.12.6.
I am running VMWare Fusion 10.1.6.
Under PSoC Creator 4.2, using KitProg 2.3.3, I can debug my project with a Windows 7 Virtual Machine when the project contains a USBUART with the 0x4b4, 0xf32 standard default settings, and the unsigned driver loaded into the operating system, with NO issues (other than standard connect/disconnect/debug restart issues which are understandable) when the USBUART is plugged into the PSoC5LP USB IO ports.
Under PSoC Creator 4.3, using KitProg 2.3.3, when I start a debug session, IF the USBUART is plugged into the Macintosh USB port, AND I *START* a Debug Session, *EVERY* SINGLE USB PORT RESETS AND THEN RECONNECTS. I loose 3 USB 3 drives. I loose my USB mouse. I loose *everything*. Everything reconnects, lots of warning messages from MacOS, debug can continue.
IF the USBUART *is NOT* plugged into the Macintosh USB port, then NO PROBLEMS!!!! No USB Reset, everything works fine.
To summarize: With USBUART plugged into the Mac from a PSOC5LP, under PSoC Creator 4.3, all USB devices go offline. With PSoC Creator 4.2, this does NOT happen.
Please look at the code changes in the PSoC 4.3 creator *Debug Start* sequence relative to the PSoC 4.2 creator *Debug Start* sequence and you should find it easily.
100% reproducible. If necessary I can do a video and let you see it happen. It is not my imagination. I don't think this is a PICNIC problem. (Problem in Chair, Not in Computer).
I've upload to the Community code share forum a set of custom components that should ease the creation of Terminal user interfaces.
Here is a list of the components in the library:
- Term - Terminal (UART) replacement that can be configured as UART or USBUART types for the PSoC5.
- String_Funcs - This is an enhancement of the GetString() function. It is easier to use.
- MenuCmds - This feature was included in the GetString demo code I shared earlier. It is now a component with some improvements.
I have a software example that works on PSOC creator 2.2.
The issues is that our circuit design is limited in space and smaller component is needed,
namely CY8C3866FNI-210 which is not available to choose on PSOC creator 2.2.
How can I add this device?
p.s. the software just would not work with newer PSOC Creator(unable to link iAP2 function prototype)Show Less