Skip to content

adrv9002_compute_init_cals doesn't respect external LO recommendations #3089

@dshekter

Description

@dshekter

user guide and even code comments state that for external LOs it may be necessary to do a different init cal routine.

* When using the internal LO, initial calibrations can be run all at once using ADI_ADRV9001_INIT_CAL_MODE_ALL. When
* using external LO, it may be necessary to run initial calibrations in two stages:
* - Run ADI_ADRV9001_INIT_CAL_MODE_SYSTEM_AND_RX calibrations
* - Change external LO frequency as necessary
* - Run ADI_ADRV9001_INIT_CAL_MODE_LOOPBACK_AND_TX calibrations

However, the code just forces its own cal routine.

phy->init_cals.calMode = ADI_ADRV9001_INIT_CAL_MODE_ALL;

This is counter to UG-1828 which states like the comment

When using an external LO for both receiver and transmitter and when receiver LO and transmitter LO are at different frequencies, it takes time to change the LO frequency. Therefore, instead of running all the initial calibrations (select mode 0), first set the receiver LO and run the system and receiver initial calibrations (non-loopback path) (select mode 1), and then change to transmitter LO and run the receiver initial calibrations (loopback path) and transmitter initial calibrations (select mode 2).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions