X4 X4 IO2 pin /AND/ some general questions about the pulse waveform and downconversion

Discussion in 'X2 & X4 SoC' started by windchime, Nov 3, 2019.

  1. windchime

    windchime New Member

    Hi Charlie,

    My name is Kyle. I think you still remembers my development environment. the OS and the custom board with X4 module. I tried to use XeThru Explorer, but you explained to me that that's against your policy. And I made a simple radar data player I can use for development & debugging purpose. That is the story till now.

    And I finished my work and I have few more questions.

    Sorry to place some different kinds of questions in one thread, in case you don't like it.

    1. Setting X4 IO2 as an input(from the point of X4 module)
    Here are the field lists from the "Figure 6.1. Overview of multifunctional digital IO pins" in X4-Datasheet. To set X4 IO2 as an input those fields should be set properly, I reckon.


    bit 2 of 0x4B io_ctrl_1 : cleared - I don't understand the meaning of this register. The trigger pin should be active HIGH!!
    actual value: cleared (tried to clear)
    bit 2 of 0x0B gpio_in (read only) - set - should be as set I believe.
    actual value: cleared
    bit 2 of 0x06 gpio_out : cleared - disable output, it sets the pin as an input I believe.
    actual value: set (tried to set)
    bit 2 of 0x4D io_ctrl_3 : set - Pin is used for GPIO
    actual value: set (tried to set)
    bit 2 of 0x0D gpio_oe : cleared - Output driver disabled.
    actual value: set (tried to clear)

    Finally I set the field, trx_ctrl_slave_mode of 0x3B trx_ctrl_mode. The description and the explanation are confusing. I found out that the field should be cleared to make X4 module work in slave mode.

    In my thought, the pin, X4 IO2 should be configured properly as an input to trigger radar sweep. But it looks like X4 module do radar sweep even with the wrong configuration by setting the pin high and then low.

    I couldn't set X4 IO2 as an input properly but it still works. How can I accept(or interpret) this result?

    2. What's the meaning of downconversion you are doing in X4 module? And where can I get more information about it?
    We have a plan to develop our own applications and I would like to have a firm understanding of the radar sweep data.

    3. How did you determine the downconversion coefficients, such as downconversion_coeff_eu_q1, downconversion_coeff_eu_q2, downconversion_coeff_eu_i1, downconversion_coeff_eu_i2, downconversion_coeff_kcc_q, downconversion_coeff_kcc_i? If it's possible to have customized downcoversion coeffs, then we don't rule out that possibilities.

    4. What's the profile of the transmitted waveform profile? I heard that Gaussian pulse generator is usually used in UWB radar and the transmitted waveform is nth derivative of Gaussian. It will be helpful in many ways knowing the generated waveform.

    Best regards,
  2. Charlie Shao

    Charlie Shao Moderator Staff Member

    Hi Kyle,

    Glad to hear from you again. I did some research on your questions and here is the reply:
    bit 2 of 0x4B io_ctrl_1 : That means this pin is connected with VCC through a so-called pull-up resistor, so the pin's default state is a known state as high.
    bit 2 of 0x0B gpio_in (read only): This is a read-only register, shouldn't write any value.
    bit 2 of 0x06 gpio_out: It doesn't matter if you use this pin as input.

    You have already successfully configured IO2 as input, but according to X4 datasheet section 7.6, "trx_start_sync_in can be sourced from either IO1 or IO3", only IO1 or IO3 can be used as trx_start trigger.

    I strongly suggest you modify X4 configuration based on XEP, instead of manipulating registers directly in this way. You may lose some necessary steps without referring XEP.

    2. <XeThru X4 Radar User Guide> chapter4 provides detail information on radar raw data downconversion.

    3. It is possible, but not suggested. downconversion coefficients are already tuned by our engineer according to different regulations, so your DSP development can start from radar baseband data directly.

    4. Yes, the pulse from X4 is a kind of Gaussian pulse. You can read the this paper to get more information.
  3. windchime

    windchime New Member

    Thank you, Charlie.

    I've already finished my work and it's too late to move to xtXEP.

    I'm using X4 IO1 for the notification of radar data ready and X4 IO2 to command trigger radar sweep.

    const Pin _x4_pin_data_ready = XPIN_X4_DATA_READY; /* X4_IO1 */
    const Pin _x4_pin_sweep = XPIN_X4_SWEEP; /* X4_IO2 */
    • You have already successfully configured IO2 as input, but according to X4 datasheet section 7.6, "trx_start_sync_in can be sourced from either IO1 or IO3", only IO1 or IO3 can be used as trx_start trigger.
    Are you saying that I am not supposed to use IO2 as sweep trigger pin? But it works and I couldn't observe any problem with that. And I think IO2 pin is used as sweep trigger pin in xtXEP too.

    If I am doing wrong with IO1 and IO2 pins, please help me fix potential problems.

    I would like to know the waveform you are trying to target in X4, like 5th derivative of Gaussian pulse. Not the general ones widely used.

    Please disregard my last question of above 4.

    I've found the waveform equation in the paper you gave me. Would you please let me know the tau and omega-c in the waveform equation, for the centerfrequency 7.29 GHz and 8.748 GHz respectively?
    Last edited: Nov 6, 2019
  4. Charlie Shao

    Charlie Shao Moderator Staff Member

  5. windchime

    windchime New Member

    Thank you again, Charlie.

    Take care.

    Charlie Shao likes this.