Hey, guys! This problem has been solved. It's not a software problem. It's a hardware error. Don't connect the ground wire of I2C equipment to 19 of the gecko development board. The manual says that the hardware is not a power source, but a common pin。
Unfortunately, the datasheet and your assessment are correct - the standard UART interface on the CP2105 does not support UART break.
You may be able to emulate the break by configuring the TXD in open-drain and tying TXD to an unused GPIO (also in open drain mode), then issuing a GPIO toggle command for the UART break. There is also no way to pull all pins to low state.
Try programming the serial number of the two devices so that they're different, if they are currently the same. I've attached utilities to this post, you'll want to try running CP210xSetIDs.exe and change the "Serial Number" field to be unique on each device.
I've found my problem. For the OTP-index I be counting from zer; so for a brand-new device the 1st available OTP config is index 3, not 4. Once I've programmed the currentBootConfig to 3, it reads back correctly using CP2114_GetDeviceCaps.
The reason DMA callback is only called twice is because of its parameters. There are 3 parameters in the DMA callback function, but the userPtr is set to a pointer pointing to adcSampleDataQueue. The callback parameters and the userPtr need to match. Because you can only pass arguments to the callback function through the userPtr, you will need to change your DMA callback function to accept one pointer as an argument.
You're right - the RTCC doesn't have a way to account for the fact that years divisible by 100 (but not by 400) will not be leap years. As a quick test here, I confirmed that the RTCC will indeed think that every '00' year is a leap year.
You will need to track the hundreds/thousands place of the year manually and then set the DATE register manually to correct for no leap years during certain centuries. For example, when the RTCC increments to Feb 29, 2100, you'll need to update the date to Mar 1 instead.