I´ve a problem which costs me time.
We try to use a standard spi interface to control a LM98725 and don´t get any answer from him.
Our try was to put out 4 bytes via spi ( under one global select ) with the content 0x00, 0x00,0x80,0x00 and expected the data of control register 0 in the next access.
We got - nothing.
The speed we use is 100 KHz, the clk is 26.6 MHz C-Mos and any trials to reset and so on has been made.
Can anyone help me?
The only remaining idea is that we have to use 25 bit´s for communication ( and not 32 like we do now ).
Given what you have described, I believe the device should output the contents of Register 0 on the first 8 clocks of the next transaction. One possible problem could be that the CE pin on the LM98725 is not Grounded. Per the datasheet and programming manual it is required that CE is connected to Ground to set the CE1 and CE0 address bits to 00 to match the bits in your SPI command.
Also, you are using a CMOS clock connected to INCLK+. Can you confirm that INCLK- is connected to ground?
If you could send a schematic for all LM98725 signal and power connections that would also be helpful.
As an employe of Mr Schinner and because Mr Schinner is away from office today, he asked me to send you the schematic.
I hope it will help.
Hi Felix and Karl-Ludwig
Please confirm the following details:
R62 = 9.0kohms 1% (It is hard to read and could be 90kohms in the schematic but should be 9000 ohms)
R57 is not installed
R55 and R56 are installed and 0 ohms each.
Confirm amplitude of clock signal at INCLK+ (measured at R55 is good) is normal 3.3V CMOS levels and expected frequency.
If all these are as expected, the serial interface should be working properly. If it still isn't working then an oscilloscope capture of SEN, SCLK, SDI and SDO would be the next step to debug the interface problems.
thank´s to your help it seems now to work.
The big changes have been
- we change the 90 K Ohm Resistor agains 9 K.
- we change our spi program. We use a ioworrior ( he can only output clocks with a multple of 8 bits ) In this program it was necessary to invert the clock and to move the bit´s 1 position to the left.
Then we are able to
- read and write the register 0x00 ( output for read was 0x00 0x01 0x00 0x00) --> we got 0x40 0x00 back.
- we can read the register 1e ( output was 0x00 0x01 0x3d 0x00 ) --> we got 0x01 0xff ( so 0000 0011 ) if moved correct
- we can modify the register 2 ( output was 0x00 0x01 0x05 0x80 ; so data was 1100 0000) and we got this back moved 0x60 0x00 )
For the first step we can now handle the chip by our own, thanks to your help.
Karl-Ludwig Schinner and Felix Lesser
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.