PSoC™ 4 Forum Discussions
text.format{('custom.tabs.no.results')}
Hi ,
因为 PSoC4 TCPWM组件最多只有5个,想请教一下,Smart IO 是否可以将一个 PWM 组件的信号路由多路出来(例如可以用来控制多路灯),如何单独的控制每一路?
谢谢!!
Hi, Community
I have something I would like to confirm about the generation of Capsense architecture.
In table2 Device family of AN85951, we can see that PSoC4000 is the 4th generation of CAPSENSE.
However, the Product over view document "PSoC 4S-Series: Scalable, Smart MCU Portfolio" (page 11) available from the product homepage states that PSoC4000 is 3rd generation.
I could not identify which is correct from the datasheet, so please let me know the correct answer.
Best Regards,
Chihiro Tatebayashi / NEXTY
Show LessI'm porting a project from another CPU that measures capacitance for level detection. Yes, I know CapSense can do this, but the complexity is huge overkill for this project, and trying to sort through it all and distill a simple case like I need was daunting. So you might say I'm reinventing the wheel, taking advantage of some of the PSOC features, possibly derived from CapSense. The basic algorithm is as follows:
- Set the pin as an open drain output low (to force it to zero)
- Switch to hi-z analog and pull up with an IDAC
- At the same time start a timer
- There is a comparator on the pin. When it transitions, the timer value is captured
The count of the timer will be proportional to the capacitance on the pin, because the IDAC is charging that capacitance and the comparator indicates when a certain charge level has been reached and captures the elapse time.
My biggest issue is that I don't know how to switch from open drain to analog. I thought that SetDriveMode should do it, and that the analog output (which is a small current) would just be overridden by the open drain pulling it down. However, it seems that the open drain isn't in the pin circuit at that point. I can't seem to find a register that switches the pin to analog, other than the mode, or that disables the output circuitry because it is connected to the IDAC.
A similar scenario exists in trying to read resistive touch screens where some pins need to drive high or low at certan times and at other times become ADC inputs.
Is there a way to do this from the program?
A related problem I found with the 4200M was that I couldn't find a way to access the reference. It seems that all reference outputs are dedicated. I wanted a reference voltage to be an input to a comparator, but I couldn't find a way to do that or to bring it out to a pin so I could then re-insert it. I did the next best thing--I sent the other IDAC to a pin and attached a known pull down resistor to it to generate a regulated voltage, and used that pin as an input to a comparator, so I have a work around, but I was surprised that I couldn't access the reference directly.
Wilton
Show Less
I've worked with other kits and processes, and haven't seen this, but I have two problems.
1. When I run the kit with PSOC creator (download and run) everything works fine. But after it is programmed, if I unplug the USB and plug it back in (to provide target power. It doesn't start--i.e. I assume it doesn't get a reset. I would expect power on reset to take care of this. Looking at the schematic, there is no pull up on reset or a capacitor to ground or other way to externally do a POR, but the IC is supposed to reset. Maybe KIT-PROG2 is holding it in reset? My goal is to leave KIT-PROG2 attached so I can access data via the virtual com port, and also possibly update the code.
2. After I plug USB back in, if I press reset on the KIT-PROG2 (which asserts XRES on the target directly) it does come to life. Of course that isn't useful in an embedded application with no UI. But maybe it sheds some light on the first problem. HOWEVER, one of my serial commands that starts an I2C device operating never returns when the program starts this way. Looking into it, I found that it is stuck in the default interrupt handler and it got there after an I2C status function disabled interrupts read some stuff from the I2C working memory and then re-enabled interrupts on exit. When it re-enabled interrupts is when the unhandled interrupt occurred. Strangely, if I download and run this unhandled interrupt doesn't occur, only if it was powered up and then XRES asserted and then this status function called. Seems like restoring interrupts turns on more than it turned off or something.
Any ideas on either of these?
Thanks,
Wilton
Show LessHi,
My customer need FW test that will enable BLE certification (i.e. will provoke the behavior of the BLE track as required in BLE certification tests).
Do you have one? In the form of ready-made bins or libraries?
Thanks for help.
Show LessI'm using CY8C4248LQI-BL543 chipset and PSoC 4.4 IDE. I'm using BLE chipset as peripheral device. In the Gap settings of PSoC 4.4 IDE, I wrote my device name (15 bytes). after connecting to my android app, I'm sending new device name of same length (15 bytes) to my chipset. when I disconnect my app and try to scan the available ble devices then I'm getting my NEW DEVICE name in stead of old device name. but the problem is that it is not updated in to the flash. because if I power off my chipset and again power ON it then I'm getting the old DEVICE NAME. so please go through the below code and give any suggestions regarding my problem. I implemented below code with the help of the below thread link
Show LessIn which folder are the components installed by Component Installer placed? Can the user specify it?
If I build after using this, it will get an error as the installed path doesn't seem to be readable. (It seems that the Japanese name is included in the folder path and Creator cannot read it).
Thanks,
Tetsuo
In the baseline update algorithm, I have some confusion.
1、Baseline is updated by low-passfiltering raw counts if the current raw count is within a range of (Baseline – Negative noise threshold) to (Baseline + Noise threshold). In this process, baseline is not updated when the fingers touch, and baseline tracks the rawcount when the fingers leave. But why doesn't it go back to the original baseline, and does that make diff unreliable?
2. The raw count value of a sensor may vary gradually due to changes in the environment such as temperature and humidity. But how does baseline compensate for raw count temperature and humidity?
3. I set CsdRawCountCalibrationLevel value is 85, but every time the value of the initialization is not fixed, is this normal? I want to fix the size of the baseline, or circle it to a smaller range, is that possible?
Thanks!
Kind Regards
BonesBao
Show LessHello
I'm running into trouble with a PCB I've designed: It was my intention to power a PSoC4 4100S - CY8C4146LQI-S433 - using externally regulated supplies and thus I've shorted VDDD = VCCD = 1,8V. The VDDA supply is generated using an LDO such that 5,0V ≥ VDDA ≥ 1,8V. However, after submitting my PCB for production, I noticed that the specified voltage range for VDDA seems to also only be between 1,7V and 1,89V in the externally regulated mode. Anyhow, the PSoC device still works up to VDDA > 3,6V after some testing. When the PSoC is configured in internally regulated mode (even though VDDD and VCCD are shorted) the behaviour is identical. Any thoughts on why the PSoC shuts down when VDDA > 3,6V?
Kind regards
Show Less
I am having difficulty waking up from Hibernation with an external applied voltage on one of the GPIO (cannot use the LVCOMP)... I believe I have defined everything correctly, but I cannot get the system to respond to the applied wake-up voltage.
Show Less