AFE031: Transfer and receive data over powerline using DAC mode feature

Part Number: AFE031

Hi,

I was establish the transfer mode of PLC using DAC mode for config below steps

STEP 1: SD pin -> LOW
STEP 2: DAC pin -> LOW
STEP 3: INT pin -> HIGH
STEP 4: SPI configured (Frequency  4 MHz)
STEP 5: Read all registers to ensure the default value - Getting exact values (SPI communication working fine)
STEP 6: Soft reset the registers -> write 0x14 in RESET register
STEP 7: Bias enable -> REF1 = 1 , REF2 = 1 in ENABLE2 register
STEP 8: Band Selected -> 0 = CENELEC A in CONTROL1 register (As our circuit)
STEP 9: Clear all interrupt in CONTROL2 register
STEP 10:Enable ZC in ENABLE2 register
STEP 11:Write GAIN -> write 0x32 in GAIN register
STEP 12:Enable Transfer mode -> PA = 1, TX = 1, DAC = 1
STEP 13:Enable PA_OUT -> PA_OUT = 1
STEP 14:Clear all interrupt -> write 0x00 in RESET register
STEP 15:Enable T and I -> write 0x60 in CONTROL2 register
STEP 16:Chip select Pin -> LOW
STEP 17:DAC pin -> HIGH
STEP 18:Sent data to DAC register over SPI
STEP 19:Chip select Pin -> HIGH


Then I capture the data on PA_OUT pin via Scope. But I receive signal only in SCK and DIN pins, I can't get output signal from PA_OUT

And I got Response for Tx block ready for transmission in CONTROL1 register

Is anything configuration missing from this ?  Or we can't to capture signal in PA_OUT ah ?

Please give a solution for this,

