Connecting EK1HMC7044LP10B to multiple ADRV9009-ZU11EG SOMs

I'm working to use an HMC7044 Dev Board (EK1HMC7044LP10B) to sync multiple ADRV9009-ZU11EG SOMs.

Referencing pyadi-iio (multi-som-adrv9009 branch), I figured I'd start with the adrv9009_som_multi.py example.

Using an Ubuntu host PC, I adjusted the script to open in python3.6.9, and set the IP addresses for master and slave.

However, when I run it, I get the following:

--Connecting to devices
Pulling buffers
Re-initializing JESD links
JESD Link status: DATA (84a30000.axi-jesd204-tx)
JESD Link status: DATA (84a50000.axi-jesd204-rx)
JESD Link status: DATA (84a70000.axi-jesd204-rx)
JESD Link status: DATA (84a30000.axi-jesd204-tx)
JESD Link status: DATA (84a50000.axi-jesd204-rx)
JESD Link status: DATA (84a70000.axi-jesd204-rx)
JESD SYSREF captured: Yes (84a30000.axi-jesd204-tx)
JESD SYSREF captured: Yes (84a50000.axi-jesd204-rx)
JESD SYSREF captured: Yes (84a70000.axi-jesd204-rx)
JESD SYSREF captured: Yes (84a30000.axi-jesd204-tx)
JESD SYSREF captured: Yes (84a50000.axi-jesd204-rx)
JESD SYSREF captured: Yes (84a70000.axi-jesd204-rx)
JESD SYSREF alignment error: Yes (84a30000.axi-jesd204-tx)
JESD SYSREF alignment error: Yes (84a50000.axi-jesd204-rx)
JESD SYSREF alignment error: Yes (84a70000.axi-jesd204-rx)
JESD SYSREF alignment error: No (84a30000.axi-jesd204-tx)
JESD SYSREF alignment error: No (84a50000.axi-jesd204-rx)
JESD SYSREF alignment error: No (84a70000.axi-jesd204-rx)
Traceback (most recent call last):
  File "./test_adrv9009_som_multi.py", line 78, in <module>
    x = multi.rx()
  File "/usr/local/lib/python3.6/dist-packages/pyadi_iio-0.0.5-py3.6.egg/adi/adrv9009_zu11eg_multi.py", line 334, in rx
  File "/usr/local/lib/python3.6/dist-packages/pyadi_iio-0.0.5-py3.6.egg/adi/adrv9009_zu11eg_multi.py", line 138, in __clock_chips_init
AttributeError: 'NoneType' object has no attribute 'reg_write'

So I have some questions:

1.) The failure point is referencing clock_chip_ext.  Does this indicate it can't see the HMC7044 Dev Board?

2.) How does the script communicate with the HMC7044 board?  Should it be connected to the master via USB?

3.) Is there any guidance about how I might integrate this into the system.dtb file?

