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.

PCM186xEV

Other Parts Discussed in Thread: PCM1863EVM, PCM1863

I am using a new PCM1863EVM board and it worked great right out of the box. I can configure my ADC settings graphically and then see how the registers are effected. So this is a great way to then jump to my host controller and use the same register write codes for the final application. 

So is it reasonable to just copy the Log View for this purpose?

I wondered what happens for a power up event and I see about 50 write events. The odd thing (to me) is the sub-addresses 00, 01, 02 (mode, PGA1L, PGA1R) are being written over and over. For example after a power up I see this in the log

#----------------------

# LOG START Tue Mar 17   ......

w 94 60 11

w 94 00 01

w 94 02 12

w 94 01 02

w 94 02 13

w 94 01 02

w 94 02 14

w 94 01 02

w 94 02 14

.

.

.

w 94 01 02

w 94 02 14

w 94 00 00

w 94 71 10

I am sure that I am missing something subtle. This format doesn't make note of the page, i assume that it is all page 0.

If I change the mixer coefficients I see lines like

w 94 04 ec 00 00 00

0x04 sub address would be PGA2R so clearly I am misrepresenting the meaning.

  • Hi Greg,

    I am not sure why it is repeatedly writing the PGA gain register, I will look at this myself. As for the mixer coefficients, the GUI log is not completely representative of what is being written. There is an example of how to write to the mixer coefficients on page 107 of the data sheet.

    Justin
  • Thanks for the quick response Justin.

    1. I look forward to hearing about your experience with the power-up register activity and if all of this is necessary in a typical application. Just so I am on track with the PurePath tool, in the register log; the line "w 92 02 14" means write the hex value 0x14 to I2C ID 92 (PCM1863) register address 0x02? Sorry for asking the obvious - hate to go down the wrong path.

    2. I understand that register 0x00 controls which register page can be written to. w 92 00 00 is page 0, w 92 00 01 is page 1. Only ask as register 0x00 doesn't seem to be explictly described in the register maps. (Maybe also obvious.)

    3. Mixer. You memtion that the tools register map is not a complete representation of the total register contents. I do notice after I change a mixer setting in the PurePath graphical tab, there are register changes on page 1, but it seems to be only two 8 bit registers; MEM_WRITE_0 and MEM_READ_0, both set to 0x08 . However I also see the log event "w 94 04 ec 00 00 00" after changing one low band mixer 'slider' so it seems that at least I can see the code for the loading of a single 32 bit coefficient.

    4. Page 67 has the paragraph "12.1 Coefficient Data Formats" and refers to www.ti.com/.../SLAC663 as reference for understanding the formatting of the numbers used. This URL is not active. Does TI have a handy calculator for filter (ADC186x Mixer) coefficients?

    5. Again, it is my goal to use the PurePath tool as the shortest path to determining the minimum set of register writes for my host to condition the ADC per my specific app. I would like to set a 100Hz high pass on the filter, but I will live without the feature, if the coefficient determination process is beyond my understanding.

    Regards, Greg
  • As a followup, listed below are the register writes seen in the PurePath Console "Register" tab log, following a PCM1863EV powerup.

    assuming   00 00 = mode0    00 01 = mode1    00 02 = mode2       startup default = mode 0            
                
    register writes in hex        register name and value              
    60 11        INT_STAT = 11    POSTPGA_CP enabled, ENGSTR enabled (default)
    page 1            
    02 12    01 02    MEM_ADDR = 12    DSP_MEM_MAP = 2 => R_REQ access only
    02 13    01 02    MEM_ADDR = 13    "
    02 14    01 02    MEM_ADDR = 14    "
    02 15    01 02    MEM_ADDR = 15    "
    02 16    01 02    MEM_ADDR = 16    "
    02 17    01 02    MEM_ADDR = 17    "
    page 0            
    page 1            
    02 00    01 02    MEM_ADDR = 0    DSP_MEM_MAP = 2 => R_REQ access only
    02 01    01 02    MEM_ADDR = 1    "
    02 02    01 02    MEM_ADDR = 2    "
    02 03    01 02    MEM_ADDR = 3    "
    02 04    01 02    MEM_ADDR = 4    "
    02 05    01 02    MEM_ADDR = 5    "
    02 06    01 02    MEM_ADDR = 6    "
    02 07    01 02    MEM_ADDR = 7    "
    02 08    01 02    MEM_ADDR = 8    "
    02 09    01 02    MEM_ADDR = 9    "
    02 0a    01 02    MEM_ADDR = a    "
    02 0b    01 02    MEM_ADDR = b    "
    02 0c    01 02    MEM_ADDR = c    "
    02 0d    01 02    MEM_ADDR = d    "
    02 0e    01 02    MEM_ADDR = e    "
    02 0f    01 02    MEM_ADDR = f      "
    02 11    01 02    MEM_ADDR = 11    "
    page 0            
    page 0            
    page 0            
    page 3            
    page 1            
    02 0c    01 02    MEM_ADDR = c    DSP_MEM_MAP = 2 => R_REQ access only
    02 0d    01 02    MEM_ADDR = d    "
    page 0            
    71 10        DSP_CTRL = 10    HPF_EN enabled (default)    note: the PurePath register name is inconsistant with the d/s register name.


    Much of the write activity is page 1; 01 02 which is labeled in the d/s to be "Memory Mapper Register Access to DSP-2 - READ = access ready" and, page 1; address 02 labeled as "Memory Mapped Register Address - Status of the memory mapped register access"

    These register labels is the full extent of the explanation in the data sheet. If these writes are necessary, is there more detailed information about what these registers do and how I should  treat them in my final application?


    Greg