PSoC™ 5, 3 & 1 Forum Discussions
Hi Everyone,
What happened to the "Find Code Examples"? In the past there was a LONG list of examples to browse, which would download on demand. Now there is a list of 14 examples, only, no option to download. For instance, there is zero examples for USB UART module. How do I get the examples back?
Thank you,
Errol
Show Less
Why can't I see TopDesign.cydwr page tab on my PSoC3 Creator?
Hello
PSoC 5: Uses the CY8C5888FNI-LP210 in a 99-pin BGA package. These PSoCs are supplied by Mouser in a factory state. I understand that this PSoC leaves the factory with a generic bootloader already installed. Let me know if I'm wrong.
After that, attach the PSoC to the PC board. Next, use the bootloader to program the PSoC. In other words, my image is a bootloadable object with a .cyacd Suffix. I made it bootloadable by pointing to .hex and .elf The file corresponding to the factory bootloader. You can use the MiniPro g3 to program the board once. Use the bootloader host for programming. The unit is programmed first, and the program runs correctly because the board works correctly.
However, when I try to reprogram the board, the programming fails with the following message:
02:40:17 PM - Slave failed to acknowledge packet.
02:40:17 PM - The communication port reported the error "Unable to write data to target device".
My questions:
- Is there anything in the stock bootloader (probably security) that prevents the unit from being reprogrammed?
- Is there any documentation that points to the stock bootloader configuration that I can see?
Best regards
Stuart
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/PSoC%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E4%B8%80%E5%BA%A6%E3%81%A0%E3%81%91%E5%8F%AF%E8%83%BD-%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E7%B5%8C%E7%94%B1/td-p/630382
Show LessThis is the announcement of the custom component SerialRx v.0.0, implementing simple command line interface between UART Terminal and PSoC microcontroller.
SerialRx: command line UART interface
Using this component, human-readable UART Terminal messages can be easily received and processed by the microcontroller.
Figure 1. Project schematic. The SerialEx receives messages from the Terminal and echoes them back.
Figure 2. Terminal window showing command messages and PSoC responses. Recognized commands ('R255', 'G32', 'B64') are executed with confirmation echo sent back ('>R255', etc.). Unrecognized command ('R-1000') are ignored and an error status is reported ('!R-1000').
Show Less
Using CT8CKIT030 for development purpose.
Getting an intermittant Reset that is not as a result of my code (working with defaults) and experiencing variables being set to values which indicate a Reset has occurred.
CyResetStatus returns all zeroes. Understand that a PRES is not included in the CyResetStatus save; thus a PRES is the probable culprit.
Using an ADC DeltaSig which turns on PRES. I have an external 4096Vref that I monitor to provide an emperical correction of the ADC results and also use the Offset with a volts conversion to fine tune any variations (an oscilloscope shows Vdda has variation and I use the ADC Vdda to Vddd {set at 5 volts] to reduce granularity. So basically I don't feel that the ADC PRES activation is necessary in my case.
Steps taken:
WDT not activated (turned off my code). No change noted.
Next attempt was to also include a 9v battery with the wall power jack contacts jumpered to make the battery functional with the plug inserted. Results were inconclusive.
Next attempt was to include a UPS to prevent utility power glitches to not cause a Reset (UPS was capable of backing up a small load and should switch in ~40 seconds). Results were encouraging but not a total success.
Latest attempt was to add a 47ufd 50v ceramic cap to Vin on an external board. This showed the most improvement but was not 100% effective.
Can the 5v Vdda and/or Vddd also have a filter capacitor added ala the Vin cap?
All sugestions for a resolution are wecome.
I can not live with my system occaisionally Resetting as it is a Data Acquisition AND Control project.
Show LessHello,
I am using a PSoC 5: CY8C5888FNI-LP210 in the 99 pin BGA package.
I receive the devices assembled on my PCB with the stock Cypress bootloader already present on the chip. I create my own I2C bootloader by instantiating bootloader object in my GUI design, and also instantiate an I2C object. I then build my bootloader to create the .hex and .elf files
I then build my actual design using PSoC Creator 4.4. In my project I put a bootloadable object in the GUI and then make it depend on the .hex and .elf files created above. Then I build my project the usual way.
But when I try to program the chip using "bootloader host" I get this error: "The bootloader reported error 'Packet length invalid: the packet's length does not conform to the required packet format, see the Bootloader section in the System Reference Guild for the correct format'."
What should I look for in order to understand why my image is not compatible with the stock Cypress bootloader? Any clues about what to look for? Any tools to run? Any files to look at?
Stuart
Show Less
Hi there,
I installed Windows 11 inside a virtual machine on my Macbook M2, and the drivers for KitProg don't work. I can select the drivers from "C:\Program Files (x86)\Cypress\Programmer\drivers\KitProg" but Windows doesn't take it.
Any help?
The CY8CKIT-063 is working without any issue.
Show LessI'm developing a PCB based around the PSoC 3, and I'm very confused about an error I'm getting, because from everything I can see, I've done things right - perhaps I missed something obscure?
The error:
I included the warning I'm getting as well, since the two pertain to the same thing. As best I understand it, there needs to be a function prototype before the main(), specifically, "CY_ISR_PROTO(UART_ISR);", but it's definitely there. I don't understand what I'm missing.
Full code pasted below:
#include <project.h>
#include <stdio.h>
#include <stdlib.h>
#define MAX_LENGTH 20
#define START_CHAR 'A' // Change this to the specific character you want to check
char received_string[MAX_LENGTH];
char buffer[20]; // Buffer to hold the integer in string format
int string_index = 0;
int start_flag = 0;
CY_ISR(UART_ISR)
{
while(UART_GetRxBufferSize() > 0 && string_index < MAX_LENGTH - 1)
{
char received_char = UART_GetChar();
if (!start_flag && received_char != START_CHAR) {
continue; // Ignore data if the first character does not match the specific character
}
start_flag = 1; // Set the start_flag after the specific character is received
received_string[string_index] = received_char;
if(received_string[string_index] == '\r') // Stop receiving at '\r'
{
received_string[string_index] = '\0'; // Null-terminate the string
start_flag = 0; // Reset the start_flag for the next string
UART_PutString("Received string: ");
UART_PutString(received_string);
UART_PutString("\r\n");
// Decode the received hexadecimal string
if (received_string[0] == START_CHAR) {
long int decoded_value = strtol(received_string + 1, NULL, 16); // Skip the first character
UART_PutString("Decoded value: ");
sprintf(buffer, "%ld", decoded_value);
UART_PutString(buffer);
UART_PutString("\r\n");
}
string_index = 0; // Reset the string index for the next reception
}
else
{
string_index++;
}
}
}
CY_ISR_PROTO(UART_ISR);
int main(void)
{
CyGlobalIntEnable; /* Enable global interrupts. */
/* Start UART component */
UART_Start();
UART_ClearRxBuffer();
/* Start the ISR */
isr_UART_StartEx(UART_ISR);
for(;;)
{
//Paste system code here
}
}
I learn linker script recently and there are two commands which confused me. They are EXTERN and PROVIDE. In these article, it said EXTERN is force symbol to be entered in the output file as an undefined symbol. I try to add EXTERN(test) in the linker script and why can it compile and link successfully? I mean the test is undefined symbol, why can it link without any error? And for PROVIDE command, in my understanding, it is mainly avoid multiple definition and I try to add symbol test = .(without PROVIDE)in data section of linker script and declare variable int test in my source code, but why there is no error when linking? Shouldn't it be multiple definition error?
Show LessI experimented enough to use 2 pins as toggling analog input voltage to a PSOC5 Opamp without using external components or internal components.
You set them up to do both digital input and analog, with pull up/down resistors. You can then write a pattern to the 2 pins to get internally, 0v, 5v, 2.5v. Exactly 2.5v requires external resistor to +5v.
This can almost be done with a DAC, but you are limited to 4.08v.
See the following page for more info. I used a LooUpTable to correctly drive the pins in real time. Here is my blog about the psoc and other things: https://socmaker.com/?p=1598
Show Less