Thanks,

  • Hi Mani, 

    Please look over the DAC mode in the attached link. Please make sure that you are able to send the required DAC data within the Tx windows. 

    https://www.ti.com/lit/an/sprac94d/sprac94d.pdf?ts=1705429676956

    Could you tell me which hardware board you are using? If you are using our BOOSTXL-AFE031-DF1, please modify the INT pull-up to 33kΩ (need weak pull-up). 

    https://www.ti.com/lit/ug/sbou223/sbou223.pdf?ts=1712753704862&ref_url=https%253A%252F%252Fwww.ti.com%252Ftool%252FBOOSTXL-AFE031-DF1

    If you are using your own PCB schematic, we need to make sure that all the input paths are correct to the input of the power amplifier (PA), since this IC consists of multiple modular IC blocks and they are connected via external pins. You can check the functionality of input and output of each block, make sure that the input signals are sent and output is doing what is intended to do. After DAC input from SPI inputs, all signals are converted to analog signals.  Please see the markings in the block diagram below.

    If you are not sure, you can always input a signal from functional generator and check out the electric path from input to output. Please make sure that hardware or electrical path is working before we are investigating coding sequences.  

    Please confirm the hardware connection first before we check the coding sequences. Certain coding instructions I have to ask the C2000 firmware engineer or review the TI's sample code. Since you are using ARM processor, not everything will be identical, but it should be fairly similar. 

    Best,

    Raymond

  • Hi @

    Thanks for your reply,

    I have an a doubt, That DAC mode is also consider a PWM mode ah ?

    If I send the data via DAC mode in SPI , I need to generate a PWM signals ah ? Then which one IO I need to generate PWM ,Is this true ?

    That PWM generation is not necessary to use in DAC mode means ,why we are using that PWM source in DAC mode ?

    And one more the hardware section was correct as you say check below,

    And I was attached voltage readings below:

    INPUT SUPPLY :
    PA_VS1,PA_VS2 = 15V
    AVDD1 ,AVDD2 = 3.3V
    DVDD = 3.3V

    IN INITIAL STAGE:
    PA Current consumption = 0.003A
    PA_OUT = 4.6V
    Tx_PGA_OUT = 200mV


    After Enable BIAS :(REF1,REF2 = 1)

    PA Current consumption = 0.003A
    PA_OUT = 7.5V
    Tx_PGA_OUT = 1.7V


    After config ENABLE1 Register :(DAC,PA,TX = 1)

    PA Current consumption = 0.003A
    PA_OUT = 7.5V
    Tx_PGA_OUT = 2.3V


    After Enable PA_OUT :(PA_OUT = 1)

    PA Current consumption = 0.042A
    PA_OUT = 7.5V
    Tx_PGA_OUT = 2.3V

    I can read SCK signal but in PA_OUT pin have a 7.5v output , I can't receive any signal from this PA_OUT pin

    And I was mentioned following steps for establish Transfer mode , Did you notice any strange for configuration of transfer mode

    If you have any timing diagram or oscilloscope reading for SCK ,DIN ,CS , DAC , PA_OUT respectively, that will definitely help full for us.

    Thanks,

  • Hi Mani, 

    Please change C64 to approx. ~75pf/79pf/80pf/82pf, whichever one you have available that is close to 76pf. This will match the PA's input impedance. 

    https://www.ti.com/lit/ug/sbou223/sbou223.pdf?ts=1712874695843&ref_url=https%253A%252F%252Fwww.google.com%252F

    Since the input of PA is capacitive coupled, thus input DC voltage will not work. You have to use AC input signal, say with a functional generator at ~50kHz and low amplitude. The PA_OUT = 7.5Vdc is correct due to the mid supply biasing at 15Vdc. Your AC amplitude of the input signal at Tx_F_OUT or TX_PGA_OUT terminal should be < 0.7Vpk at 50kHz. 

    If PA_OUT swings up to 12Vpk from 7.5V, then the input signal should be < (12-7.5)/6.5V = 0.692 Vpk at Tx frequency. 

    since there is no load at PA_OUT, the output current will be neglectable. 

    Could you match the DAC setting from the AFE031 EVM schematic? If it does not work, I will ask the C2000 firmware engineer. 

    I did not do the firmware for the part, since I am a hardware engineer. 

    As I said, we have 100s customers who are using this part and do not have the issues. Please let me know. 

    Best,

    Raymond

  • Hi @Raymond Zhang1

    Thanks for your detailed explanation.

    And I have an a another one doubt.

    How I can set nominal gain of PA = 6.5V/V ?. As your image that Rload resistance is places in inside of the block right .Then how I can set that nominal gain as 6.5V/V ?

  • Hi Mani,

    How I can set nominal gain of PA = 6.5V/V ?

    For the PLC application, the AFE031's internal gains are fixed at 6.5V/V, and it is not programmable. 

    There is PGA at Tx, which it has the 4 gain settings, which is the only control to change the amplitude at input. If the input amplitude swings at DAC or PWM is relative large, say 3.3Vpk or 5Vpk, then you should have enough controllable margins for the application. The Tx AC transmission signal only needs approx. 0.7Vpk or 1.4Vpp voltage swings at the PA's input signal at 6.5V/V.

    In the PGA settings, the max. gains is 1 V/V, and typically the input amplitude should be attenuated (set for 0.5V/V or 0.705V/V) for the application.     

    If you have additional questions, please let me know. 

    Best,

    Raymond

  • Hi @Raymond Zhang1

    In above image, You mean to give a AC input signal below 0.7V at 50Hz in Tx_F_OUT or TX_PGA_OUT terminal ,right ?

    If I need to give a AC signal means , I need to give a signal only on transmission period or else every time ah ?

    Once I will done this , can I get digital output from PA_OUT terminal from what kind of data wrote in DAC register ?

    And one more question , In example circuits are don't have any circuit or IO connected to Tx_F_OUT or TX_PGA_OUT terminal for giving AC pulse ,Then why we need to give AC pulse , Is it compulsory for getting output?

  • Hi Mani,

    In above image, You mean to give a AC input signal below 0.7V at 50Hz in Tx_F_OUT or TX_PGA_OUT terminal ,right ?

    If you are going to check out Tx_pga_in input terminal with a functional generator, you will need configure the input above GND. In the simulation below, the AC signal's DC offset is configured at 1.65Vdc and 1kHz input signal swings at 1.2Vpk (2.4Vpp) that is riding on 1.65Vdc. This is input common mode voltage operating range. 

    If you are using DAC signal via the SPI port, then this Vbias voltage is taken care of internally inside of the AFE031. 

    If you are doing PWM from 0 to 3.3V or 0 to 5V in square wave, the Vbias voltage is also placed above the GND or approx. in the mid point of the PWM signal. 

    Once I will done this , can I get digital output from PA_OUT terminal from what kind of data wrote in DAC register ?

    Whatever the signal you sent to DAC register, the output voltage will be the 6.5V/V*DAC_input_amplitude after LPFs. For CENELEC band A, the -3dB point of the LPF is configured at 90kHz approximately (as typical). 

    In example circuits are don't have any circuit or IO connected to Tx_F_OUT or TX_PGA_OUT terminal for giving AC pulse ,Then why we need to give AC pulse , Is it compulsory for getting output?

    I am not sure that AC pulse that you are referring to. In PLC communication, only sinusoidal signals are sent via at TX_PGA_OUT. If your pulse refers to PWM signals, the signals will be filtered and smooth out at Tx_F_OUT terminal, and it is then pass through the input of the power amplifier. 

    Customer select the PWM input signals vs. DAC is for the cost reasons. In DAC mode, the Tx signal and harmonic noises will be less than PWM mode, and the CMU's performance requirements in DAC mode are more stringent than PWM mode. However, if you are taken are of different level of LPFs, the FSK's PLC communication will be comparable.  

         

    If you have other questions, please let me know. 

    Best,

    Raymond

  • Hi @Raymond Zhang1

    So finally if we are using in a PWM mode we need to give vbias voltage to the TX_PGA_IN terminal.

    Otherwise if we are using a DAC mode there is no necessity to give any additional input that is taken care of internally inside of the AFE031, we need to write data only in a DAC register via SPI using DAC and CS pins right ?

    But in DAC mode we need to choose a proper value of capacitor connect across the PA_IN and TX_F_OUT terminal right ?

    We are using a DAC mode for transmission. And as you are say we are changed that  C64 stage capacitor. But now we have 20 pf capacitor so we places 4 no's of capacitors are connected parallel to the TX_F_OUT and PA_IN terminal.

    Then I was noted voltage values in below terminals when sending data,

    PA_IN  -> 7.4 to 7.9V

    TX_F_OUT  -> 2.0 to 2.6V

    see below the values are Once I completed all register configuration I read it for verification:

    [2024-04-18_16:19:08:621]Enable 1 :35

    [2024-04-18_16:19:08:712]Gain Select :50

    [2024-04-18_16:19:08:803]Enable 2 :15

    [2024-04-18_16:19:08:908]Control 1 :72

    [2024-04-18_16:19:09:000]Control 2 :96

    [2024-04-18_16:19:09:075]Reset :0

    [2024-04-18_16:19:09:180]Die ID :0

    [2024-04-18_16:19:09:270]Revision :2

    All values are in DEC . Is anything strange. Because still I had a problem I cant to read any data in PA_OUT I can read only a noise.

    Please check I was attached scope data in below.

    MOSI data as 0xAAAA

    Please check and give a solution for this.

  • Hi Mani, 

    The PLC communication is unable to use square wave to communicate. It has to be sinusoidal waveform, which is constructed from PWM signals, and then filtered with LPFs. The reasons that you are unable to pass RF Emission requirements over the PLC data communication.  

    In the previous replies, I suspected that you may have hardware conductivity issues, thus I provide you an instruction how to test the hardware. 

    But in DAC mode we need to choose a proper value of capacitor connect across the PA_IN and TX_F_OUT terminal right ?

    If you are using AFE031's internal DAC, then there is no external connection is needed, see the marked green box. The switch is internal and can be turned on by the register setting. You have to decide if you want to send input data via PWM mode or DAC mode (AFE031's DAC mode is 10bit). 

    If you have other questions, please let me know. 

    Best,

    Raymond

  • Hi @Raymond Zhang1

    If I was using DAC mode, Is I must to config SPI data length as 10 bit ?

    If I send 16 bit data over SPI communication, Is that is not support in AFE031 DAC mode?

  • Hi Mani, 

    If I was using DAC mode, Is I must to config SPI data length as 10 bit ?

    If I send 16 bit data over SPI communication, Is that is not support in AFE031 DAC mode?

    Yes, this is correct and it will not be support. You can not have more than 10 bit SPI data, since the register can only accommodate in 10 bit.

    However, you can bypass the AFE031's DAC register and send the signal via the external port. Many customer has done that. 

    If you have other questions, please let me know. 

    I see that you have establish the E2E private communication with me. So I am going to close this query. 

    Best,

    Raymond 

  • Hi Raymond Zhang1

    In AFE031 support 10 bit data transfer in DAC register, I accept. But if we are sending data as 16 bit data over DAC ,that will only make sense of the first ten bits transmitted (the 10 most significant bits) and discard the remaining bits automatically right ?.

    So the bit transfer length is not consider as must , right or wrong ?

    And please read this thread below, As i say that thing was already read from an another thread.

    e2e.ti.com/.../afe031-no-dac-output

  • Hi Mani, 

    The DAC data needs to be sent according to the diagram below. 

    We have exchanged email via E2E private messaging. I am going to close this inquiry. 

    Best,

    Raymond