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 :)
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.
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?
#define CAPACITOR_TRIM_VALUE 0x00004355
/* 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 */
/* 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*/
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)
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!
1 of 1 people found this helpful
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.
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!