This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB947-Q1: SPI pass through between UB947 and UB948 not work

Part Number: DS90UB947-Q1

Tool/software:

Hi Team,

I  capture no spi signal on spi slave side via oscilloscope.

could you please figure out the problem? Thanks a lot.

Below is the test setup:

mcu > spi master > ub947 > ub948 > spi slave

1. mcu spi output is 3.3V.  

2. register configuration (after rx locked by checking ub948 register 0x1c)

ub947 side:

DSUB947_WriteBytes(0x43, 0x06) // Forward SPI channel Enabled

ub948 side:

DSUB948_WriteBytes(0x34,0x02); // PORT1_SEL
DSUB948_WriteBytes(0x1D,0x04); // GPIO0 MOSI
DSUB948_WriteBytes(0x1E,0x47); // GPIO2-GPIO1 SPCLK MISO
DSUB948_WriteBytes(0x1F,0x04);  // GPIO3 SPICS
DSUB948_WriteBytes(0x43, 0x06); // Forward SPI channel Enabled

  • Hello Kexiang,

    I will review your request and get back to you tomorrow - Target 7/25

    Regards,
    Fadi A.

  • Hello Kexiang,

    ub947 side:

    DSUB947_WriteBytes(0x43, 0x06) // Forward SPI channel Enabled

    There is no such register at 947 side, please delete this command. Register 0x43 only exists on 948 side. Please discard the settings you are using and  use attached script to configure SPI in Forward Channel SPI mode.

    Update Script ... Original script attached in this thread had an issue with 948 settings - Please see script below 

    #Before enabling SPI there must be a valid LOCK between 947 and 948. Also, the 947 and 948 must be configured in FPD Dual mode. After that, to configure SPI, perform the following:
    
    #On 947 side:
    TX_addr = 0x18
    board.WriteI2C(TX_addr,0x5B, 0x23) # Force Dual FPDIII mode
    board.WriteI2C(TX_addr,0x1E, 0x2) # write to reg 0x1E = 0x2
    board.WriteI2C(TX_addr,0x0F, 0x3) # write to reg 0x0F = 0x3
    board.WriteI2C(TX_addr,0x0E, 0x35)# write to reg 0x0E = 0x35
    board.WriteI2C(TX_addr,0x0D, 0x3) # write to reg 0x0D = 0x3
    
    #On 948 side:
    RX_addr = 0x58
    board.WriteI2C(RX_addr,0x34, 0x2) # write to reg 0x34 = 0x2
    board.WriteI2C(RX_addr,0x1F, 0x5) #write to reg 0x1F = 0x5
    board.WriteI2C(RX_addr,0x1E, 0x53) #write to reg 0x1E = 0x53
    board.WriteI2C(RX_addr,0x1D, 0x5) #write to reg 0x1D = 0x5
    board.WriteI2C(RX_addr,0x43, 0x6) #Forward Channel SPI mode
    
    
    
    

    Regards,
    Fadi A.

  • Hello Fadi,

    Thank you for quick response.  The passthrough SPI works with your script given that  the SPI baud rate is 100K. 

    Regards,

    Kexiang