Drivers in AD Kuiper

Before downloading Kuiper I understood that all AD drivers would be built and included to the Kuiper Linux, it seems that there are only a few available so it seems that I have to rebuild the kernel. What is then the benefit to use Kuiper over plain vanilla Raspberry distribution?

Thanks,

Kaj

Parents Reply
  • I have now compiled a new kernel enabling all the IIO drivers. I am trying to control an ADF4351 synthesizer. To do that I tried to load the overlay in /boot/config.txt

    Evidently I missed something because the device did not appear in iio_info.

    What is the exact dtoverlay line in /boot/config.txt to enable this device? I am using SPI0 with default pins.

Children
  • 0
    •  Analog Employees 
    on Jun 9, 2021 9:08 PM in reply to KajWiik
    [all]
    dtoverlay=<name of overlay file>


    Check the dmesg log for driver errors.

    -Travis
  • I obviously tried that. No active overlays reported by dtoverlay -l. No devices in iio_info, no errors in dmesg. Also, how to specify that two ADF's are connected with different CE*s?

    Kaj

  • 0
    •  Analog Employees 
    on Jun 9, 2021 10:49 PM in reply to KajWiik

    Can you provide your config.txt and the output of:

    vcdbg log msg

    From what I recall this device requires 3-wire SPI so you might have to add some device tree arguments for it to function with the RPI as the RPI defaults to 4-wire.

    -Travis

  • 0
    •  Analog Employees 
    on Jun 9, 2021 10:53 PM in reply to travisfcollins

    Chip selects are set through the spi overlay: https://raw.githubusercontent.com/raspberrypi/firmware/master/boot/overlays/README

    -Travis

  • $ sudo vcdbg log msg
    001126.686: brfs: File read: /mfs/sd/config.txt
    001127.878: brfs: File read: 1930 bytes
    001229.379: brfs: File read: /mfs/sd/config.txt
    001230.493: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
    001250.350: brfs: File read: 1930 bytes
    001435.390: gpioman: gpioman_get_pin_num: pin DISPLAY_DSI_PORT not defined
    001436.717: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
    001436.771: *** Restart logging
    001477.412: HDMI0: hdmi_pixel_encoding: 162000000
    001482.734: dtb_file 'bcm2710-rpi-3-b.dtb'
    001492.480: brfs: File read: /mfs/sd/bcm2710-rpi-3-b.dtb
    001492.503: Loading 'bcm2710-rpi-3-b.dtb' to 0x100 size 0x6ee8
    001505.930: brfs: File read: 28392 bytes
    001515.779: brfs: File read: /mfs/sd/overlays/overlay_map.dtb
    001582.675: brfs: File read: 1523 bytes
    001590.733: brfs: File read: /mfs/sd/config.txt
    001591.262: dtparam: i2c_arm=on
    001599.672: dtparam: spi=on
    001607.114: dtparam: audio=on
    001618.224: brfs: File read: 1930 bytes
    001630.312: brfs: File read: /mfs/sd/overlays/rpi-adf4350-overlay.dtbo
    001637.251: Loaded overlay 'rpi-adf4350-overlay'
    001653.792: brfs: File read: 857 bytes
    001665.796: brfs: File read: /mfs/sd/overlays/spi0-2cs.dtbo
    001677.193: Loaded overlay 'spi0-2cs'
    001677.209: dtparam: cs0_pin=8
    001677.705: dtparam: cs1_pin=7
    001695.182: brfs: File read: 1045 bytes
    001701.867: brfs: File read: /mfs/sd/cmdline.txt
    001701.914: Read command line from file 'cmdline.txt':
    001701.933: 'console=serial0,115200 console=tty1 root=PARTUUID=d1099056-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait'
    003682.730: gpioman: gpioman_get_pin_num: pin EMMC_ENABLE not defined
    003738.492: brfs: File read: 121 bytes
    004167.579: brfs: File read: /mfs/sd/kernel7.img
    004167.604: Loading 'kernel7.img' to 0x8000 size 0x6072f8
    004167.636: Device tree loaded to 0x2eff8c00 (size 0x73fc)
    004170.952: gpioman: gpioman_get_pin_num: pin SDCARD_CONTROL_POWER not defined
    008094.487: vchiq_core: vchiq_init_state: slot_zero = 0xf7580000, is_master = 1
    008099.121: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
    008105.225: TV service:host side not connected, dropping notification 0x00000002, 0x00000001, 0x00000010
    
    $ cat /boot/config.txt
    # For more options and information see
    # http://rpf.io/configtxt
    # Some settings may impact device functionality. See link above for details
    
    # uncomment if you get no picture on HDMI for a default "safe" mode
    #hdmi_safe=1
    
    # uncomment this if your display has a black border of unused pixels visible
    # and your display can output without overscan
    #disable_overscan=1
    
    # uncomment the following to adjust overscan. Use positive numbers if console
    # goes off screen, and negative if there is too much border
    #overscan_left=16
    #overscan_right=16
    #overscan_top=16
    #overscan_bottom=16
    
    # uncomment to force a console size. By default it will be display's size minus
    # overscan.
    #framebuffer_width=1280
    #framebuffer_height=720
    
    # uncomment if hdmi display is not detected and composite is being output
    hdmi_force_hotplug=1
    
    # uncomment to force a specific HDMI mode (this will force VGA)
    hdmi_group=1
    hdmi_mode=16
    
    # uncomment to force a HDMI mode rather than DVI. This can make audio work in
    # DMT (computer monitor) modes
    #hdmi_drive=2
    
    # uncomment to increase signal to HDMI, if you have interference, blanking, or
    # no display
    #config_hdmi_boost=4
    
    # uncomment for composite PAL
    #sdtv_mode=2
    
    #uncomment to overclock the arm. 700 MHz is the default.
    #arm_freq=800
    
    # Uncomment some or all of these to enable the optional hardware interfaces
    dtparam=i2c_arm=on
    #dtparam=i2s=on
    dtparam=spi=on
    
    # Uncomment this to enable infrared communication.
    #dtoverlay=gpio-ir,gpio_pin=17
    #dtoverlay=gpio-ir-tx,gpio_pin=18
    
    # Additional overlays and parameters are documented /boot/overlays/README
    
    # Enable audio (loads snd_bcm2835)
    dtparam=audio=on
    
    [pi4]
    # Enable DRM VC4 V3D driver on top of the dispmanx display stack
    dtoverlay=vc4-fkms-v3d
    max_framebuffers=2
    
    [all]
    #dtoverlay=vc4-fkms-v3d
    #dtoverlay=w1-gpio
    #dtoverlay=spi0-2cs,rpi-adf4350-overlay
    dtoverlay=rpi-adf4350-overlay
    dtoverlay=spi0-2cs,cs0_pin=8,cs1_pin=7
    #dtoverlay=rpi-adxl34
    

    The ADF4351 synth SPI is 'write-only' so there is no feedback except for the muxout for lock detect so shouldn't the device be seen in iio_info even if it was not present physically?

    It seems from vcdbg log msg that both spi and adf are loaded but why they are not visible in dtoverlay -l (they are in dtoverlay -a but without the star marking that they are active.

    Also what is mystery to me is how and where to tell which SPI port and CE/LE are used to control this particular synth? I'd expect to set that in adf4350 dtparam somehow but there seems to be little documentation on that.