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.

ADS1158 MUXSCH register

Other Parts Discussed in Thread: ADS1158, ADS1258

hello:

 I'am using the ADS1158, on my board ,there are 3 ADS1158 for 48th channel; I have read the datasheet, in the fixed channel mode , how to confiugurat the MUXSCH

 register for channel select .for example: I want to select the second channel, the value of MUXSCH is 0x01, if i want third channel , its value is 0x30 , it's a right?

In addition, in the fixed channel mode , I read the value of s.tatus byte from the channel data format , the value is 0x9F , the BITS CHID[4:0] is the value: 1F, but it is the channel ID. why?

best regards.

edison

  • Hi Edison,

    A couple things off the bat -

    - If you have having trouble writing and reading back what you expect, I would suggest double checking the phasing and polarity of your clocking to make sure you are changing data on the correct edge and reading on the correct edge.

    - Fixed channel mode does not support AINCOM, meaning that you cannot use it in typical single ended fashion. You will need to dedicate one of the 16 channels to ground if you would like to do single ended measurements.

    - The MUXSCH register uses the first four bits to set the AINP channel and the second four bits to set the AINN channel. Writing the value of 0x01 will set the positive channel to AIN0 on the converter and the negative channel to AIN1 on the converter. Another example would be If you write something like 1110 0011 into the register, you will be setting the positive input to channel channel 14 (1110) and the negative input to channel 3 (0011).

    - The status byte is disabled in fixed channel mode. See Note 2 in the read back section on page 29 of the data sheet. There is no channel ID bits to be read back in fixed channel mode.

    Regards,

    Tony Calabria

  • hello, Tony.

             Thanks for your introduction, the question have been obviated by me. In debugging, I find another quesiton:

    At the font-end, the input votage is 2.5V, why the conversion value is about 15000 instead of the normal value 65536/2? I don't  know the reason! My circuit configuration such as:

    - In Auto-Scan mode.

    - VREFP = +5V ; VREFN = GND ; AINCOM = GND; AVDD = 5V; AVSS = GND; DVDD = 3.3V; DGND = DGND.

    - MUXOUTP and MUXONTN after connecting the Low Pass Filter output the ADCINP and ADCINN.

    - I'm no using the chopping mode.

    I want to know the reason .

     

    Best regards,

    edsion

     

  • Hi Edision,

    The input range to the ADC is +/-Vref meaning  that when used differentially with a 5V reference, you can set AIN+ to 5V and AIN0 to 0V or AIN+ to 0V and AIN- to 5V. Therefore, using the converter in a single ended fashion, you will only have half the code range available (65536/2 =32767). Setting the input to 2.5V is half of the Vref, so you should see about 32767/2 = ~15000 codes.

    Regards,

    Tony Calabria

  • Hi Tony:

    Thanks a lot, I see that if i want to use the full code, I must use the -2.5V to +2.5V as the reference voltage, It's that?

     

    Best Regards

    Edison

  • Hi Edison,

    If you want to use the entire code range while using the converter in a single ended fashion you will want to use a 2.5V reference and set Aincom to also 2.5V. This will allow you to swing and of the single ended inputs from 0 to 5V while keeping the code range in tact. When the input is within the range of 0 to 2.5V, you will be using the -Vref range. When in the range of 2.5V to 5V, you will be using the +Vref range.

    Regards,

    Tony Calabria

  • Hello, Tony:

    I'm completely see you ideas, thanks a lot !

     

    Best Regards

    Edison

     

  • Hello, Tony:

               In my debugging, I have find a difficult:

    when i read the converted value in the Auto-Scan mode, the initial channel of starting the AD conversion was not same at per time, why this phenomenon was existing? there is register responsible for the configuration? Becasue i want the AD conversion is started from the fixed channel at per time, thanks a lot .

     

    Edison

    Best Regards

  • Hi Edison,

    The measurement priority order is shown in Table 10 shown on page 32.  Here you can see where the START pin / pulse convert command is assessed in comparison to where the index to the next channel data is ready. We show that once a START is issued, the second /DRDY pulse immediately following START high is the highest priority data you are looking for. Take a look at this post for some more information on channel indexing and the priority table I am referring to -

    http://e2e.ti.com/support/data_converters/precision_data_converters/f/73/p/41261/144229.aspx#144229

    Regards,

    Tony Calabria

  • Hi,Tony:

          My registers was configured such as: MUXDIF=0x00, MUXSG0=0xff, MUXSG1=0xff. but after pulse convert command i read channel data ,I note the first start convert channel  is no same after 16 times per cycle; sometimes the first channel number is AIN15, sometimes the first channel is AIN2 and son on. I dont know the reason!

    Edison

    Regards

  • Hi Edison,

    Verify that you have the START pin low when using the pulse convert command. Here are some questions that would better help solve this issue -

    Is the device indexing correctly? As in, when you get it running correctly, as you pulse the convert command, the converter is indexing to the correct auto scan priority order?

    Is the issue that the starting channel is appearing random?

    The channel priority will reset anytime a write command is made. Are you writing to any GPIO registers etc. in between the sent pulse convert commands?

    Regards,

    Tony Calabria

  • Hi Tony:

    "The channel priority will reset anytime a write command is made. Are you writing to any GPIO registers etc. in between the sent pulse convert commands?" ,your idear is that I can't accesse any register (writing register) in the Auto-Scan mode except the pulse convert command, If I write any register (except the pulse convert command) , the indexing may bee updated?

    If that right , I think i find the reasons for my question , my AD convertion vlaues of 3ICs such as:

                        conversion X-AXIS: 015329ADC output falg: 151015
    090021AD conversion X-AXIS: 015380ADC output falg: 136000
    090021AD conversion X-AXIS: 015309ADC output falg: 137001
    090021AD conversion X-AXIS: 015236ADC output falg: 138002
    090021AD conversion X-AXIS: 015367ADC output falg: 139003
    090021AD conversion X-AXIS: 015338ADC output falg: 140004
    090021AD conversion X-AXIS: 015377ADC output falg: 141005
    090021AD conversion X-AXIS: 015441ADC output falg: 142006
    090021AD conversion X-AXIS: 015428ADC output falg: 143007
    090021AD conversion X-AXIS: 015386ADC output falg: 144008
    090021AD conversion X-AXIS: 015427ADC output falg: 145009
    090021AD conversion X-AXIS: 015486ADC output falg: 146010
    090021AD conversion X-AXIS: 015368ADC output falg: 147011
    090021AD conversion X-AXIS: 015356ADC output falg: 148012
    090021AD conversion X-AXIS: 015344ADC output falg: 149013
    090021AD conversion X-AXIS: 015453ADC output falg: 150014
    090021AD conversion Y-AXIS: 015440ADC output falg: 151015
    082021AD conversion Y-AXIS: 015367ADC output falg: 136000
    082021AD conversion Y-AXIS: 015442ADC output falg: 137001
    082021AD conversion Y-AXIS: 015270ADC output falg: 138002
    082021AD conversion Y-AXIS: 015238ADC output falg: 139003
    082021AD conversion Y-AXIS: 015371ADC output falg: 140004
    082021AD conversion Y-AXIS: 015341ADC output falg: 141005
    082021AD conversion Y-AXIS: 015267ADC output falg: 142006
    082021AD conversion Y-AXIS: 015443ADC output falg: 143007
    082021AD conversion Y-AXIS: 015296ADC output falg: 144008
    082021AD conversion Y-AXIS: 015406ADC output falg: 145009
    082021AD conversion Y-AXIS: 015442ADC output falg: 146010
    082021AD conversion Y-AXIS: 015361ADC output falg: 147011
    082021AD conversion Y-AXIS: 015372ADC output falg: 148012
    082021AD conversion Y-AXIS: 015433ADC output falg: 149013
    082021AD conversion Y-AXIS: 015289ADC output falg: 150014
    082021AD conversion Z-AXIS: 015269ADC output falg: 151015
    082021AD conversion Z-AXIS: 015360ADC output falg: 136000
    082021AD conversion Z-AXIS: 015356ADC output falg: 137001
    082021AD conversion Z-AXIS: 015384ADC output falg: 138002
    082021AD conversion Z-AXIS: 015252ADC output falg: 139003
    082021AD conversion Z-AXIS: 015381ADC output falg: 140004
    082021AD conversion Z-AXIS: 015400ADC output falg: 141005
    082021AD conversion Z-AXIS: 015407ADC output falg: 142006
    082021AD conversion Z-AXIS: 015435ADC output falg: 143007
    082021AD conversion Z-AXIS: 015503ADC output falg: 144008
    082021AD conversion Z-AXIS: 015366ADC output falg: 145009
    082021AD conversion Z-AXIS: 015348ADC output falg: 146010
    082021AD conversion Z-AXIS: 015462ADC output falg: 147011
    082021AD conversion Z-AXIS: 015407ADC output falg: 148012
    082021AD conversion Z-AXIS: 015470ADC output falg: 149013
    082021AD conversion Z-AXIS: 015397ADC output falg: 150014
    082021AD conversion X-AXIS: 015330ADC output falg: 151015
    090021AD conversion X-AXIS: 015380ADC output falg: 136000
    090021AD conversion X-AXIS: 015309ADC output falg: 137001
    090021AD conversion X-AXIS: 015236ADC output falg: 138002
    090021AD conversion X-AXIS: 015365ADC output falg: 139003
    090021AD conversion X-AXIS: 015339ADC output falg: 140004
    090021AD conversion X-AXIS: 015378ADC output falg: 141005
    090021AD conversion X-AXIS: 015441ADC output falg: 142006
    090021AD conversion X-AXIS: 015430ADC output falg: 143007
    090021AD conversion X-AXIS: 015386ADC output falg: 144008
    090021AD conversion X-AXIS: 015424ADC output falg: 145009
    090021AD conversion X-AXIS: 015486ADC output falg: 146010
    090021AD conversion X-AXIS: 015369ADC output falg: 147011
    090021AD conversion X-AXIS: 015356ADC output falg: 148012
    090021AD conversion X-AXIS: 015344ADC output falg: 149013
    090021AD conversion X-AXIS: 015454ADC output falg: 150014
    090021AD conversion Y-AXIS: 015442ADC output falg: 151015
    082021AD conversion Y-AXIS: 015368ADC output falg: 136000
    082021AD conversion Y-AXIS: 015442ADC output falg: 137001
    082021AD conversion Y-AXIS: 015269ADC output falg: 138002
    082021AD conversion Y-AXIS: 015238ADC output falg: 139003
    082021AD conversion Y-AXIS: 015370ADC output falg: 140004
    082021AD conversion Y-AXIS: 015342ADC output falg: 141005
    082021AD conversion Y-AXIS: 015267ADC output falg: 142006
    082021AD conversion Y-AXIS: 015442ADC output falg: 143007
    082021AD conversion Y-AXIS: 015294ADC output falg: 144008
    082021AD conversion Y-AXIS: 015407ADC output falg: 145009
    082021AD conversion Y-AXIS: 015442ADC output falg: 146010
    082021AD conversion Y-AXIS: 015360ADC output falg: 147011
    082021AD conversion Y-AXIS: 015371ADC output falg: 148012
    082021AD conversion Y-AXIS: 015433ADC output falg: 149013
    082021AD conversion Y-AXIS: 015290ADC output falg: 150014
    082021AD conversion Z-AXIS: 015269ADC output falg: 151015
    082021AD conversion Z-AXIS: 015360ADC output falg: 136000
    082021AD conversion Z-AXIS: 015355ADC output falg: 137001
    082021AD conversion Z-AXIS: 015384ADC output falg: 138002
    082021AD conversion Z-AXIS: 015253ADC output falg: 139003
    082021AD conversion Z-AXIS: 015383ADC output falg: 140004
    082021AD conversion Z-AXIS: 015401ADC output falg: 141005
    082021AD conversion Z-AXIS: 015408ADC output falg: 142006
    082021AD conversion Z-AXIS: 015434ADC output falg: 143007
    082021AD conversion Z-AXIS: 015503ADC output falg: 144008
    082021AD conversion Z-AXIS: 015365ADC output falg: 145009
    082021AD conversion Z-AXIS: 015350ADC output falg: 146010
    082021AD conversion Z-AXIS: 015464ADC output falg: 147011
    082021AD conversion Z-AXIS: 015406ADC output falg: 148012
    082021AD conversion Z-AXIS: 015471ADC output falg: 149013
    082021AD conversion Z-AXIS: 015397ADC output falg: 150014

    for example: 090021AD conversion X-AXIS: 015380ADC output falg: 136000

    090021 is register value configurated , 015380 is AD convertion value , 13600 is the channel number (status register); becasue i conducted the register writing command before pulse convert command , so the indexing can bee updated ! X-AXIS, Y-AXIS , Z-AXIS is the 3ICs ADS1158.

    Edison

    Regards

     

      

  • Hi Edison,

    That is correct. The write command will reset the channel pointer. See the description of the START pin of page 27 of the data sheet here -

    http://www.ti.com/lit/ds/symlink/ads1258.pdf

    Regards,

    Tony Calabria

  • Hi Tony:

         the problem has been solved, thanks a lot.

     

    Edison

    Best Regards

  • Hi Edison,

    Thank you for the confirmation!  We really do appreciate the feedback.