Compatibility between CYBLE-022001-00 and CY5671 PROC BLE MODULE

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi, I've developed an application using the CY5671 PROC BLE MODULE, using the Pionner kit, it works withthe FindMe profile and also sends notifications for the battery value. It was tested with a mobile app and they are both working. After testing it I have changed the target to the CYBLE-022001-00 (using the Project/Device Selector) and changed the pins used (the application is using 3 output pins and one ADC input pin), in order to match the hardware design using the CYBLE-022001-00. I have currently no access to the CYBLE-022001-00, because the test is being done elsewhere, but I have been informed that they were able to see some advertising messages but they try to connect to the device and it fails, and also observe a strange behavior in the power supply, it is regulated to 4.2V, and with the software I sent it drops to 3.8V, but keeps at 4.2 with other firmware. My initial suspicion was that I might be using wrong pins (especially output pins) that could be causing some short circuit, but this isn't the case, we are only using 4 pins that have been confirmed...

   

Any idea of what could be the problem? Any particular care when migrating working code from the CY5671 module to the CYBLE-022001-00 module?

   

Best regards

   

Fernando

0 Likes
1 Solution
Anonymous
Not applicable

Hi, thanks again for your help. I have now the module with me and it is working, it was an issue with the power supply control pin when used in unexpected conditions (without a battery present), that was switching off the power supply. Nevertheless, I'm still observing a difference between my initial test device (CY5671 PROC BLE MODULE on the Pioneer board) and the final device (CYBLE-022001-00) that I'm not able to justify. The hardware designer made a high impedance voltage divider to monitor the battery voltage (a series of 2 resistors of 910k and 220k), In the first module I was reading the battery voltage well in the ADC when compared with the multimeter read. Not changing the code (only changing the target device to the  CYBLE-022001-00), I'm now reading almost half of that value (same schematic, only different module and mapped to a different pin). The reference used is internal bypassed on both. Reading the  CYBLE-022001-00 datasheet I observed that the ADC internal impedance is very low (2.2k), so if this is real, it will have a huge impact on the voltage divider, it must have an opapm to buffer the signal between them, but this still doesn't justify the different I'm observing between the two different modules. Any idea of the reason? 

   

Thanks in advance!

   

Best regards

   

Fernando

View solution in original post

0 Likes
7 Replies
Anonymous
Not applicable

Besides the pins changing, I wouldn't see a difference in handling the chip/firmware itself. Possibly, make sure you have the new device selected to ensure there isn't hardware differences for routing/analog configurations?

   

Have you tried debugging the chip while it is running? If it locks into an infinite loop/crashes, then it would show the power drop from sucking power to do nothing 🙂

0 Likes
AnjanaM_61
Moderator
Moderator
Moderator
5 comments on KBA First comment on KBA 5 questions asked

Hi Fernando,

   

E.pratt is correct.

   

There should not be any problems on migrating from the CY5671 module to the CYBLE-022001-00 module.

   

One thing , which you have to do is ECO cap trim setting as in KBA -  http://www.cypress.com/knowledge-base-article/eco-capacitance-trim-values-ez-ble-modules-kba218990

   

Please test with other CYBLE-022001-00 module as well just to confirm if the previous module have any problems.

   

Thanks,
Anjana

0 Likes
Anonymous
Not applicable

Hi e.pratt and Anjana, thanks for your help! I'll get the device with me and will try to find the cause of this problem. For sure I'm not using the ECO cap trim according to the KB article referred, but I'm using the following code imported from a low power app note, also dealing with the ECO, could it be the cause?

   

Best regards

   

Fernando

   

#define CAPACITOR_TRIM_VALUE       0x00004355

   

 

   

        case CYBLE_EVT_STACK_ON:
            /* load capacitors on the ECO should be tuned and the tuned value
            ** must be set in the CY_SYS_XTAL_BLERD_BB_XO_CAPTRIM_REG  */
            CY_SYS_XTAL_BLERD_BB_XO_CAPTRIM_REG = CAPACITOR_TRIM_VALUE;    
            /* Get the configured clock parameters for BLE sub-system */
            CyBle_GetBleClockCfgParam(&clockConfig);    
            /* Update the sleep clock inaccuracy PPM based on WCO crystal used */
            /* If you see frequent link disconnection, tune your WCO or update the sleep clock accuracy here */
            clockConfig.bleLlSca =   CYBLE_LL_SCA_000_TO_020_PPM;
            /* set the clock configuration parameter of BLE sub-system with updated values*/
            CyBle_SetBleClockCfgParam(&clockConfig);

0 Likes
Anonymous
Not applicable

I have noticed the module not working for incorrect ECO cap trim values, but it ends up being edge-case more so than general use-case. If you know that the ECO cap trim values need to be adjusted/changed, I would start with that first, since the code/schematic components are generally handled very well when transferring between different IC chips. (The software is all digital, and thus easy to recompile. The schematic components are developed as general-purpose modules made using verilog/analog components)

0 Likes
Anonymous
Not applicable

Hi, thanks again for your help. I have now the module with me and it is working, it was an issue with the power supply control pin when used in unexpected conditions (without a battery present), that was switching off the power supply. Nevertheless, I'm still observing a difference between my initial test device (CY5671 PROC BLE MODULE on the Pioneer board) and the final device (CYBLE-022001-00) that I'm not able to justify. The hardware designer made a high impedance voltage divider to monitor the battery voltage (a series of 2 resistors of 910k and 220k), In the first module I was reading the battery voltage well in the ADC when compared with the multimeter read. Not changing the code (only changing the target device to the  CYBLE-022001-00), I'm now reading almost half of that value (same schematic, only different module and mapped to a different pin). The reference used is internal bypassed on both. Reading the  CYBLE-022001-00 datasheet I observed that the ADC internal impedance is very low (2.2k), so if this is real, it will have a huge impact on the voltage divider, it must have an opapm to buffer the signal between them, but this still doesn't justify the different I'm observing between the two different modules. Any idea of the reason? 

   

Thanks in advance!

   

Best regards

   

Fernando

0 Likes
Anonymous
Not applicable

Answering to my question, the problem was solved raising the ADC sampling time. since the source was high impedance, it took some time to charge the sampling capacitor, I had to raise it from 1us to 98us, and now it is working well. I didn't understand why with 1us it was working well on the Pioneer board, it should have a similar behavior on both devices.

   

Best regards

   

Fernando

Anonymous
Not applicable

Interesting. I would assume that the difference in ADC impedance is affecting this, unless you had to change the voltage divider in the hardware cross-over. Glad you found the problem!

0 Likes