<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/48513/problem-using-the-nrf52840-to-interface-an-ads1298-via-spi</link><description>Hi DevZone, I am using the nRF52840 to interface an ADS1298 (ECG Chip) via SPI. 
 
 I want to test if the communication between the devices are working by: 
 - Sending a RREG (Read From Register) opcode from the nRF52840 to the ADS1298 
 - And then read</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 18 Nov 2022 08:17:28 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/48513/problem-using-the-nrf52840-to-interface-an-ads1298-via-spi" /><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/396343?ContentTypeID=1</link><pubDate>Fri, 18 Nov 2022 08:17:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:19dd66c4-ffa6-4f4b-b589-39bc7c6480d6</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Hi ChKOR,&lt;br /&gt;&lt;br /&gt;It has been a while since I worked on this, but I remember supplying the&amp;nbsp;ADS1298-evalkit on the connector on the bottom with 3.0V (VDD) and GND from the nRF52840.&lt;br /&gt;&lt;br /&gt;To do this, I looked up the schematics on Google for the ADS1298-evakit to see how it was being powered from the the Power-Board it was connected to when using the TI-evaluation software.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Br. Casper&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/393126?ContentTypeID=1</link><pubDate>Sun, 30 Oct 2022 07:17:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9ac975bc-6ba6-4acc-8588-37069b35795a</guid><dc:creator>ChKOR</dc:creator><description>&lt;p&gt;I have solved my issue. But just for curiosity, I&amp;#39;d like to know how you powered up the ads eval board using nrf52840.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/393102?ContentTypeID=1</link><pubDate>Sat, 29 Oct 2022 09:53:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0267a2fc-57d4-4823-9e7b-975838bae3cb</guid><dc:creator>ChKOR</dc:creator><description>&lt;p&gt;Hi Casper, I&amp;#39;m currently developing nrf52840 spi communication with ads1198 as a newbie. But, There are so many things I cant solve... firstly how can nrf52840 dk power the ads1198 board? since the board is to be powered by MMb0 DSP board, how did you apply single VDD 3.0V power from nrf52840 to ads board?, so I made my own PCB for ads1198. and I tried to wake up ads1198. But I cant read ID from ADS1198. As I know, DRDY pin should begin pulsing after power up, but there is no response... even though I set START pin pull up, there is no response. Can you help me? or may I get your code for startup ads board?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/193317?ContentTypeID=1</link><pubDate>Tue, 18 Jun 2019 07:59:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da2ab21f-7fe8-4c7c-9dc4-22667c78af02</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;The problem with the ADS1298R evaluation board only answering to a specific sequence of commands, and not consistently has been solved!&lt;br /&gt;&lt;br /&gt;It was a problem with the supply of the AVDD voltage only being supplied for periods of two seconds. This was, embarrassingly, overlooked by me when measuring the voltage supplies earlier in debugging.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="background-color:transparent;color:#000000;float:none;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:normal;"&gt;Here is a scope snapshot of the board answering as expected on every RREG opcode.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/7752.Correct-functionality.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br style="background-color:transparent;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:normal;" /&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong style="background-color:transparent;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;"&gt;Thank you all very much for your help, it is certainly appreciated!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Br. Casper&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/193314?ContentTypeID=1</link><pubDate>Tue, 18 Jun 2019 07:54:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1ff32958-e343-4cee-9f05-dfc559880694</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Yes, it is unclear on the picture. It was only meant to show that the MISO signal was changing with no change in SCLK.&lt;/p&gt;
