PSoC™ 4 Forum Discussions
text.format{('custom.tabs.no.results')}
Hi i have a problem reaching the recommend 70% of the maximum value of the raw counts.
I am testing my own designed coil for a MoT system. Although i already set the value for the IDAC to the maximum of 127 i can only reach a value for the raw count of 2100. (The maximum value for the raw counts is 10434 and 70% are 7304)
The coil the following values
Dout: 15 mm
Shape: circular
Trace width/space between: 4 mills
Turns N: 27
Layers: 4
copper thickness: 35 u
The overlay is aluminium with a thickness of 0.5 mm and the Spacer between Coil and overlay has a thickness of 0.5 mm.
The tank capacitor has a value of 100pF and the resonant frequency is at 2.28MHz.
The value of the RLx resistor is 6,34kOhm and the amplitude Vamp at resonant frequency is 2,17V.
As i meet all the limits (Rp<50kOhm, 45kHz<f0<3MHz) i dont understand why i cant adjust the raw counts to the desired 70% of Maximum value
Could it be that the IDAC has to less power to support such a configuration?
Or is it a matter how accurate i adjust the Vamp Value to 1,8V?
Or is there any other reason i dont see for that problem?
Show LessHi,
We use PSoC4L with USB and SPI components.
And now We are considering implementing Bootloader.
We read the application notes of SPIBootloader and USB HID Bootloader, and understand the operation of each.
Therefore, we are considering the following specifications,
For example,
When PSoC4L is powered on while pressing switch A, SPI Bootloader starts.
When PSoC4L is powered on while pressing switch B, USB HID Bootloader starts.
We thought that we could do this by switching the communication components of the Bootloader component,
but we don't know how to switch because that API does not exist.
Is it possible to use a Bootloader that switches multiple communication peripherals in the first place?
Do you have a reference project if possible?
Regard,
Show LessHello!
I am using CY8C4014FNI-421AT (PSoC 4 WLCSP) device for I2C communication with a decoder on my prototype board.
I was trying to program my PSoC 4 device on the board using MiniProg3, but I keep losing the program during the power cycle. Based on the observations, I could see that the program is not saved to the PSoC Device flash and I have to program the device every time I reset / power down and restart the device.
But using the CY8CKIT-040, I could see that the program gets saved in the Flash and hence re-runs successfully after switching off and on the device.
I tried boot loadable option but still couldn't restore the program upon reset or device power down.
It will be great if someone could review and advise me on how I can save the program to PSoC 4 device flash so that I only need to program the device once using MiniProg3.
MiniProg3 Specifications:
Programming mode: Power cycle (As PSoC 4 WLCSP doesn't have XRES reset pin)
Protocol: SWD
Voltage: 3.3 V
Best Regards,
Nandhini Jayapandian
Show LessHello,
We have a question about assigning spi_select of SPI slave on P6.4 or P6.5.
In case of SPI master mode, we can assign spi_select on P6.4 or P6.5 like below.
But in case of SPI slave mode, we can not assing spi_select anywhere like below.
In conclusion, we can not assign spi_select of SPI slave mode on P6.4 and P6.5.
So, we can not assign SPI slave on P6.x, right?
Best regards,
Yocchi
Show LessHi everybody,
I'm a beginner on PSoC development, and I have an application to do for my project, I have some questions to guide me:
The application has two operating modes: normal and low consumption.
After startup, the application directly enters normal mode. It switches to low consumption mode after pressing a button Switch SW1. It returns to normal mode after pressing the SW2 button. (On my card development PSoC 4200L I have two switches: SW1 for reset, and SW2 it's free and I don't know if possible to implement this function, What do you think, if you any suggestion feel free)
in low consumption mode, nothing happens.
in normal mode, here is what happens:
> an IDAC produces a fixed current, preconfigured, which passes through a resistance of 15 ohms. The voltage across its terminals is sent to the input of an AOP mounted as a non-inverting gain amplifier x2. The output voltage of this AOP must be equal to 1.65 V (it is, therefore, necessary to adjust the current of the IDAC according to the resistance and the gain).
> the output voltage of the AOP is converted by an ADC every 2 seconds and transmitted by UART to a PC
In this case, How can I configure the ADC SAR?
> an LED flashes every second to indicate that the PSoC is in normal mode.
In this part, I will use just a pin and led or I should use PWM components?
Thanks in advance,
Show LessI can't seem to be able to set or get the CYSPP packetization settings with the latest PSoC4 EZ-Serial v1.1.1.
The error is 0203. I am simply trying to get/set the settings with no remote peer connected and while not operating in data mode.
Show Lessi have a developed a program on interrupt of getting a character ahead of one on hyperterminal (eg: a gives me b, b gives me c etc. ) now i have to develop a programin which i store my name and print it unil \n function is used.i was told to use a put string function and then proceed again.. but i m very new to programming and i have to submit my project in less than 2 days.. please help what to add and where. ?
sharing the program with you all.. please help me??
Show LessHi,
============
BACKGROUND
============
I have a customer who is trying to create a water-proof application prototype with CY8CKIT-149.
And when they changed the sense clock of one sensor from the CapSense Tuner, all CapSensor's count got higher,
and even after they changed the sense clock back to the original value, the reading counts remained similar (higher than before).
Interestingly we could not reproduce the problem at our site, but from the symptom,
I imagined that there should be remaining static.
So I wrote a function, which will change the driving mode of the sensor pin to GPIO pull-down,
and let the pin discharge the static for a while and then restore the CapSense setting.
At the customer site, this method worked OK.
But the customer is wondering if this is the recommended method and/or this function can be applied to the production version.
==========
QUESTION:
==========
So, would you teach me if there is/are better method to discharge the sensor when sense clock changed.
And/or if changing the drive mode of the CapSense pin to GPIO pull-down and later restoring it is acceptable solution for production device?
The discharge function I wrote was
===============
/**********************************************************************************
* Function Name: discharge_btn0
***********************************************************************************/
/**
* BTN0 : P4[4]
* Drive Mode: GPIO_PRT4_PC[14:12] = DM4[14:12]
* 0x0: OFF:
* Mode 0 (analog mode): Output buffer off (high Z). Input buffer off.
* 0x1: INPUT:
* Mode 1: Output buffer off (high Z). Input buffer on.
* 0x2: 0_PU:
* Mode 2: Strong pull down ('0'), weak/resistive pull up (PU). Input buffer on.
* 0x3: PD_1:
* Mode 3: Weak/resistive pull down (PD), strong pull up ('1'). Input buffer on.
* 0x4: 0_Z:
* Mode 4: Strong pull down ('0'), open drain (pull up off). Input buffer on.
* 0x5: Z_1:
* ode 5: Open drain (pull down off), strong pull up ('1'). Input buffer on.
* 0x6: 0_1:
* Mode 6: Strong pull down ('0'), strong pull up ('1'). Input buffer on.
* 0x7: PD_PU:
* Mode 7: Weak/resistive pull down (PD), weak/resistive pull up (PU). Input buffer on.
*/
#define DRIVE_MODE 0x3
#define DM4_BIT_OFFSET 12
#define DM4_CLEAR_MASK 0xFFFF8FFF
void discharge_btn0(void)
{
uint32_t saved_value ;
uint32_t reg_value ;
saved_value = CY_GET_REG32(CYREG_GPIO_PRT4_PC) ;
reg_value = saved_value ;
reg_value = (reg_value & DM4_CLEAR_MASK) | (DRIVE_MODE << DM4_BIT_OFFSET) ;
CY_SET_REG32(CYREG_GPIO_PRT4_PC, reg_value) ;
CyDelay(1) ; /* wait 1 ms */
CY_SET_REG32(CYREG_GPIO_PRT4_PC, saved_value) ;
}
===============
And sense clock change detect function is
===============
/**********************************************************************************
* Function Name: is_btn0_sense_clock_changed
***********************************************************************************/
/**
* Detect BTN0 Sensor Clock change
*/
int is_btn0_sense_clock_changed(void)
{
static int prev_btn0_sns_clk ;
int result = 0 ;
int btn0_sns_clk ;
if (prev_btn0_sns_clk == 0) {
prev_btn0_sns_clk = CapSense_dsRam.wdgtList.btn0.snsClk ;
}
btn0_sns_clk = CapSense_dsRam.wdgtList.btn0.snsClk ;
if (prev_btn0_sns_clk != btn0_sns_clk) {
result = 1 ;
prev_btn0_sns_clk = btn0_sns_clk ;
}
return( result ) ;
}
===============
Attached is the whole project, which is CE220891 with a guard sensor.
moto
Show LessHi ,
I am using the cy8c4128lqi-bl543 and the cy8c4128lqi-bl553 product. We have placed an Xtal of 24MHz with 20pF load capacitance (Cypress requires 8pF) in ~1000 PCBA.
Can we use the tuning suggested in the https://www.cypress.com/file/139476/download (Xtal tuning reference design) for tuning of that load to the correct one?
Show LessRecently I used github as scm for a private repository for which i chose "Unlicense" license type.
Since it is a private repository this should not really matter, but what if I want to make it public?
Would I have to mention Cypress copyright, license, PSOC creator version(s) ... somehow?
Whould there be there any templates for this somewhere?
Show Less