PSoC™ 4 Forum Discussions
Hello, I need to run CY8C4013 in deep sleep mode waking it somehow with a timer,
At the same time I need to have WDT active.
More the sleep timer shall be somehow trimmed to reduce frequency tolerance.
Is there any sample code implementing these features?
Thanks,
Alfonso
Show LessI have OTA working properly on iOS and can't figure out how to get Android to rediscover the bootloader service once it's enabled. Even with the CySmart app my device does not behave properly. I fire the WriteAttrServChanged() and this obviously works since iOS automatically kicks back to the main screen which forces a reconnect and rediscover of services but with Android I never get the kick back and instead the CySmart app times out eventually and usually returns with an error 133 which leads me to assume something flooded out or the connection was interrupted before the service changed value was received by the generic Service Changed 2A05.
I am programmatically changing the bootloader flag in my own app but since the behavior is the same in the Android CySmart app I assume either the Service Changed characteristic is not being listen to or another issue is happening. Any help would be greatly appreciated since this is preventing OTA on Android for my devices since there isn't a dependable way to programmatically rediscover the service.
void WriteAttrServChanged(void)
{
uint32 value;
CYBLE_GATT_HANDLE_VALUE_PAIR_T handleValuePair;
/* Force client to rediscover services in range of bootloader service */
value = ((uint32)(((uint32) cyBle_btss.btServiceHandle) << 16u)) |
((uint32) (cyBle_btss.btServiceInfo[0u].btServiceCharDescriptors[0u]));
handleValuePair.value.val = (uint8 *)&value;
handleValuePair.value.len = sizeof(value);
handleValuePair.attrHandle = cyBle_gatts.serviceChangedHandle;
CyBle_GattsWriteAttributeValue(&handleValuePair, 0u, NULL,CYBLE_GATT_DB_LOCALLY_INITIATED);
}
Show LessIf you have created a capsense sensor, can the corresponding pins be reassigning at any time, or are they now dedicated capsense pins?
Can you set a capsense pin to be digital high or digital low?
Show LessI would like to use a mcu pin for capsense sensing as well as another sensor on the same pin. I would like to switch between what sensor I am reading from. I do see how to connect a capsense sensor to a analog mux sequencer if that is a possible solution.
Show LessHi everyone,
I have a BLE device which is connected to an epaper-display. This is used to display the key to pair with a smartphone. Works fine and smooth.
My problem now is, that I would like to make one characteristic accessible before I actually pair with the device to be able to select the correct display size.
In the BLE configurations dialog in the profiles tab I set the permissions of the respective characteristic for read and write to "no encryption required, no authentication required, no autorization required". And I hoped that this would allow me to access the characteristic without pairing and bonding.
I use an Android smartphone to connect to the device. But if I try to connect to the device I will always get a bonding request and if I decline this request I immediately get disconnected. I tried it with the CySmart and the nRF Connect app.
Now I don't have a glue where the problem might be: Wrong configuration of the BLE-Component? Wrong handling of the connection request? Android-problem? App-problem? Usecase not possible at all?
Thanks for any hint!
Andreas
I am using cy8c42445 . I want to implement 5 button + 1 linear slider having 5 linear pad. And behind linear slider there is 5 LEDs .i implement 5 button successfully and detect it also.In my application i am using linear slider for volume control using PWM.In my project LED behind slider is ON according to position of finger on slider . My problem is that slider is sensed very fast and all LEDs are ON by just touching on SLIDER. I did not find any solution.
Any help will be Thankful
Show LessHello @ll,
As already published here, the FORTH development environment 'mecrisp-stellaris' is available for download for the following 7 Cypress PSoC's:
Board: / PSoC:
CY8CKIT-043 -> cy8c4247azi
CY8CKIT-044 -> cy8c4247azi
CY8CKIT-046 -> cy8c4248bzi
CY8CKIT-049 -> cy8c4245axi
CY8CKIT-050 -> cy8c5868axi
CY8CKIT-059 -> cy8c5888lti
FreeSoC2 -> cy8c5888axi
See: https://sourceforge.net/projects/mecrisp/files/Cypress/
If you would like to know more about FORTH, you will find the classic Starting-FORTH and Thinking-FORTH by Leo Brodie:
http://thinking-forth.sourceforge.net/
The Definition of ANS FORTH you can find here: http://lars.nocrew.org/dpans/dpans.htm
If you want to know more about Mecrisp-Stellaris you are right here:
https://www.forth-ev.de/filemgmt_data/files/4d2015-arm.pdf
When PSoC evaboard is not listed and you interest on a Forth for your board, please contact me via the e-mail address provided in README of one of the downloads to clarify the possibility of porting
Klaus
Show LessHow can I include an alphanumeric string in the advertising data of a peripheral device so that the central device can know which peripheral is advertising?
Thanks for any help you can offer.
Dennis
Show LessMy design has 25 CSD capsense electrodes. I just want to capture the raw counts at as high of speed as possible. I'm doing no processing. Using a 48MHz modulator clock and 9 bit resolution the Capsense configuration panel shows a scan time of 11us per electrode and 267us "Total scan time" for the 25 electrodes.
When I run my code however, capsense takes much longer to execute. The code looks like this:
for (i=0; i<100; i++)
{
CapSense_ScanAllWidgets();
while(CapSense_IsBusy()) {;}
}
After the for loop I read out the time it took over a serial link UART. I tried scanning individual electrodes using several other methods in the API including :
CapSense_SetupWidget(widgetId
); while(CapSense_IsBusy()) {;}
CapSense_Scan();
while(CapSense_IsBusy()) {;}
and
CapSense_CSDSetupWidgetExt(widgetId
,0u); while(CapSense_IsBusy()) {;} //waits until not busy
CapSense_CSDScanExt();
while(CapSense_IsBusy()) {;} //waits until not busy
and
CapSense_CSDSetupWidget(widgetId
); while(CapSense_IsBusy()) {;} //waits until not busy
CapSense_CSDScan();
while(CapSense_IsBusy()) {;} //waits until not busy
All 4 methods took about 60 times longer than the 267us I expected.
Digging deeper, I measured the time to scan each electrode and noticed that button 17 takes about 14000us to scan by itself. There is nothing different about button 17 on the software side. I'm using the CY8CKIT-145-40XX PSoC® 4000S Prototyping Kit and the pin I'm using for button 17 has a capacitor on it so I'd expect a high count, but pin 19 also has a similar cap and it isn't exhibiting the same behavior. The remaining 24 electrodes each take about 66us to scan. Still 5 times longer than the 11us I was expecting from the configuration panel.
1. Is there a problem with my code preventing it from running at the stated speed in the configuration panel?
2. Why is pad 17 taking so much longer than the others?
Show LessHi!!! I am now using Cypress's PSoC4 BLE to create a BLE Observer and a Dynamic Broadcaster.
First of all, among the BLE 100 Projects provided by Cypress, observer and dynamic broadcaster are being downloaded and tested.
Especially, in the case of observer, power consumption should be configured as low power so that the filter policy is registered as White List Only, and the device registered in white list tries to receive TX ADV packet.
(See the attached observer modified project)
Then, in the case of observer, I think that it will only generate a scan result event when receiving TX ADV packet from the device registered in white list, and stay in deep sleep normally.
And by adjusting the scan window and scan interval, our application spec. I am trying to find the optimal power consumption conditions
However, in the attached console capture screen, SDDSS is output once about every second.
The meaning of the S character is to print to the console when it wakes up from sleep, and the meaning of the D character is to print to the console when it wakes up from Deep Sleep.
I am not sure why the power state works when I do not tx the adv packet in the broadcasts listed in the white list.
I need some advice on this behavior.
Show Less