&lt;p&gt;The problem is not noise, but improper supply of the AVDD voltage on the ADS1298R evaluation board. The voltage was high in two second periods and then low for two seconds, while the DVDD voltage and 3.3VCC being high all the time.&lt;br /&gt;This was overlooked by my mistake when measuring. Embarrassing. Impressive that the board was able to communicate at all! This was probably also something that threw me off. It was only something I noticed when I did large zoom-out on the scope, and then I decided to look into the power supply again.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/PeriodicalMISOResponse.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;It is now functioning as expected, returning the correct values on every RREG opcode:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/Correct-functionality.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you very much for your insight and help, it has been amazing!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/193240?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 15:40:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83a3394c-8464-4a90-bf94-c405cc36d57d</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;The noise very much depends on grounding, and whether the scope probe for a signal is locally grounded very close to the signal source (when probing source) or arrival point (when probing destination on the other board). The probe ground has to be moved each time with the probe, and be connected direct to the ground of the device being probed (not easy unless the board was laid out to accommodate this).&lt;/p&gt;
&lt;p&gt;I am unclear as to what code the last traces are transmitting (MOSI) and receiving (MISO), as it doesn&amp;#39;t look like the original request for device type (0x20, 0x01). Can you zoom in on each byte and the responses? I have never had an issue with noise on these parts; how long are the connections between the boards?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/193117?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 09:38:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6ca038e-ca2d-4fdc-9327-2d9dc9c51f6b</guid><dc:creator>awneil</dc:creator><description>[quote userid="13562" url="~/f/nordic-q-a/48513/problem-using-the-nrf52840-to-interface-an-ads1298-via-spi/193116"]I suggest you ask TI and their community.[/quote]
&lt;p&gt;+1&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/193116?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 09:35:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1ed0aa51-3eff-4fbb-b7bc-01cd36fe0b93</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;I suggest you ask TI and their community. There might be something that we&amp;#39;re missing in how you interface with this device, that they can easily answer.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/193101?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 09:09:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ad3a35e1-9672-4709-b1a2-7c45e093a9dc</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Hi hmolesworth,&lt;/p&gt;
&lt;p&gt;Thank you for replying!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Yes, I am using MSB first and SPI_MODE_1 (CPOL = 0 and CHPA = 1).&lt;/p&gt;
&lt;p&gt;I tried using the enhanced drive setting you suggested, but sadly, it does not change the behavior.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I have also tried using up to a 120Ohm resistor in series with the SCLK pin, added as close as possible to the source.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have taken further snapshots with the oscilloscope:&lt;/p&gt;
&lt;p&gt;YELLOW: MISO&lt;/p&gt;
&lt;p&gt;TEAL: SCLK&lt;/p&gt;
&lt;p&gt;BLUE: MOSI&lt;/p&gt;
&lt;p&gt;PINK: Not connected&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The first picture is without the 120R in series with SCLK. At first glance it seems as if noise on SCLK triggers a response from the ADS1298R. The noise on the SCLK pin (teal) on the first snapshot is significantly reduced by the 120R resistor.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/Noise_5F00_SCK_5F00_Pin.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I then added the 120R to the SCLK pin. Then I waited until I noticed an unexpected output from the ADS1298R on the MISO pin and took a snapshot again. The changes in MISO and SCLK line up here.&lt;/p&gt;
&lt;p&gt;(EDIT: Second snapshot was uploaded twice, and was changed to correct zoomed in snapshot).&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/SCLK_5F00_Noise_5F00_ZOOM.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BUT, when I zoomed in as on the third snapshot it looks more like&amp;nbsp; the noise on MISO, (Yellow) is not induced by the SCLK pin (Teal).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I think this, because the level-change on MISO (Yellow) is not being triggered by the peak voltage of the noise on the SCLK (Teal), but was already changing earlier than the peak.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&lt;/strong&gt;I do not think that it is a SCLK pin specific problem with the noise, but I do suspect that noise could be the issue. Does anyone have any further suggestions to how I should proceed looking for the issue here?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Br. Casper&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192968?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 14:41:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ae2b1de6-c705-41b5-8801-6bd8f3c2bdc9</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Are you using SPI mode 1 and MSB first? The &amp;#39;scope pictures are a little unclear, maybe displace the waveforms slightly from each other (vertically) so they are easier to read. This setup works:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
    ret_code_t err_code;

    spi_config.ss_pin    = ADS_CS_PIN;
    spi_config.miso_pin  = ADS_MISO_PIN;
    spi_config.mosi_pin  = ADS_MOSI_PIN;
    spi_config.sck_pin   = ADS_SCK_PIN;
    spi_config.frequency = NRF_DRV_SPI_FREQ_500K;  // Ensure less than 4 clk cycles for ADS1292
    spi_config.bit_order = NRF_DRV_SPI_BIT_ORDER_MSB_FIRST;
    spi_config.mode      = NRF_DRV_SPI_MODE_1;
    APP_ERROR_CHECK(nrf_drv_spi_init(&amp;amp;mAfeSpiInstance, &amp;amp;spi_config, afe_spi_event_handler, NULL));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;However as you are going off-board with the signals, I would suggest start with enhanced drive on SCK, MOSI and CS. The traces above may look clean, but fast jitter on the edges are not visible at this &amp;#39;scope resolution, and edge jitter can corrupt expected transactions, notably on SCK. Add this after spi init:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;   // High power output pins to ensure clean edge transitions off-board
   nrf_gpio_cfg(ADS_SCK_PIN
                NRF_GPIO_PIN_DIR_OUTPUT,
                NRF_GPIO_PIN_INPUT_DISCONNECT,
                NRF_GPIO_PIN_NOPULL,
                NRF_GPIO_PIN_H0H1,       // Test with High Drive high and low level
                NRF_GPIO_PIN_NOSENSE);&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192958?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 14:02:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:88cb4f45-c2c5-41ac-8afb-b1ed277a9fbe</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Update:&lt;/p&gt;
