Hello there,
I implemented code in psoc 4 with uC / OS, where there are tasks and interruptions, but I had a problem with the interruption. The interrupt I created is a button. The interrupt works, but when the interruption comes to an end, the tasks return to where they left off and I would like them to return from the beginning, is there any function of uC / OS III that does this?
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 Lessello there,
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 LessHello,
I am hoping to use the throughput test smaple code to develop an application.. but the code at https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Day024_Throughput does not compile if I use PSoC Creator 4.0 (with update).. It complains about version of BLE component.
I created my own little sample (attached the project) which should advertise, connect and dump data continuously (a few 10s of K of data with 509 bytes at a time).. while I can connect to it using CySmart on my windows PC, most of the packets sent are dropped (I get a error while calling the notification API CyBle_GattsNotification which returns 3 for most calls)..
any help will be greatly appreciated..
Hello,
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 LessHi,
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
Best Regards
Lehsam
Show LessHello,
I am using CYBLE-212020-01 modules which sends and receives some values over BLE from App.
I use Over-the -Air (OTA) firmware update.
The workspace encloses three projects functions are as follows:
1. Launcher project
The purpose of the project is to:
- Start either the Stack or Application project image
- Copy the Stack project image from a temporary location to the persistent location (just after the Launcher project image).
2. Stack project (contains the BLE Stack)
The purpose of the project is to:
- Host the BLE Stack
- Upgrade the Application project image
- Upgrade the Stack project image itself
- Receive updates for the Stack project image itself or for the Application project image
3. Custom Apllication Project
The Stack project is the bootloader.
I have a build that creates a stack.cyacd and app.cyacd.
I would like to combine the two to take advantage of the "Application and stack (combined) update" option of CySmart App.
The reason for this is that my application is using Upgradeable Stack project and so application image must match the correct stack or else device will not boot / operate correctly.
With two separate files, it is easy for client to update incorrectly and "brick" the device.
How can I either create the "combined update" file during build or combine the separate stack and app .cyacd files?
I read the following guide
CyMCUElfTool 1.0 User Guide but It is for PSoC6.
We in our project use CYBLE-212020-01 (PSoC 4.2).
Then I read the following link
But in the previous link Cypress explain how to merge two elf in one file .hex.
How I can convert .hex file combined in a .cyacd2 file for CYBLE-212020-01 (PSoC 4.2)?
Thanks in advance for any replies.
Lucia
Show LessHi All,
I tried to implement I2C communication between Cy8C4025AZI-S412( Slave ) and Pic Microcontroller(Master). The speed is 100kbps and used polling method. When button not pressed then it will sent 0xFF. The polling time is 100msec by PIC controller.
The issue is,
1) Sometimes acknowledge not given by Slave.(need to sent data 3 to 4 times or delay of 30ms then it gives ack ).
I used one example code to develop I2C.
My code is below,
#include <project.h>
/* Macro Declaration */
#define BUFFER_SIZE (1u)
#define PACKET_SIZE (BUFFER_SIZE)
/* The I2C Slave read and write buffers */
uint8 i2cReadBuffer [BUFFER_SIZE] = {0};
uint8 i2cWriteBuffer[BUFFER_SIZE]= {0};
uint8_t flag1=0;
uint8_t flag3=0;
void Received_Data_From_Master1();
int main()
{
/* Eneble Global Interrupt */
CyGlobalIntEnable;
CapSense_Start();
CapSense_ScanAllWidgets();
/* Start the I2C Slave And I2C Address Setting*/
I2CS_I2CSlaveInitReadBuf(i2cReadBuffer, BUFFER_SIZE);
I2CS_I2CSlaveInitWriteBuf(i2cWriteBuffer, BUFFER_SIZE);
I2CS_I2CSlaveSetAddress(0x08);
I2CS_Start();
for (;;)
{
CyDelay(2);
/* With Respect to Master i.e Checked Whether the Master Write Complted Or Not */
if (0u != (I2CS_I2CSlaveStatus() & I2CS_I2C_SSTAT_WR_CMPLT))
{
/* Calling Function to Collect The Data From Master */
Received_Data_From_Master1();
/* Enable this above function when we used the data On Switch Function */
/* Clear the slave write buffer and status */
I2CS_I2CSlaveClearWriteBuf();
(void) I2CS_I2CSlaveClearWriteStatus();
}
if(CapSense_NOT_BUSY == CapSense_IsBusy())
{
/* API For Capsense Update Scanning And Process */
CapSense_ProcessAllWidgets(); /* Process all widgets */
CapSense_RunTuner(); /* To sync with Tuner application */
/* Checked whether Left Button Active or Not*/
if((flag3==0)&&(CapSense_IsWidgetActive(CapSense_BUTTON2_WDGT_ID)) )
{
flag3=1; /* Reseting Left Button Flag */
i2cReadBuffer[0] = 0x01;
while (I2CS_I2C_SSTAT_RD_CMPLT!=(I2CS_I2CSlaveStatus()));
/* Clear the slave read buffer and status */
I2CS_I2CSlaveClearReadBuf();
(void) I2CS_I2CSlaveClearReadStatus();
i2cReadBuffer[0] = 0xFF;
}
else if((flag3==1) && (!(CapSense_IsWidgetActive(CapSense_BUTTON2_WDGT_ID))))
{
flag3=0; /* Setting Left Button Flag */
i2cReadBuffer[0] = 0xFF;
}
/* Checking Right Button active or not */
if((flag1==0)&&(CapSense_IsWidgetActive(CapSense_BUTTON0_WDGT_ID)))
{
flag1=1; /* Reseting the flag*/
i2cReadBuffer[0] = 0x06;
while (I2CS_I2C_SSTAT_RD_CMPLT!=(I2CS_I2CSlaveStatus()));
/* Clear the slave read buffer and status */
I2CS_I2CSlaveClearReadBuf();
( void) I2CS_I2CSlaveClearReadStatus();
i2cReadBuffer[0] = 0xFF;
}
else if((flag1==1)&& (!(CapSense_IsWidgetActive(CapSense_BUTTON0_WDGT_ID))))
{
flag1=0;
}
}
}
}
void Received_Data_From_Master1()
{
switch(i2cWriteBuffer[0])
{
/* After Receiving 00 touch will be Ready to Work */
case 0x00:
i2cReadBuffer[0] = 0x19; /*According to New Document Wants to transmit new data acknowledgement */
POWER_LED_Write(0);
break;
}
}
Any Help will be highly appreciated .
Thanks & Regards,
AsDh
Show Less
Dear community,
i have a workspace containing 3 projects which are the Launcher, BLE OTA Update and Firmware. All projects with exception the launcher using BLE Component and ADC. I use the ADC to measure the battery voltage to use this value in the advertisement of 2 different projects. I would kindly like to know how i can implement my advertising-code in a separate project by using the BLE component and ADC? I would appreciate to edit this "library" code at any time. So dealing with binaries and copy them seems not a good option to me.
Thank you very much for information to solve this.
Daniel
Show LessI 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.
Questions:
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);)
Thanks!
Show Less
We use the Cypress CY8C4248LQI-BL553 CPU and an Ethernet Controller (ENC28J60).
We need to implement a TCP Stack for this system. Do you have some know-how concerning such a case ?
and can we get some support ?
Expert II
Esteemed Contributor
Employee
Honored Contributor II
Employee
Employee
Honored Contributor II
Employee