PSoC™ 4 Forum Discussions
Hi All,
I am using document 002-22328 rev G to program a virgin CYBLE-022001-00 module. The steps have worked up to the erase entire chip step which is failing at the PollSronStatus() call (Step 3 - erase all flash at the top of page 28).
But what got me wondering is the use of the various symbols to formulate Params values. Usually fields & symbols like these are manipulated when they are individual fields/bits in registers. But in this instance and throughout this document many of the fields seem to overlap each other. For example, the statement at the top of page 28, in the erase all flash routine:
Params = (SROM_KEY1 << 0) + ((SROM_KEY2+SROM_CMD_ERASE_ALL) << 8); evaluates to
= ( 0xB6 ) + ( ( 0xD3 + 0xA ) << 8
= 0xDD00 + 0xB6
= 0xDDB6
Is this really what was intended here? Is seems as if SROM_KEY2 and SROM_CMD_ERASE_ALL are intended to be in different bit field locations from each other rather than being combined as they are. Are these definitions of these registers in another document that might clarify this?
Here's a trans script of my steps after the chip is "open":
Chip unprotected
writeio(20000100,DDB6): acl1 1, ack2 1
writeio(40100008,20000100): acl1 1, ack2 1
writeio(40100004,8000000A): acl1 1, ack2 1
readio(40100004,A): acl1 1, ack2 1, ack3 1
readio(40100008,F0000012): acl1 1, ack2 1, ack3 1
pollsromstatus()=failed
Can't erase flash
Scott
Show LessHi all,
I want to use psoc4000 family to come true touch functions: click, double click, long press, slider.
But I have not seen related message about gesture from psoc 4000 family datasheet,so can Psoc4000
family support slider gesture or trackpad gesture?
Best Regards,
Leo
Show LessHi,
We are considering the PSOC4 LIN component.
Software : PSoC Creator 4.2
DVK : CY8CKIT-044 & CY8CKIT-026
CY8CKIT-044
https://www.cypress.com/documentation/development-kitsboards/cy8ckit-044-psoc-4-m-series-pioneer-kit
CY8CKIT-026
https://www.cypress.com/documentation/development-kitsboards/cy8ckit-026-can-and-lin-shield-kit
Project : LIN_Slave_CY8CKIT-044.cywrk ( Install CY8CKIT-026 Kit Only)
1. Open project of LIN_Slave_CY8CKIT-044
2. Build error occurs in the project as it is. Therefore, after upgrading the component, the build is completed normally.
3. Program thet project into a demo kit.
4. Connect the jumper wires and other hardware properly.
5. The following is not working properly.The LED does not light up even when a command is sent.
Master sends ID: 0x10
Master sends ID: 0x10 and ID: 0x11
The received response is not normal.
Desired value: ID:0x11、D1:0x22、D2:0xBB、D3:0xFF...
Current value: D3:D1:0x80、D2:0x00、D3:0xFF ...
The LED remains off.
I'm not sure about the problem even with the debugger.
It looks like the data isn't coming to the LIN slave component, but can you figure out what's going on?
Regards,
Show LessHello.
Where can I get a detailed document about trackpad design guide?
I found AN64846_Getting Started with CapSense.pdf but there is simple layout for trackpads.
I want to know detailed information about that (diamond pattern size, layout...). Of course document would be better.
The application is a TV remote controller.
Thanks and Regards,
YS
Show LessHi,
I am using CYBLE-212020-01 module which sends with notify some values over BLE from App and made a demo using the CySmart Android App found here:
https://www.cypress.com/documentation/software-and-drivers/cysmart-mobile-app
I want to pass easily from GATT DB screen from the carousel view to directly the sceen Gatt Charateristic Notify Details.
How I can to do this easily?
Thanks in advance for any replies.
Lucia
Show LessHello,
I have questions about how the sample project works. The customer used the code from the sample project to evaluate the electrostatic sensor board.
"CE210709_CapSense_Linear_Slider_and_Buttons"
"CE224899_PSoC4_Low_Power_CapSense_Hybrid_Sensing01"
In the process of 'PROCESS_DATA' of Switch condition statement of main.c, the customer code saves the value of buttonStatus in a static variable and controls the GPIO to notify the status to the main CPU.
[problem]:
Continuously touching the CSD sensor causes PSoC to stop responding.
(Customer refer "CE210709_CapSense_Linear_Slider_and_Buttons")
[Results of customer analysis]:
1) GPIO which notifies the sensor touch event to the main CPU is not working.
2) However, when a problem occurs, "PROCESS_DATA" is executed normally in the debugger, and the sensor touch status can be acquired accurately. (Q1)
3) Furthermore, the GPIO control function (IRQpin_Write (0)) that notifies the main CPU is also executed normally. This can also be confirmed from the fact that the intended value can be obtained with the IRQpin_Read () function. (Q1)
4) According to the oscilloscope waveform, GPIO is not working.
5) Once in this state, the GPIO remains inactive even if the sensor touch operation is performed.
6) When I2C communication from the main CPU occurs, PSoC returns to normal operation and GPIO is controlled according to the sensor touch operation.
7) If CySysPmSleep () is deleted, this problem does not occur.
Question1:
According to the customer's report, the debugger normally exits sleep (CySysPmSleep ()) and shifts to "PROCESS_DATA" processing, but isn't the sleep function invalid during the debug processing of PSoC Creator?
[Guess]:
- Isn't the CySysPmSleep () running in the "WAIT_FOR_SCAN_COMPLETE" state not returning from the sleep mode after the completion of the key scan?
- 6) Isn't the problem solved by I2C communication from the main CPU because PSoC returned from sleep mode by the interrupt by I2C communication?
[Additional analysis result]:
From the source code of "CE224899_PSoC4_Low_Power_CapSense_Hybrid_Sensing01"
Before CySysPmSleep ();
Added interruptState = CyEnterCriticalSection ();
After CySysPmSleep ();
Added CyExitCriticalSection (interruptState);
The above solved the problem. (See attached sheet)
Question2:
CyEnterCriticalSection () has already been done inside the CySysPmSleep () function, so the addition of this code only makes a double critical section transition.
Why does adding CyEnterCriticalSection () solve this problem?
Best Regards,
Naoaki Morimoto
Show LessHello,
I'm using the MiniProg3 (!https://www.cypress.com/documentation/development-kitsboards/cy8ckit-002-psoc-miniprog3-program-and-debug-kit ) programmer to program my Cyble 012011-00 (!https://www.cypress.com/file/212456/download) module with EZ-Serial hex file (!https://www.cypress.com/documentation/software-and-drivers/ez-serial-ez-ble-module-firmware-platform).
I'm using PSoC Programmer software to program the hex file to the board, which does work as seen in the pictures. However, when I then try to connect it with my RX & TX pins to view the output in a terminal, it doesn't output anything. The documentation of EZ-serial says that it should output a system_boot event upon reset/power on. When I reset the module, the event output is not displayed. Sending commands, such a "/PING" is also does not provide a response.
I'm pretty clueless about what I am doing wrong at this point. Any help would be greatly appreciated!
Kind regards,
Toink
Show LessHOW TO DEBBUG A SELECT PROGRAM... I AM NOT ABLE TO EXECUTE THE STEPS??
#include <project.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void config(void);
char ch,ch1;
char str[100],str1[100];
int i = 0,j = 0;
CY_ISR(ISRCmdHandler) // interrupt handler for CMD
{
ch = UART_CMD_UartGetChar(); //connect
UART_CMD_ClearRxInterruptSource(UART_CMD_GetRxInterruptSourceMasked());
if(ch != '\n')
{
str = ch;
i++;
}
else
{
i = 0;
config();
memset(str,0,sizeof(str));
// UART_GSM_UartPutString(str);
}
// UART_CMD_UartPutChar(ch);
}
CY_ISR(ISRgsmHandler) // interrupt handler for GSM
{
ch1 = UART_GSM_UartGetChar();
UART_GSM_ClearRxInterruptSource(UART_GSM_GetRxInterruptSourceMasked());
if(ch1 != '\n')
{
str1
j++;
}
else
{
j = 0;
UART_CMD_UartPutString(str1);
// config();
memset(str1,0,sizeof(str1));
}
// UART_GSM_UartPutChar(ch);
}
void config(void)
{
if(strcmp(str,"CONNECT") == 0)
{
UART_GSM_UartPutString("AT");
CyDelay(500);
UART_GSM_UartPutString("AT+NETCLOSE");
CyDelay(500);
UART_GSM_UartPutString("AT+CSOCKSETPN=1");
CyDelay(500);
UART_GSM_UartPutString("AT+CIPMODE=0");
CyDelay(500);
UART_GSM_UartPutString("AT+NETOPEN");
CyDelay(500);
UART_GSM_UartPutString("AT+IPADDR");
CyDelay(500);
// UART_GSM_UartPutString("AT+CIPOPEN=0/");
// UART_GSM_UartPutString("/");
}
// else if(strcmp(str1,"OK") == 0){
//
// }
}
int main(void)
{
UART_CMD_Start();
UART_GSM_Start();
ISR_CMD_StartEx(ISRCmdHandler);
ISR_GSM_StartEx(ISRgsmHandler);
UART_CMD_UartPutString("UART 1 START\n\r");
UART_GSM_UartPutString("UART 2 START \n\r");
CyGlobalIntEnable;
for(;;)
{
}
}
/* [] END OF FILE */
Show LessHi.
My customer use PSoC 4100S Plus.
My customer changed Sense clock frequency on the CapSense Tuner.
3000kHz => 1500kHz
I recognize that if you lower the Sense clock frequency, the raw count will decrease.
However, this change has increased raw count.
What could be the cause?
Best Regards.
Show LessHello everybody,
Is it possible to implement this architecture of circuit In PSoC 4200L with the Opamp used as integrator and two internal analog switches S1 and S2?
What are the switch components in the internal Cypress library?
the architecture for duration measurement is as follows:
Thanks in advances
Soukayna,
Show Less