PSoC™ 4 Forum Discussions
Hello,
I have a more theoretical question regarding CapSense (implemented using a PSoC4 BLE device):
My application uses CapSense generic sensors to measure the change of a liquid level within a cup (from the outside). The signal is quite weak, but after tuning a decent signal can be observed when the cup is filled. BUT: the raw count value constantly decreases, kind of drifts down significantly. Can you give me a hint why this drifting occurs ? I am perfectly OK with it to happen, but need to know why.
Please note the attached screenshot from the tuner GUI, I added black lines to make the decline visible. The sensor electrodes are made from flexible PCB, following the CapSense guidelines.
Thank you for your help!
Show LessHi,
I am a newbie, working on PSoC 4 to communicate a sensor via SPI.
After reading and trying a lot of documents and example, I still cannot make one SPI example work. Without LCD, how could I test an SPI example?
To read register of my sensor, I need to select and deselect; write one byte address to MOSI, get one dumb byte from MISO, and the write one byte 0x00 to MOSI, the get my data back.
I set a GPIO as chip select pin, and connect MOSI to 3[1], MISO to 3[0], SCK to 0[6]; and wrote the corresponding firmware, however cannot get nothing.
Could anyone help me and have a look?
Thank you very much!
Show LessHello,
for my thesis I do need a clean definition of PSoC devices, apart from company slang. Which I could not really find in the web.
Is it correct to roughly define PSoCs as a combination of a (more or less standard) microcontroller with attached FPGA (digital blocks) and FPAA (analog blocks), and sometimes further peripherals (BLE), integrated in one package and functional unit?
Cheers,
Jannai
Show LessI am trying to work out the power saving methodology for a HID device.
The power saving application note states that its possible to enter a low power mode while still maintaining the connection. It does not explain how to do this.
Ideally, the device would want to have an active mode, slow poll mode, idle mode and stop mode.
The HID Mouse RDK example does have these states so seems to be an ideal model. The first problem with this example is there are no comments at all in the main code body, so its quite difficult to work out whats going on.
In all states except stop, the CPU sleep is the same ie:
if(CyBle_GetBleSsState() == CYBLE_BLESS_STATE_ECO_ON ||
CyBle_GetBleSsState() == CYBLE_BLESS_STATE_DEEPSLEEP)
{
CySysPmDeepSleep();
But this is (I think) waking the CPU every 10ms connection interval so there does not appear to be much difference between all the 3 states.
The questions I have are:
Is there another BLE mode which can be used which maintains the connection but consumes less power (a longer connection interval)?
Does the CPU have to be woken periodically when the connection is maintained (assuming no user task pending)?
In the code before CySysPmDeepSleep(); there is a CyGlobalIntDisable. How is the CPU even waking at all if interrupts are disabled. It definitely does though. Does this mean the BLE is waking it at the connection interval even if interrupts are disabled?
I am getting approx 4 mA of current in all modes but that might be because I am only using a standard multimeter, maybe this is reading peaks only.
Thanks
Show LessHi,
I am developing, a new SW, i have been trying to put my PSOC into DEEPSLEEP during more than 2sec and it is imposible, why?¿ becouse the only way to do this, is with the WDT, i have tried to use Timers, but it is imposible, because you only can set the timer clock to HFCLK, and when you put PSOC into DEEPSLEEP this clock is shutdown.
And my question, are there any other way to do this? i want to SLEEP (DEEPSLEEP) my PSOC during 1 hour more or less....
Thanks for all
Carlos
Show LessHello Mr. Dana
I need some information about the document that you posted in my previous post '' set many alarm using psoc RTC ''
what should be inside int Main function ( ) ? also please check the sequence that I am describing in below code
my answer :
int main( )
{
Q1. can we initializ two alarm here ? /* Alarm1 and Alarm2 structure initialization */
RTC_Start(); /* Starts RTC component */
LCD_Start(); /* Starts LCD */
RTC_SetDateAndTime(TIME_HR_MIN_SEC,DATE_MONTH_DAY_YEAR); /* Set Date and Time */
/* Set alarm mask */
RTC_SetAlarmMask(RTC_ALARM_SEC_MASK | RTC_ALARM_MIN_MASK |
RTC_ALARM_HOUR_MASK | RTC_ALARM_DAYOFMONTH_MASK |
RTC_ALARM_MONTH_MASK | RTC_ALARM_YEAR_MASK);
Q.2 now I have two different alarm times and dates
my answer :
set time and date
set mask
set alarm1 time and date
set mask
set alarm2 time and date
Q3. where to place following line ?
if ( ( Alarmflag1 == 1 ) && ( Alarm1serviced == 0 ) && ( Alarmflag2 == 0 ) ) { // Only service if conditions met
service alarm1
Alarm1serviced = 1;
}
if ( ( Alarmflag2 == 1 ) && ( Alarm2serviced == 0 ) && ( Alarm1serviced == 1 ){
service alarm2
Alarm1flag =Alarm1serviced = Alarm2flag =Alarm2serviced = 0; // Reset all flags
}
}
}
end main function
Show LessI want to send a scan request packet and receive a scan response packet in return, but only when specific advertisement packets are received.
The advertisement packets can contain arbitrary data in the manufacturer specific data area. When a packet contains the right data I would like to respond with a scan response request, and then receive the scan response data packet that follows. I would also like to customise the data in the scan response request (I believe this is possible.)
I can see CyBle_GapcStartScan may do a general scan response request but this appears to send scan responses out to all devices in the white list which meet the limited/general discovery criteria. I thought about receiving an advertisement packet, adding the BLE address to the white list (removing any previous address) and then sending the scan response on the next packet (this is OK, as the delay between sending the scan response and receiving the initial data is flexible.) However, this feels like a clumsy, inelegant solution. Is there a better way?
Thanks for any advice,
Show LessI want to align two clocks running at 100KHz and 1MHz.
1. I declared a Design wide cock running at 1MHz
2. Then dragged and dropped two clock components in the top design.
3. Configured the source of one clock from "EXISTING" 1MHz design wide clock and for the other I used a new divider but the same design wide clock running at 1MHz.
The clock configured from "existing" design wide clock simply does not work.
Please help
Show Less