&lt;p&gt;I have found out that I did not wait long enough for VCAP1 to reach a stable value above 1.1V. This takes approx. 2.5 seconds in my setup.&lt;/p&gt;
&lt;p&gt;With this fixed I now have some communication. But I am not getting expected values consistently. Here are some oscilloscope pictures.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;YELLOW = MISO (DOUT on ADS1298R)&lt;/p&gt;
&lt;p&gt;TEAL &amp;nbsp; &amp;nbsp; &amp;nbsp; = SCLK&lt;/p&gt;
&lt;p&gt;PINK &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; = /CS&lt;/p&gt;
&lt;p&gt;BLUE &amp;nbsp; &amp;nbsp;&amp;nbsp; = MOSI (DIN on ADS1298R)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I think the problem is synchronization related. The way that MISO is left high, almost as if the ADS1298R is expecting more SCLK pulses to finish what it was writing.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/synchProblem.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;HOWEVER, I have by coincidence found a setting where I get expected values on every second transfer for my read. Here I read the&lt;br /&gt;ID register and CONFIG1 register as 0xD2 and 0x06 as expected.&lt;/p&gt;
&lt;p&gt;But the initial 1&amp;#39;s on the first byte of the SDATAC command are not expected.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/firstSendSpecificSetup.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here is a scope picture of every second attempt to read the registers:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/800x480/__key/communityserver-discussions-components-files/4/secondSendSpecificSetup.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Has anyone experienced anything similar?&lt;/p&gt;
&lt;p&gt;Thanks for reading,&lt;/p&gt;
&lt;p&gt;Br. Casper&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192954?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 13:53:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:63bb4ba5-4297-4683-bf42-09ac33144401</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Thank you for reading again, it is really appreciated!&lt;/p&gt;
&lt;p&gt;1. I have now monitored the power supply upon startup and noticed that the VCAP1 voltage takes around 2.5 seconds to stabilize at a value above 1.1V. The charge curve looks like a normal RC charge. I made the mistake of not waiting long enough, assuming it wouldn&amp;#39;t take that long. As you will see in a minute I have made contact with the ADS1298R, but I still have problems getting the expected values.&lt;/p&gt;
&lt;p&gt;2. I am sending the SDATAC command before attempting to read with the RREG command.&lt;/p&gt;
&lt;p&gt;3. Yes I have made sure that the clock signal is applied when it is supposed to.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192934?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 12:59:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5722305a-444c-4cf0-a75f-2dc1d0b10b44</guid><dc:creator>haakonsh</dc:creator><description>&lt;ol&gt;
&lt;li&gt;I suggest you scope the ADS1298&amp;#39;s power supply line for any fluctuations or noise during startup.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;From 9.5.2:&lt;br /&gt;NDS Enable Read Data Continuous mode. RDATAC 0001 0000 (10h) — This mode is the default mode at power up.(1)&lt;br /&gt;&lt;br /&gt;(1) When in RDATAC mode, the RREG command is ignored.&lt;br /&gt;&lt;br /&gt;From 9.5.2.10:&lt;br /&gt;When the device is in read data continuous mode (RDATAC), it is necessary to issue a SDATAC command before a RREG command can be issued.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;From 11.1:&lt;br /&gt;Allow time for the supply voltages to reach their final value, and then &lt;strong&gt;begin supplying the master clock signal to the CLK pin&lt;/strong&gt;. Wait for time tPOR, then transmit a reset pulse using either the RESET pin or RESET command to initialize the digital portion of the chip. Issue the reset after tPOR or after the VCAP1 voltage is greater than 1.1 V, whichever time is longer.&lt;br /&gt;&lt;br /&gt;Have you made sure that the clock signal is applied exactly when it&amp;#39;s supposed to?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192900?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 11:14:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5430f449-8228-4f65-81f5-1e1b93539799</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Hi haakonsh,&lt;/p&gt;
&lt;p&gt;Thank you for replying!&lt;/p&gt;
&lt;p&gt;I am using the Internal Clock of 2.048MHz as recommended in the datasheet because this application will be powered by battery, and therefore has to be low power.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am using Figure 93. Initial Flow at Power Up in section 10.1.1 as a guide for my Power-Up sequence.&lt;/p&gt;
&lt;p&gt;All of the I/O lines have been monitored with an oscilloscope I have confirmed that they all start out LOW at power up, and then I turn them on in the sequence described in 10.1.1 and 11.1 of the datasheet for the ADS1298.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am using the Development kit for the ADS1298, but I am not powering it with the MMBO board, but with the nRF82840 microcontroller. Single supply 3.0V.&lt;/p&gt;
&lt;p&gt;Still no luck though..&lt;/p&gt;
&lt;p&gt;Again, thank you very much for replying!&lt;/p&gt;
&lt;p&gt;Br. Casper&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192844?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 08:23:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:65efe94d-2c55-463b-b95c-52490d9c8055</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Are you using an external clock?&lt;br /&gt;In that case, it seems you need to supply a clock signal on the SCK pin before resetting the device.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;There&amp;#39;s a fairly detailed start-up sequence description in&amp;nbsp;10.1.1 Setting the Device for Basic Data Capture.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;From 11.1; &amp;quot;After releasing the RESET pin, program the configuration registers&amp;quot;.&amp;nbsp;&lt;br /&gt;- It seems you must program the configuration registers before you can read the DEVICE_ID register.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I suggest you scope &lt;span style="text-decoration:underline;"&gt;all&lt;/span&gt; I/O lines and all supply pins&amp;nbsp;and compare their states with the datasheet&amp;#39;s start-up and communication sequences.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Are you using the ADS1298 on a custom board or it&amp;#39;s dev kit?&lt;br /&gt;- If you&amp;#39;re using a custom board I suggest you submit your schematics and design files for review at TI.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192830?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 07:23:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b0ee083a-3c21-43d4-b17e-dffb0055978d</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Hi hmolesworth,&lt;/p&gt;
&lt;p&gt;Thank you for taking your time to reply again!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am aware that the ADS1298 is starting in RDATAC mode by default, and I am sending the SDATAC command prior to attempting to send the RREG opcode to read the ID-register. At the moment I am running the SPI at a low 500kHz.&lt;/p&gt;
&lt;p&gt;According to TI&amp;#39;s FAQ for the ADS129x devices: &lt;a href="https://e2e.ti.com/support/data-converters/f/73/t/772058"&gt;https://e2e.ti.com/support/data-converters/f/73/t/772058&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;it could be a problem with my Power-Up sequencing.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am supplying the ADS1298 Development board directly from my nRF82840 development board via 3.0V single supply. This is configured so that both the analog voltage (AVDD) and the digital voltage (DVDD) is supplied.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;According to the datasheet, the correct Power-Up sequence is as follows: &lt;/span&gt;&lt;/strong&gt;(I am using the internal 2.048MHz clock for now)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/1040x1216/__key/communityserver-discussions-components-files/4/ADS1298PowerUp.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;To try and adhere to these specifications I have made a simple test code:&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    // Powerup Sequence:
    nrf_gpio_pin_set(ADS1298_PWDN_PIN);     // 1) Powerup the ADS1298
    nrf_gpio_pin_set(ADS1298_RESET_PIN);    // 2) Set the RESET pin high
    nrf_delay_ms(100);                      // 3) Wait after powerup until reset
    nrf_gpio_pin_clear(ADS1298_RESET_PIN);  // 4) Set RESET pin low for a minimum of 2 * tCLK
    nrf_delay_ms(10);                       // 5) wait &amp;gt; 2 * tCLK
    nrf_gpio_pin_set(ADS1298_RESET_PIN);    // 6) Setting RESET pin high now enables the digital portion of the ADS1298
    nrf_delay_ms(100);                      // 7) Wait &amp;gt; 18 * tCLK Before starting to use the device
    &lt;/pre&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;But perhaps I am stilling missing something. Could it be that I actually have to toggle the power supply completely to the board, and using the /PWDN pin is not enough?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Thank you again for reading!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Br. Casper&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192755?ContentTypeID=1</link><pubDate>Thu, 13 Jun 2019 15:04:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b3b86377-3dc9-4b3b-acc1-9fe7ad93cec2</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;You may be overlooking the following; I think all family members start up in the read-continuous mode:&lt;/p&gt;