Parents
  • +1
    •  Analog Employees 
    on Mar 13, 2020 8:45 PM 10 months ago

    Added some information about ADRV9009-ZU11EG multi-SOM synchronization here (The page will be updated in the following days)

    Thanks,

    Mihai

  • I've implemented the hardware changes on the listed page, and copied all files within the zip into the BOOT directories of each SOM.

    Now my results when running the example file are as follows:

    ---------------------------------------------------------------------------------------------

    --Connecting to devices
    Pulling buffers
    JESD Link status: CGS (84a30000.axi-jesd204-tx)
    JESD Link status: DATA (84a50000.axi-jesd204-rx)
    JESD Link status: DATA (84a70000.axi-jesd204-rx)
    JESD Link status: CGS (84a30000.axi-jesd204-tx)
    JESD Link status: DATA (84a50000.axi-jesd204-rx)
    JESD Link status: DATA (84a70000.axi-jesd204-rx)
    JESD SYSREF captured: No (84a30000.axi-jesd204-tx)
    JESD SYSREF captured: No (84a50000.axi-jesd204-rx)
    JESD SYSREF captured: No (84a70000.axi-jesd204-rx)
    JESD SYSREF captured: No (84a30000.axi-jesd204-tx)
    JESD SYSREF captured: No (84a50000.axi-jesd204-rx)
    JESD SYSREF captured: No (84a70000.axi-jesd204-rx)
    JESD SYSREF alignment error: No (84a30000.axi-jesd204-tx)
    JESD SYSREF alignment error: No (84a50000.axi-jesd204-rx)
    JESD SYSREF alignment error: No (84a70000.axi-jesd204-rx)
    JESD SYSREF alignment error: No (84a30000.axi-jesd204-tx)
    JESD SYSREF alignment error: No (84a50000.axi-jesd204-rx)
    JESD SYSREF alignment error: No (84a70000.axi-jesd204-rx)
    OSERROR1
    OSERROR2
    OSERROR1
    OSERROR2
    JESD 84a50000.axi-jesd204-rx:  0 0 0 0
    JESD 84a70000.axi-jesd204-rx:  0 0 0 0
    JESD 84a50000.axi-jesd204-rx:  0 0 0 0
    JESD 84a70000.axi-jesd204-rx:  0 0 0 0
    JESD 84a50000.axi-jesd204-rx:
    JESD 84a70000.axi-jesd204-rx:
    JESD 84a50000.axi-jesd204-rx:
    JESD 84a70000.axi-jesd204-rx:
    JESD 84a50000.axi-jesd204-rx:  No No No No
    JESD 84a70000.axi-jesd204-rx:  No No No No
    JESD 84a50000.axi-jesd204-rx:  No No No No
    JESD 84a70000.axi-jesd204-rx:  No No No No
    Traceback (most recent call last):
      File "./test2_adrv9009_som_multi.py", line 78, in <module>
        x = multi.rx()
      File "/usr/local/lib/python3.6/dist-packages/pyadi_iio-0.0.5-py3.6.egg/adi/adrv9009_zu11eg_multi.py", line 350, in rx
      File "/usr/local/lib/python3.6/dist-packages/pyadi_iio-0.0.5-py3.6.egg/adi/rx_tx.py", line 235, in rx
      File "/usr/local/lib/python3.6/dist-packages/pyadi_iio-0.0.5-py3.6.egg/adi/rx_tx.py", line 164, in __rx_complex
      File "/usr/lib/python2.7/site-packages/iio.py", line 551, in refill
        _buffer_refill(self._buffer)
      File "/usr/lib/python2.7/site-packages/iio.py", line 40, in _checkNegative
        raise OSError(-result, _strerror(-result))
    TimeoutError: [Errno 110] Connection timed out

    ---------------------------------------------------------------------------------------------

    Any new tips?

  • 0
    •  Analog Employees 
    on Mar 24, 2020 7:57 PM 9 months ago in reply to mstone

    Thank you.

    Can you also post the output of, from both SOMs (the one with the external HMC7044 connected first):

    1. jesd_status

    2. iio_attr -q -D hmc7044 status

    3. iio_attr -q -D hmc7044-car status

    4. iio_attr -q -D hmc7044-ext status

    I want to test the above to make sure the links are up before running the python script

    Regards,

    Adrian

  • 0
    •  Analog Employees 
    on Mar 24, 2020 9:00 PM 9 months ago in reply to mstone

    Are these the JESD status after you hit a python error? Since they contradict the messages from python. Did the board get rebooted in between?

    If so can you run those commands Adrian requested after the python error occurs.

    -Travis

  • Correct.  Those were from before running the python script.

    These are from after:

    Master device:

    jesd_status_master_after

    iio_attr_status_master_after

    Slave device:

    jesd_status_slave_after

    iio_attr_status_slave_after

  • This problem has been solved.

    The header connections here:

    Were misconnected.  P26 was plugged in as a mirror-image of what it should have been.

    The proper connection was obvious after a reboot, when the GPIO2 LED on the clock board illuminated.  The example functioned correctly after that.

Reply Children
No Data