AMSAT-NA / PacSatSW

MIT License
4 stars 1 forks source link

An Ax5043 is partially working on a Launchpad board #39

Open ac2cz opened 5 months ago

ac2cz commented 5 months ago

The chip passes init but does not have the right frequency. It returns 915MHz

ac2cz commented 4 months ago

Problem Description PacSat LaunchPad development board in continuous WatchDog Timer reset at approximately 10 second intervals. Command ‘get ax’ displays data not consistent with what would be expected for AX5043 receiver chip based on configuration. Resolution Repair board connection from TCXO (X1) to pin 28 on the receive AX5043 (U5). Connection at pin 28 reflowed. Either inadequate connection that broke with vibration or flow error during build missed in board checkout. Symptom Analysis Unguarded loop in module ax5043-ax25.c in function axradio_wait_for_xtal near line 590. Due to absence of the 16mhz output from the TCXO the AX5043 failed to detect and lock onto the TCXO signal. The AX5043 contains a low power oscillator module which is used to initiate internal processes and control the SPI interface until the high frequency oscillator single is present. Therefore, the SPI interface was active, responding to the ‘get ax’ command returning initial reset data for each requested data field as per the AX5043 Programming Manual. Recommendations Unguarded software loops should be avoided. The offending code appears to have been sourced from OnSemi sample code and not intended for production. Recommended that all software be examined and unguarded loops eliminated using maximum attempt counters with error return codes. Future hardware considerations should include the ability to power individual AX5043 chips on and off either by ground command or arbitration logic to prevent a rouge AX5043 from creating an unstable operation condition. Each AX5043 should operate within a separate task structure to prevent one AX5043 from dominating the receive process and to provide isolation for arbitration software to detect an unstable condition and perform necessary shutdown and telemetry notification.