The tranmssion interval is 10ms in Table 68 of RSL10 firmware reference. What is the interval time tolerance? For example, is it 20ppm or 250ppm? Is it related to parameter, clkAccuracy in rm_pkt.h of remote_mic_tx_raw.c ? And, what is function of parameter, ble_offset in rm_pkt.h? Is it for time correction of transmiision interval time between master and slave? What is time offset range for correction?
For BLE stardard connection interval, why does it have bigger tolerance than custom protocol transmission interval? What is its time tolerance of BLE standard connection interval? Thanks for your feedback.
The backend Remote Mic Protocol timer is based off the System Clock and will therefore share the same tolerance as the clock being used. In the case of our sample code, the system clock will be the 48MHz XTAL, and therefore you can expect 20ppm accuracy.
The purpose of the ble_offset variable is to support the Coexistence mode where the Remote Mic Protocol is able to share access to the BB and Radio, so that the RMP and BLE connection can be run in an alternating fashion to support both. This value should not be changed as it is necessary to support both RMP and BLE properly.
If the Remote Mic Protocol firmware is also acting as a Central device within a BLE connection, both will have an accuracy that corresponds with the 48MHz XTAL, which is 20ppm. If the Remote Mic Protocol firmware is acting as a Peripheral device, the Central device will determine this tolerance.
EVB test setup of remote_mic_tx_raw:
When running Remote_mic_tx_raw code for TX and RX EVBs, TX EVB connects a Dmic (PDM CLK and data) and RX EVB outputs OD+/OD- and GND signals connected to left, right and GND of one side plug of a 3.5mm audio cable. The other side plug of the 3.5mm audio cable is inserted to a headphone.
Output format of RX EVB:
When playing 1KHz audio or music around Dmic, we can listen to 1KHz and music with big noise at headphone speaker (32 or 16 ohm). What is OD+/OD- audio format? It looks not like PDM CLK and data. For PDM format, we should see a fixed frequency clock at OD+ or OD-. OD+/OD- are not like a fixed frequency clock. What signals are they? How do we remove the big noise? Thanks.
It sounds like the OD+/- signals are not connected to the speaker correctly. OD+ should go to one terminal of the speaker and OD- should go to the other. Please give that a try and see if that improves your audio quality.
Following your connection of OD+/OD- can indeed improve audio quality. What is its digital audio format? We assume it could be like simulated analog signal as we really listen to 1KHz. However, we don’t see similar 1KHz waveform on the scope if we play 1KHz sound toward Dmic of TX EVB. Do you have any technical document introducing the output signal meaning? Thanks.
The OD+/- pins are not analog outputs. Instead they are a high frequency digital pulse density modulated signal. A “zero” is indicated by OD+ and OD- being at the same level (both high or low), a 1 is OD+ = 1, OD- = 0, and a -1 is OD+ = 0, OD- = 1.
The Hardware Reference Manual section 13.2 gives an overview of how this signal is generated. Looking at these outputs on a scope would show you more "1"s near the positive peak of a sine wave, more "-1"s near the negative peak, and in between peaks an lessening density of "1"s or "-1"s vs "0"s. The audio signal would be recovered by passing the signals through a low pass filter.
Allow me to add one more question on transmiting and receiving interrupts of remote_mic_tx_raw. These interrupts, RM_TX_START, RM_TX_TRANSMIT_DONE, RM_RX_MAIN_START and RM_RX_N_RECEIVED are in rm_pkt.h. When running remote_mic_tx_raw code, we don’t receive these interrupts from low level code. May we have your suggestions? Thanks.