PSoC™ 4 Forum Discussions
Hello.
We are currently using CY5677 to communicate with our device using the CYBLE-224110-00.
we have found that the use of the CY5677 in a production/manufacturing environment and even in some cases under lab tests, is not stable.
Cysmart crashes often, the dongle suddenly disappears and only a power cycle can make it available for use again.
Please answer the following questions:
1. Is there a more reliable solution than the 5677 Dongle? a more robust and stable version?
2. How do you treat the issue similar to this case CY5677 dongle "Not a valid CySmart dongle!" without using the power cycle solution.
3. is there an industrial level product that can be used instead?
Show LessHello,
In SCB_UartComm01 of sample project, I want to use the circular buffers with both TX and RX software buffer of 64 length like below.
I got the hint from the UART component datasheet.
Therefore, I added an interrupt handler as follows.
Q1:It is working fine under these conditions. Are the both TX and RX interrupt sources in the interrupt request register cleared correctly?
Is the interrupt handler description correct?
Q2:In the datasheet, there is the description "The External interrupt mode is preferred in this case.".
But if I set RX buffer size or TX buffer size greater than the FIFO depth, I can not select the external interrupt.
What does this mean?
Best regards,
Yocchi
Show LessHi,
I'm wondering because I have a problem with I2C Write operation during bootloader mode from I2C Master (another MCU) to I2C Slave (cypress). On bootloader-level, I'm using I2C, and on app-level I'm using EZI2C (here write commands works fine). I know EZI2C is more High-Level API and has two additional checkboxes "Accept matching address in RX FIFO" and "Accept general call address". There is some bigger difference which can prevent proper working?
Show LessWe have various devices using the PsOC4 BLE platform and suddenly finding it is not possible to pair more than one following a recent Windows 10 update.
Believed to be 1909 but could be an earlier build.
This issue also extends to all of the example projects, building projects such as BLE keyboard, BLE Mouse, Battery Level demo or any other example and trying to pair any two in any combination does not work.
The second one gives a Windows error "Try connecting your device again".
The UART on the second one shows:
CYBLE_EVT_AUTH_REQ: security=3, bonding=1, ekeySize=10, err=0
CYBLE_EVT_GAP_ENCRYPT_CHANGE: 1
CYBLE_EVT_AUTH_FAILED: 8
CYBLE_EVT_GATT_DISCONNECT_IND
CYBLE_EVT_GAP_DEVICE_DISCONNECTED: 13
This issue does not happen on earlier windows 10 builds or windows 7.
It is possible to pair the second device if the first is removed, but never two at the same time. It is also possible to pair one of these Cypress BLE devices and any other devices such as a Microsoft BLE mouse etc.
The issue with the second device happens whether the first device is still connected ot not. If the first device is in the paired devices list, the second cannot be paired.
Show LessHello,
I downloaded the "CE210292_WDT_P4S_Example" for PSoC4S.
I can see to be used "CySysClkIloStartMeasurement()" and "CySysClkIloCompensate()".
There is the "CySysClkIloCompensate()" API that effectively compensating for the ILO inaccuracy and allowing a
more accurate WDT interrupt generation.
It doesn't say how much it will improve the accuracy in characteristics.
Q1: What is the percentage within?
Certainly there is no description of compensating when looking at the AC Electrical Characteristics.
Please see the code below
Q2: I think that "CySysPmDeepSleep" API is an example.
So, it does not mean that ”CySysPmDeepSleep” API is absolutely necessary between "CySysClkIloStopMeasurement" and "CySysClkIloStartMeasurement".
Is this correct?
if(CYRET_SUCCESS == CySysClkIloCompensate(DESIRED_DELAY, &tempIloCounts))
{
iloMatchCounts = (uint32)tempIloCounts;
/* Once the counts are ready - stop the ILO measurement and put the device to deepsleep */
CySysClkIloStopMeasurement();
if(CLEAR == interruptFlag)
{
/* Device will wakeup through WDT ISR */
CySysPmDeepSleep();
}
/* Start the ILO measurement after wake up */
CySysClkIloStartMeasurement();
}
Best regards,
Yocchi
Show LessHi Cypress Community...
I want to use the CY8C4745 for one LinearSlider and a full 8bit Smart-I/O port for external control of attached circuit...while not losing the SWD capability.
How can I force (break/delete) the restriction of beginning MagSense sensors on Port2...as I need this full Smart-I/O port for external drive.
If we add more than 8 sensors...Port3 is free to use for additional sensors...where I can change/patch out the restriction for Port2 to add my LinearSlider to Port3 directly while I still can use SWD and have my own 8bit Smart-I/O settings free for use ?
Technically it is possible, as if I add DUMMY 8 sensors on Port2...LinearSlider on Port3 is working fine...
If I use my LinearSlider on Port2...I have to remove SWD to get an full 8bit Smart-I/O free for usage...that's make debuging nearly impossible.
As I need one Sensor only...It would perfect to use them in the upper nibble of Port3, still have SWD and use Port2 for own 8bit Smart-I/O configuration.
Please help before I have to go through all the API code to break Port2 starting MagSense restriction.
Many thanks and best regards.
Carsten
Show LessHi everybody,
i'm working on a project for reading ECG/BioZ from MAX30001. This sensor comunicates with the microcontroller via SPI. I wrote a code to write/ read command to the sensor and everything works well, i can change the settings of the sensor and it replaies correctly, but when I ask reading ECG_FIFO (register 0x21) i get 0x00003F( the ECG_FIFO is a 32 words x 24 bit each sample is made up of 23-6 bit of voltage information , 5-3 bit of ECG data tag and 2-0 Pace data tag. The tags give the information on received sample, in my case 3F mean that the ECG_FIFO and the PACE_FIFO are in overllow, and this happens when microcontroller doesen't read the ECG_FIFO.)
I try to reset the ECG_FIFO but it always gives me 0x00003F.
if anyone has worked with this sensor before, please help me.
I attached the project, with my code.
Show LessHi all,I want to set an output like below pic,the period of 100%(duty cycle) is 60 us another one(20%) is 120 us
but the result on oscilloscope is not what I want,how can I do?
thanks
Show Less
The BLE HID Keyboard example is software simulated keypresses. I want to add a physical button to a pin on a CY8CKIT - 042 - BLE A that when pressed sends a key such as, "a". I want the device to advertise as an HID KB to windows via BLE rather in order to avoid needing a 3rd party key remapper.
The BLE HID Keyboard example included w/ PSoC 4.2 sets, "SW2" to input a capsLockPress. I wondered if someone could help me change this to simply send an ASCII keyPress such as, "a" rather than caps lock. Specifically w/ the code, and various areas where code needs changed as well.
Any guidance is appreciated, however it would be extra helpful for specifics, if not a simple walk-through.
Here is code from BLE HID Keyboard example in PSoC:
void SimulateKeyboard(void)
{
static uint8 keyboard_data[KEYBOARD_DATA_SIZE]={0,0,0,0,0,0,0,0};
CYBLE_API_RESULT_T apiResult;
static uint32 keyboardTimer = KEYBOARD_TIMEOUT;
static uint8 simKey;
static uint8 capsLockPress = 0u;
uint8 i;
/* Scan SW2 key each connection interval */
if(0u == SW2_Read())
{
if(capsLockPress < KEYBOARD_JITTER_SIZE)
{
capsLockPress++;
}
else if(capsLockPress == KEYBOARD_JITTER_SIZE)
{
keyboard_data[2u] = CAPS_LOCK; /* Set up keyboard data */
keyboardTimer = 1u; /* Clear Simulation timer to send data */
capsLockPress++;
}
else /* Ignore long key pressing */
{
}
}
else
{
capsLockPress = 0u;
}
Show Less