Open conr2286 opened 1 month ago
SI4735 noise problem?
With the SigGen generating a steady carrier at 7075 kHz, the receiver audio emits ~1kHz tone. This tone warbles with process_touch() enabled in loop(), but warble vanishes with process_touch() commented-out. Given the known issues with SI4735's sensitivities to I2C traffic, this noise may arise from polling the touch panel on I2C.
But... even with process_touch() disabled, the scope connected to the audio sees a noisy 1kHz signal. The tone is strong on the speaker, but appears unstable on the scope screen and frequency display.
Disconnecting the audio test point connection may have improved the noise (no measurement available, but seems better). Consider moving SI5351 and the MCP342X to from Wire to Wire2 (SDA2/SCL2) to reduce I2C noise on the SI4735 bus.
Disabling I2C polling of touchscreen ADC greatly improves reception evidenced by both the number of decoded messages and their signal strengths. Removing the touchpanel display may provide a minor additional improvement (difficult to measure on-the-air --- it would need a controlled experiment to be sure).
Disabling the touchscreen polling in the firmware resolves the problem. The SI4735 doc asserts that its I2C port is sensitive to noise from other devices on the bus. V2.00 moves the other devices to another I2C bus, isolating the SI4735 on its own private bus.
However... it's also possible that investigation uncovered a firmware problem in which the touchscreen polling consumes too much CPU time for FT8 decoding. So... we are currently exploring a non-blocking design for the touchscreen ADC.
On an active 40M band, significant audio traffic is heard through the audio patch, but only a few decoded messages are displayed.