&lt;p&gt;&amp;quot;&lt;em&gt;If the device is in RDATAC mode, an SDATAC command must be issued before any other commands can be sent to the device.&lt;/em&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    AdsReset();                      // Reset ADS - not necessary if using power-on reset
    AdsSendCmd(ADS_CMND_SDATAC);     // Stop continuous mode
    // Turn on internal reference and allow time to settle
    AdsWriteReg(ADS1x9x_REG_CONFIG2, 0xA0);
now read id ..&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Otherwise the command looks correct:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/****************************************************************/
/* ADS1x9x COMMAND DESCRIPTION and definitions */
/****************************************************************/
typedef enum {
  // System Commands
  ADS_CMND_WAKEUP    = 0x02,   // Wake-up from standby mode
  ADS_CMND_STANDBY   = 0x04,   // Enter standby mode
  ADS_CMND_RESET_CMD = 0x06,   // Reset the device registers
  ADS_CMND_START     = 0x08,   // Start/restart (synchronize) conversions
  ADS_CMND_STOP      = 0x0A,   // Stop conversion
  ADS_CMND_OFFSETCAL = 0x1A,   // Channel offset calibration - needs to be sent every time there is a change to the PGA gain
  // Data Read Commands
  ADS_CMND_RDATAC    = 0x10,   // Enable Read Data Continuous mode.
                               // - This mode is the default mode at power-up.
  ADS_CMND_SDATAC    = 0x11,   // Stop Read Data Continuously mode
  ADS_CMND_RDATA     = 0x12,   // Read data by command; supports multiple read back.
  // Register Read/Write Commands
  ADS_CMND_RREG      = 0x20,   // Read n nnnn registers starting at address r rrrr
                               //  - first byte 001r rrrr (2xh)(2) - second byte 000n nnnn(2)
  ADS_CMND_WREG      = 0x40    // Write n nnnn registers starting at address r rrrr
                               //  - first byte 010r rrrr (2xh)(2) - second byte 000n nnnn(2)
} ADS1x9xCommand_t;
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I should add that if you are going off-board to the ADS development board it might be necessary to boost the drive to SCK, CS and MOSI pins from &lt;em&gt;S0S1&lt;/em&gt; to &lt;em&gt;H0H1 &lt;/em&gt;after the SPI has been initialised; not usually necessary at lower SCK speeds however..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192637?ContentTypeID=1</link><pubDate>Thu, 13 Jun 2019 10:48:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8f70d9df-2f59-4811-8fb6-53fd68829269</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;Thank you very much for the insight!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I can now see on my oscilloscope that I can send two bytes with a delay in between, and also send SCLK signal afterwards to receive the answer.&lt;/p&gt;
&lt;p&gt;I have not yet been successful in getting an answer from the ADS1298, but at least now I know that I am adhering to its datasheet requirements.&lt;/p&gt;
&lt;p&gt;I have set the Jumpers on the ADS1298 EVM (Evaluation board) to use the internal 2.048MHz clock and I have set the SPI frequency&lt;/p&gt;
&lt;p&gt;to 500kHz.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The SCLK signal is provided in bursts by the nRF52840 microcontroller as specified in the datasheet for the ADS1298, and aligns perfectly with the MOSI signal from the nRF52840 microcontroller.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Since I am not getting an answer, does anyone know what I might have overlooked?&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I am still trying to send the RREG opcode and the read the ID Register value just like the picture in the original post.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192500?ContentTypeID=1</link><pubDate>Wed, 12 Jun 2019 19:29:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c50b260-44b7-419b-aa11-5d41e7b08578</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;You don&amp;#39;t necessarily need to add a delay, just to conform to the AFE requirements.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;// Sending Multi-Byte Commands
// The ADS1291, ADS1292, and ADS1292R serial interface decodes commands in bytes and requires 4 tCLK cycles
// to decode and execute. Therefore, when sending multi-byte commands, a 4 tCLK period must separate the end of
// one byte (or opcode) and the next.
// Assume CLK is 512 kHz, then tSDECODE (4 tCLK) is 7.8125 us. When SCLK is 16 MHz, one byte can be
// transferred in 500 ns. This byte-transfer time does not meet the tSDECODE specification; therefore, a delay must be
// inserted so the end of the second byte arrives 7.3125 us later. If SCLK is 1 MHz, one byte is transferred in 8 us.
// Because this transfer time exceeds the tSDECODE specification, the processor can send subsequent bytes without
// delay. In this later scenario, the serial port can be programmed to move from single-byte transfer per cycle to
// multiple bytes.

    spi_config.frequency = NRF_DRV_SPI_FREQ_500K;  // Ensure less than 4 clk cycles for ADS1292/8&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Since transfers are only a few bytes, typically the slower clock speed is not an issue. Other issues tend to be more problematic; as an example the internal AFE clock has drift with respect to external timing sources, such as the crystal-clocks used further down the chain in ECG analytics. This has to be handled without introducing artifacts in the ECG stream.&lt;/p&gt;
