PSoC™ 4 Forum Discussions
Hello,
First off, I'm completely new to the PSoC and the world of CapSense so please speak slowly and clearly. 😉
I have a Pioneer development kit with the PSoC 4 module (red board) installed (CY8CKIT-042-BLE).
I also have the 'Shield' (CY8CKIT-024 CAPSENSE PROXIMITY SHIELD) for gesture sensing installed along with the jumper as prescribed in, pp 1-2:
I grabbed the project from github here:
When I opened up the Workspace, there were several components that were not up to date (PSoC Creator 4.0 couldn't find them). So I updated all the components expecting that using the most up-to-date components would be the best route. A list of components and their original and updated versions is attached.
The program builds and loads into the PSoC just fine.
I can power the Pioneer board and I can pair and 'connect' the evaluation board with BLE to a PC running Windows 10 Pro.
I can not, however, get any gestures to do anything when looking at a gallery of photos..
I am also not observing the LED illumination on the Shield as described in both the literature and shown in the video.
I suspect that there is an issue reading the Shield, but I have made several attempts to 'debug' so I can see what the code is doing, but have not been successful.
The information in the Output pane reads as follows:
Device 'PSoC 4200 BLE CY8C4247LQ*-BL483' was successfully programmed at 11/15/2016 11:22:15.
Continuing target program
=thread-group-exited,id="i1"
Error: dbg.M0015: Debugger exited unexpectedly during run. Encountered error (Target disconnected See output window for more information.)
PSoC Creator is running on W7 Pro 64-bit.
The Pioneer board is powered from the W7 PC via USB.
A) Has anyone out there had recent (2016) success with the Proximity Gesture Code in the PSoC 4 on the Pioneer board using PSoC Creator 4.0? If so, what did you do to make the project function?
B) Any pointers on how to get into a debug session?
Thank you in advance for your time,
Show LessHello,
I have problems to setup a TCPWM with inverted Output.
I selected in PWM/Output line signal: Inverse output and when PWM is running the Signal is inverted.
But when I stop the PWM Port Pin goes LOW, but I need HIGH (also Inverse).
Also tried with Output line_n signal (Direct output/Inverse output), but still the same on Stop Port Pin is LOW.
Pull-up Resistor activated still also has no effect.
Regards,
Michael
Show Lessi want to make program header for program my external project which is based on psoc-4.
i have a miniprog3.
till now i am using psoc-4 kit. so dont need header.
can you tell me which pins i have to connect miniprog3 to psoc-4(cy8c4245axi-483) for external programming.
Show LessHello,
I am working on a 24+2ends segmented slider, and would like to Diplex it. I am concerned about the Cp of the segments in a diplexed configuration. I am also curious about increasing the segment height to 20-24mm, so the user has a better chance of hitting the slider that will be hidden under a wood overlay(85mm wide) with no outside visual indication the slider is beneath.
Device is PSOC 4000S - CY8C4024LQI-S412
My traces are 0.16mm wide and are an average of 120mm long total for each diplexed channel.
Slider segments are 8mm wide and 15mm in height using H/4 rule for the dual chevron and .5mm spacing as per datasheet.
4 layer FR4 1.2mm thick
3m 468MP for adhesive
1.2mm wood overlay oil/wax finish.
Should I be concerned about what I am attempting to do? It looks like the 4000s series is able to accommodate 200pF of sensor capacitance each channel will surely fall in that range.
Adam
Show LessHello,
I am an engineering student, I have purchased the CY8CKIT-042-BLE kit. Well, I'm new with the kit and I am trying to write a basic code to writ and read data using an I2C Master.
To write my code, I used this driver : http://www.barth-dev.de/using-the-fram-of-the-psoc-4-ble-pioneer-kit/
What I did, is that I created new project, I put an I2C Master in the schematic and I created a header file then I copied the code from FRAM.h and past it in the new header file.
in the other hand I copied the FRAM.c code and past it into the main.c (I am not sure if this is the correct way to use the driver) when I compile I do not get any errors.
Well, my question is : this is the right way to use the driver ? If yes, If I want to write a code that write and send data from Master then read it from Slave, should I open a new void main after the driver ? and which functions should I use to read and write because I'm confused with all those functions that I find in the documentation : http://www.cypress.com/file/274551/download
Thank you very much for answering,
Saban
Hi,
I need a one shot 30 sec timer in my project with an interrupt on terminal count.
I think the timer component is configured correctly and it works as expected (counts for 30 sec and fires interrupt), when I attach the interrupt component to the "tc" output of the timer.
However, if I attach the interrupt component to the "interrupt" output, the interrupt never get fired (the ISR method is never being entered) although the counter counts down to zero and stops counting as expected being a one shot timer.
What do I miss?
Here is my design (part): https://www.dropbox.com/s/1ndrfp3wzxlobil/one-shot-timer.png?dl=0
Here is my timer config: https://www.dropbox.com/s/zx4625z1thdabub/one-shot-timer-conf.png?dl=0
Here is my code, attached you will find my test project as well:
Show Less#include <stdio.h>
#include "project.h"void readData();
void logMsg();
static char logMsgLine[255];
static uint8 isr_flag_timer_tc = 0;/**
* Timer ISR
*/
CY_ISR( Timer_Int_Handler )
{
if (Timer_ReadStatusRegister() & Timer_STATUS_TC_INT_MASK) {
isr_flag_timer_tc = 1;
}
sprintf(logMsgLine, "Interrupt %d looking for %d\n\r", Timer_ReadStatusRegister(), Timer_STATUS_TC_INT_MASK);
logMsg( logMsgLine );
}int main(void)
{CyGlobalIntEnable; /* Enable global interrupts. */
UART_Start();
Timer_Int_StartEx( Timer_Int_Handler );
for(;;)
{
readData();
}}
void readData(){
// Start the 30 sec timer
isr_flag_timer_tc = 0; // will be set to 1 on tc interrupt
Timer_Start();
Timer_Trigger_Write( 1 );// loop until 30 sec timer terminal count
while(!isr_flag_timer_tc){
// do something until 30 sec are over
sprintf(logMsgLine, " timer count %d\n\r", Timer_ReadCounter());
logMsg( logMsgLine );
CyDelay(1000);
}if (isr_flag_timer_tc) {
isr_flag_timer_tc = 0;
// stop timer
Timer_Stop();
}}
/**
* write a message to some terminal/chanel
*/
void logMsg(char* msg)
{
UART_UartPutString( msg );
}/* [] END OF FILE */
Hi
Can I get PSoC sample Central role program that can connect to Heart Rate Senser peripheral?
Beacuse I want to transfer between central and peripheral use by BLE PIONEER BASEBORAD.
Best Regards,yoshizu
Show LessHi.
I would like to get some SWO trace from CY8CKIT-046 PSoC® 4 L-Series Pioneer Kit. I'm Seggert jlink (ultra+) and J-link gdb server.
Is there any instructions how to configure the printf output to swo? I've checked this, but I don't have Keil or IAR workbench.:
http://www.cypress.com/knowledge-base-article/using-embedded-trace-macrocell-etm-kba90952
Show LessHi all,
I wrote firmware for CY8C4247-AZI controller for Capsense buttons. in that i used Capsense_CSD component design file.I want to use same code to CY8C4045AZI controller. But in component design capsense_CSD is not available. how to add Capsense_CSD component in PSOC 4000s controllers.Please let me know any solution to avoid this.
Show LessHi,
I have CY8CKIT-145-40XX PSoC 4000s prototyping kit.
Original idea was to read e.g. slider position directly from memory via EzI2C. To enable that, I updated the original CapSense V3.0 component to V3.1 to be able to export register map. I trialed the code functionality with Tuner and everything worked as usual.
To get better understanding what is transferred via I2C I was probing the communicating protocol directly with jump wires and logic analyzer. I was surprised that in every read, the whole registrymap is read through I2C, including somewhat irrelevant info such as device and config ID's..
Anyhow, I hooked Arduino as Master and tried to read directly from address SLD_POSITION 0x54, by setting pointer by writing to the same address, but alas, the reading starts always from registy position CONFIG_ID 0x00 position no matter what. I also used Bridge Control Panel without any better results. I start to get data from 0x00.
Have I understood something incorrectly? In EZI2C_Slave_V1-90_Datasheet.pdf document, at page 15, It is said in the first sentence of last paragraph "Read operations always begin at the offset data pointer provided by the most recent write operation".
As an attachment, I added a screenshot from Bridge Control Panel demonstrating the writing/reading I tried to do.
Show Less