PSoC™ 4 Forum Discussions
Hello,
We have used CYBLE 022001 module in one of our design.
For CE marking, we need to make a blocking test (reception sensitivity).
For that, I use Cysmart with BLE dongle connected and sending BLE frames to our equipment
But when signal is going trough test equipment, there is too much loss of signal.
Is there a possibility to have Cysmart BLE dongle with external antenna (and to connect it directly to spectrum analyser) ?
I though using Pionner Kit CY8CKIT-042-BLE with eval board CYBLE-202007-EVAL (which has external antenna)
but will it work with Cysmart software ?
Best regards
francois
Show LessI'm having trouble using an I2C connection between my CYBLE-014008-00 and an AD5933 bio impedance chip. This is what I have for my master read and master write functions but I am not sure if they are correct. Any help with these functions would be greatly appreciated.
bool writeByte(uint8 Reg, uint8 value) {
// Send byte to address
I2C_1_I2CMasterSendStart(AD5933_ADDR, I2C_1_I2C_WRITE_XFER_MODE, 1000);
I2C_1_I2CMasterWriteByte(Reg, 1000);
// Ensure transmission worked
if (I2C_1_I2CMasterStatus() != I2C_1_I2C_MSTAT_WR_CMPLT)
{
I2C_1_I2CMasterSendStop(1000);
return false;
}
I2C_1_I2CMasterWriteByte(value, 1000);
// Ensure transmission worked
if (I2C_1_I2CMasterStatus() != I2C_1_I2C_MSTAT_WR_CMPLT)
{
I2C_1_I2CMasterSendStop(1000);
return false;
}
I2C_1_I2CMasterSendStop(1000);
return true;
}
uint8 readByte(uint8 Reg, uint8 *value) {
// Request to read a byte using the address pointer register
I2C_1_I2CMasterSendStart(AD5933_ADDR, I2C_1_I2C_WRITE_XFER_MODE, 1000);
I2C_1_I2CMasterWriteByte(Reg, 1000);
// Ensure transmission worked
if (I2C_1_I2CMasterStatus() != I2C_1_I2C_MSTAT_WR_CMPLT)
{
I2C_1_I2CMasterSendStop(1000);
return false;
}
I2C_1_I2CMasterSendRestart(AD5933_ADDR,I2C_1_I2C_READ_XFER_MODE, 1000);
*value = I2C_1_I2CMasterReadByte(I2C_1_I2C_NAK_DATA, value, 1000);
I2C_1_I2CMasterSendStop(1000);
return true;
}
I'm trying to create my component that has only the CAN module in it. I want to be able to place my component in my project and call one to two functions to setup the CAN bus. I was able to create that but the timing page in the CAN module is giving me issues. Even if I calculate the values and set them in the CAN module in my component, it still gives me this error. Is there a way around this error? Or am I missing something? And does it make sense to create a component that has only the CAN module in its schematic to implement APIs for it?
Show Less
Hello
I want to use PIN1 [6] of CY8C4013SXI-400.
Dear,
please help to advise how to call a c function of main.c file from assembly file, i'm using creator/cy8c4127zai for the design now.
b/r
vincent
Show LessHello Sir,
新做的PCB,采用miniprog3进行程序下载和调试,IDE环境是PSOC CREATOR,可以进行程序的下载,但是不能够单步调试,请问(1)使用miniprog3能否进行单步调试?(2)因为PCB上有电容触摸按键,使用Sense tuner 提示有问题,触摸连不上I2C,无法进行触摸演示,以上两个问题,请问您那有什么建议,谢谢
Show Less
I'm trying to implement the ALP filter with PSOC 4000S, but could not find any documentation on how to implement this.
Any help would be appreciated.
Thank,
Kenneth
Show LessHello there,
Do you know if is possible to change the sysclock frequency for a PSOC 4 dynamically?
I need to run most of the time the PSoC @ 1.5 MHz, but occasionally I need to run at 48 MHz.
CySysClkWriteSysclkDiv(); should do the job... but it doesn't seems to work.
Do you have any suggestions?
Thank you!
Show Less
I have Psoc cy8ckit-042 connected with 2 SCB Uart ports. One to the PC and the other to a SIM7600A GSM module. Programming and debug for the cy8ckit is via the onboard usb port.
P4.0 and P4.1 connected to the SIM7600. P0.4 and P0.5 connected to the PC via a Silicon Labs CP210x USB to UART Bridge.
I have tried multiple communication programs but Putty works as well as others. I can enter all the AT commands to the sim 7600 from putty and they work fine. But I cannot get the psoc to send commands to the sim 7600 without losing quite a bit of the message. I have tried turning the echo on and off. No difference. I’ve tried delays, no difference.
I’m using an interrupt to initiate a simple AT command to the SIM7600. When the interrupt is initiated, It prints to the PC uart (Putty) and it works fine, but I print to the sim7600 and it loses many of the characters.
A similar setup works fine using Arduino. I have tried many scenarios to get this to work on the PSOC but it does not cooperate.
I am using an interrupt handler for each UART for receiving. The basic program came from your CE224406_PSoC4_UART.pdf.
I have attached an archive of the project. You may ignore the functions that are not being used.
Any suggestions?
Thank-you
Show Less*There is a lot of text (hopefully you can learn something) but the question is at the end!
Hi all,
as explained in this previous topic Minimum and maximum overlay thickness for CSX Capsense widgets , a CSX Capsense widget will undergo a capacitance increase (or a rawcount drop) as the finger gets too close to the sensors, hence the importance of picking an overlay with a certain thickness. This effect that we can call signal disparity is explained (even though not mentioned) in the section 7.5 of the capsense design guide for psoc 4 and 6: Effect of Grounding in CSX Method.
I want to try analyzing the exact behaviour of signal disparity on my device. For this, I will test my capsense PCB without any overlay on top of my 3x5 CSX touchpad widget. I am using the CSX tuning code example.
1. Testing without an overlay, with a finger.
Figure 1: Bare PCB, the signal disparity is most important when using capsense this way.
The signal seems to behave the expected way. as I approach my finger, the raw count increases, until I directly touch the PCB. As I start pressing with more force and my finger is squeezed, the raw count quickly drops to 0.
Once I release, there is a weird behaviour I cannot quite explain. It is probably due to the baseline. When I release, the raw counts increase back to a fairly high number and remain high (detecting a touch) even though the touchpad isn't touched anywhere.
Can this be corrected by changing the baseline (I don't exactly understand how to do it?)
Figure 2: Readings from Capsense Tuner UI with a bare PCB
2. Testing with a very thin overlay, with a finger
Figure 3: PCB with a 2mil (0.05mm) thick overlay
I tried adding a 2mil thick kapton tape as an overlay (2mil ~ 0.05mm so 1/10th of min recommended thickness). The behaviour is similar to described above, but the widget is almost usable -- if I do not press my finger too much, the touch reporting in the capsense tuner UI is pretty accurate.
The baseline problem still occurs after removing my finger, but the false touch is much less perceptive. This makes sense, I am keeping the finger at a larger distance than before, so the signal disparity isn't as important.
3. testing with a very thin overlay, with a grounded conductive layer on top
Figure 4: PCB with a 2miloverlay and a conductive copper tape layered on top and connected to ground
I want to have a conductive layer on top of variable overlay thicknesses so I can have a methodical approach to how signal disparity evolves with the overlay thickness.
I am layering a copper tape, connected to ground, over the kapton overlay. The copper tape acts as a grounded conductor (like a finger) and affects capsense signals.
So if I start the MCU with the copper tape grounded, nothing happens as the baseline is set accordingly, and the rawcounts are set to 0.
But if I start the MCU with the copper tape floating, and connect it afterwards, then the capacitance drastically drops as the sensors pair with the grounded copper tape, and the raw counts drastically increase accordingly. This lets me see how much the sensors pair with the conductive layer. I can then repeat with various overlay sizes and determine how distance affects pairing.
Figure 5: Readings from Capsense Tuner UI, left has a 2 mil overlay, right has
I can effectively tell that the pairing is weaker when the overlay is thicker, which seems to make sense as the ground is further away for the sensors to sink into. But somehow I was expecting something different and I don't understand: I am not able to reproduce the 0 rawcount I get when pressing a finger hard on the sensor. I thought the capacitance would be high at low distances, due to signal disparity. Even though I place the conductive layer at 0 distance from the sensors, the raw counts are the highest, but they should be lower with an increase in capacitance as I get too close to the sensors... Why am I not seeing the signal disparity phenomenon with my conductive layer? It works well when testing with a finger as seen in paragraph 1.
Thanks a lot for reading!
Show Less