&lt;p&gt;Using an external crystal clock is only one option to minimise this, but as a tip note that without a clock the ADS129x AFE is unavailable via SPI. So if the clock select pin is set to external clock mode the SPI interface will simply not work until the external clock is present. A classic mistake is to use the AFE output pin to select the clock source, which if defaulted to external (via a pull-up) means first an external clock has to be supplied to allow SPI transfers, then the pin programmed low for internal clock via SPI, then the external clock can be removed again.&lt;/p&gt;
&lt;p&gt;To manually control the CS pin, set the pin to not used; this is the nrf example, but may differ slightly depending on which library versions you are using&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    spi_config.ss_pin = NRF_DRV_SPI_PIN_NOT_USED&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192465?ContentTypeID=1</link><pubDate>Wed, 12 Jun 2019 15:43:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eead4b94-4ca3-4804-911c-3703a9f85053</guid><dc:creator>awneil</dc:creator><description>[quote userid="80129" url="~/f/nordic-q-a/48513/problem-using-the-nrf52840-to-interface-an-ads1298-via-spi/192464"]The way I interpret the following text from the datasheet[/quote]
&lt;p&gt;It&amp;#39;s not entirely clear, is it!&lt;/p&gt;
&lt;p&gt;You&amp;#39;d have to clarify that with the manufacturer.&lt;/p&gt;
&lt;p&gt;You might also ask them how they &lt;em&gt;expect&lt;/em&gt; people to implement this - since it is not common that microcontroller SPI controllers let you insert arbitrary delays!&lt;/p&gt;
&lt;p&gt;But, if it &lt;em&gt;is&lt;/em&gt; just a minimum, then it should be easy.&lt;/p&gt;
[quote userid="80129" url="~/f/nordic-q-a/48513/problem-using-the-nrf52840-to-interface-an-ads1298-via-spi/192464"]as soon as the SPI driver has been initialized, that pin is not affected by using&amp;nbsp;&lt;span style="background-color:transparent;color:#11171a;float:none;font-family:&amp;#39;GT Eesti&amp;#39;,&amp;#39;Helvetica&amp;#39;,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:21px;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:normal;"&gt;nrf_gpio_pin_set&lt;/span&gt;[/quote]
&lt;p&gt;So use a different pin.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192464?ContentTypeID=1</link><pubDate>Wed, 12 Jun 2019 15:31:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e4f70be0-3f6e-45e2-a243-f5ab273e81ac</guid><dc:creator>Casper Kronborg Pedersen</dc:creator><description>&lt;p&gt;&lt;strong&gt;The way I interpret the following text from the datasheet:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;9.5.2.9 Sending Multibyte Commands&lt;br /&gt;The ADS129x serial interface decodes commands in bytes, and requires 4 tCLK periods to decode and execute.&lt;br /&gt;Therefore, when sending multibyte commands, a 4 tCLK period must separate the end of one byte (or opcode)&lt;br /&gt;and the next.&lt;br /&gt;For example, if CLK is 2.048 MHz, then tSDECODE (4 &amp;times; tCLK) is 1.96 &amp;mu;s. When SCLK is 16 MHz, the maximum&lt;br /&gt;transfer speed for one byte is 500 ns. This byte transfer time does not meet the tSDECODE specification; therefore,&lt;br /&gt;a delay must be inserted so that the end of the second byte arrives 1.46 &amp;mu;s later. However, if SCLK is 4 MHz,&lt;br /&gt;one byte is transferred in 2 &amp;mu;s. Because this transfer time exceeds the tSDECODE specification, the processor can&lt;br /&gt;send subsequent bytes without delay. In the second scenario, the serial port can be programmed to use multiplebyte&lt;br /&gt;transfers instead of the single-byte transfers required to meet the timing of the first scenario .&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is that the delay must be a minimum of 4 * tCLK&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I have tried looking at the other posts, and haven&amp;#39;t had much luck with it I&amp;#39;m afraid. They don&amp;#39;t seem to be concerned with adding a fixed delay in between&amp;nbsp; bytes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I have also tried managing the CS pin manually, but I seems that as soon as the SPI driver has been initialized, that pin is not affected by using&amp;nbsp;&lt;span style="background-color:transparent;color:#11171a;float:none;font-family:&amp;#39;GT Eesti&amp;#39;,&amp;#39;Helvetica&amp;#39;,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:21px;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:normal;"&gt;nrf_gpio_pin_set(uint32_t pin_number)&lt;/span&gt; or&amp;nbsp;&lt;span style="background-color:transparent;color:#11171a;float:none;font-family:&amp;#39;GT Eesti&amp;#39;,&amp;#39;Helvetica&amp;#39;,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:21px;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:normal;"&gt;nrf_gpio_pin_clear(uint32_t pin_number)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Has anyone ever had similar issues?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem using the nRF52840 to interface an ADS1298 via SPI</title><link>https://devzone.nordicsemi.com/thread/192435?ContentTypeID=1</link><pubDate>Wed, 12 Jun 2019 14:28:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:61b8b92b-9397-434e-b1fe-2de4d67f3e76</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;Does the delay have to be &lt;em&gt;exactly&amp;nbsp;&lt;/em&gt;&lt;span&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;4 * tCLK ?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You could manage the CS pin &amp;quot;manually&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Look at the &amp;#39;Related&amp;#39; posts linked to the right ---&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>