We know that the "CE210291 - PSoC® 4 CapSense® Low-Power One Button" project transitions between Deep Sleep and Active mode to achieve CapSense with low power consumption. When the Deep Sleep current is measured using CY8CKIT-041-40XX with the power supply voltage set to + 3.3V, it is several μA.
On the other hand, when the Deep Sleep current is measured with the power supply voltage set to + 5 V and the VREF set to 2.021 V, approximately 350 μA is consumed.
Do we need to put VREF to sleep before executing CySysPmDeepSleep ()?
If the power supply voltage is + 5V and the Vref is 2.473V, the Deep Sleep current will be several μA.
We would like to adjust the gain of raw count value with Vref.
I have a large project which I am trying to add a new characteristic to an existing service. I am using the CY8C4248LQI-BL583 chip and I can't seem to get the BLE APIs to properly generate. I keep getting an error when referencing the characteristic's handle. Note that this project is configured for OTA updates so I have a bootloader and a bootloadable projects.
Steps taken so far:
1. Go to the bootloader project, open the BLE 4.2 component, navigate to profiles, and add my new "custom glows" characteristic under the LED service. I set the read / write properties and the UUID of the characteristic.
2. I delete the automatically generated custom descriptor and add a CCCD, as instructed by the documentation.
3. Click OK, then clean / build the bootloader project.
4. I clean / build the bootloadable project.
5. I navigate to my bleCallback.c file in the bootloadable project and try to reference the newly added characteristic handle (as such: CYBLE_LEDS_GLOWS_CONTROL_CHAR_HANDLE) and it throws an error that I'm using an undeclared identifier.
The strange thing is if I navigate to the CyBle_custom.h file in the bootloader project, I see my CYBLE_LEDS_CUSTOM_GLOWS_CHAR_HANDLE value defined. I just can't reference it in my bootloadable project.
Also, my newly defined characteristic handle does not show up in the cyapicallbacks.h file of my bootloadable project. But, this file does contain all of the handles for my previously defined custom characteristics.
Does anyone have any thoughts as to what I'm doing wrong here?
I should note that I have recently migrated from a CY8C4148LQI-BL453 to the CY8C4248LQI-BL583 I'm using currently. This is my first time manipulating the BLE stack on this new MCU.Show Less
I am trying to connect to a PSOC4 BLE device via PC using Cypress DLL.
When I try to pair to the device, the DLL function (result.Device.Pair) returns a "fake" success, because the device does not show that pairing did succeed at that moment.
1. Is there a way to know if pairing truly succeeded? Checking device side is not an option.
2. If not, how long does "result.Device.Pair(cyPairSettings)" take?
3. This is another issue, why does sometimes GattMtuExchanged (..) does not occur?
(after running :Peripheral_.GattClient.ExchangeMtu(cyGattExchangeMtuInfo);)
What methods are available to tune capsense on a design that has only SWD pins available for probing?
A) Is it possible to run CapSense Tuner functionality over an SWD interface?
B) Can an Oscilloscope be used to see how a CapSense sensor is being charged then drained?
I understand Oscilloscope probes will add some amount of capacitance to change the performance.
I can use PSoC programmer to program the target chip,please see attached picture 1.
But I want to use PPCli to download, but I can’t do it. Here is my attempt to follow the instructions.
Below is the command I tried：
>OpenPort MiniProg3/1014DD0004C4 "C:/Program Files (x86)/Cypress/Programmer"
Device is not in ISSP mode.
Calibrate returned 80004005
command not found
Device is not in ISSP mode.
Program returned 80004005
Device is not in ISSP mode.
Verify returned 80004005
Q:How to use PPCli to download a Hex file to the target chip (CY8C4122LQI-433)???
Looking forward to your reply, thank you very much!!Show Less
I created a program in Psoc 4 BLE using uC / OS III, however when I add a task for the button and send it to Psoc and put it to work, the other tasks start normally, but do not do their functions normally, that is , they start and remain the same as they started, without doing their job. Could someone please check my program for me. The problem is in the App_Botao_Pedestre_1_Task task.
To access the project, open Psoc Create and then click on "file-> Open-> Project / workspace" and open the folder "Micrium\Examples\Cypress\CY8CKIT-044\OS3\PSoC\OS3.cywrk"Show Less
I have a PSOC 4 MCU with BLE 4.1
I would like to understand if there is a way to verify a write response was actually sent to a write request?
Today, I use this API function provided by cypress:
The function is said to return the following options:
* \return * CYBLE_API_RESULT_T : Return value indicates if the function succeeded or * failed. Following are the possible error codes. * * Errors codes | Description * ------------ | ----------- * CYBLE_ERROR_OK | On successful operation * CYBLE_ERROR_INVALID_PARAMETER | 'connHandle' value does not represent any existing entry in the Stack * CYBLE_ERROR_INVALID_OPERATION | This operation is not permitted * CYBLE_ERROR_MEMORY_ALLOCATION_FAILED | Memory allocation failed
So even if I get CYBLE_ERROR_OK returned, it doesn't necessarily mean that the response was sent yet. I understand that it just means that the request to send a response has been received successfully by the stack and it will now take care of it asynchronously. This is a problem for us because we need to reset the MCU immediately after receiving a specific write request. But we need to send a response before the reset, otherwise, it will cause a problem in the device that had sent the write request.
So we need to be able to know that the response has actually been sent. How can we know this?
in our products we are using the CYBLE-022001-00 controller. We have sold more the 10'000 units and got a lot of consumer returns. The reason is that the Flash content of a specific section got lost.
The FW is calling WriteUserSFlashRow to write some information provided by the production script into the flash. After a while it turned out, that those information are gone. All other sections in the flash are still ok, the FW is running. After analyzing the code it turned out, that the FW reads out this section and write it back. I think that could be the root cause but I'm not sure.
- Did someone observe same issues?
- How to check if the brown out reset (BOR) is enabled?
- What are the maximum write cycles to the Flash?
Thank you for supporting me
I have an application where I am trying to minimise current draw when waiting for an external trigger signal, but then need the PSOC to leap out of bed and set one of my GPIO pins high as quickly as possible - I'm talking sub 10usec after the trigger is received, if possible.
I'm putting my code into Hibernate and triggering it out of this mode with a GPIO interrupt. But I'm coming up against a couple of issues:
1. In the default start up code that PSOC Creator spews out (cyfitter_cfg.c), there are a number of delays (one of them is 500msec!!) slotted into the startup code to allow various clocks to settle. So, if I leave the cyfitter_cfg.c as is, I've got no hope. I'm seeing delays of 520msec or more between when the trigger occurs, and when my GPIO is set high.
2. In attempt to get around the above issue, I manually changed cyfitter_cfg.c so that the very first thing it does is write to one of my GPIO pins, but I think some other code needs to run beforehand, so that the appropriate GPIO is configured correctly (in my case as an output with Strong Drive). This is where I read this: https://community.cypress.com/t5/Knowledge-Base-Articles/GPIO-State-during-Startup-in-PSoC-4-KBA227963/ta-p/249649
I read in the datasheet for the PSOC4 that the wakeup time for the PSOC4 to exit Hibernate mode is 3msec, but its not clear what this refers to, particularly given the fact that there is a 500msec thumb-twiddling delay inserted into the start up code by default.
Does anyone know a way I can get my GPIO pin set up and write a "1" to it in the sort of time frame I'm needing? (< 10usec after the trigger signal)
I have created a trackpad using the PSoc 4 MCU that will be utilized as a BLE Mouse to control a cursor on a computer screen. I would also like to collect information on the position of the finger on the trackpad. Up until now, I have used the Launch tuner to log this position data, however, I would ideally like this to be done on a computer software. How can change the provided BLE HID Mouse code by Cypress to read information related to the position of the finger on the trackpad rather than the displacement?
Thank you,Show Less