<?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>What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/109347/what-is-the-most-power-efficient-way-in-terms-of-the-nrf52840-to-drive-an-lcd-screen-with-six-data-lines</link><description>Hi DevZone, 
 I&amp;#39;m a hobbyist working on a wearable project using nrf52840 and a memory LCD from sharp. I&amp;#39;m currently using the monochrome LS018B7DH02 and driving it using SPI (I believe this uses the SPIM peripheral with EasyDMA under the hood, but I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 20 Mar 2024 03:03:21 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/109347/what-is-the-most-power-efficient-way-in-terms-of-the-nrf52840-to-drive-an-lcd-screen-with-six-data-lines" /><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474746?ContentTypeID=1</link><pubDate>Wed, 20 Mar 2024 03:03:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec02b02c-236d-4a69-a728-feccdc9e7dff</guid><dc:creator>thejeffcooper</dc:creator><description>&lt;p&gt;I&amp;#39;m going to&amp;nbsp;look in to using SPIM synchronized to GPIOTE using PPI to write out data to a shift register (using SPIM) and toggling the latch line at the appropriate times (using GPIOTE and probably a TIMER). Hopefully that works!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474745?ContentTypeID=1</link><pubDate>Wed, 20 Mar 2024 02:35:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f9a78d1-a4a8-45c7-b102-652a32e011fe</guid><dc:creator>thejeffcooper</dc:creator><description>&lt;p&gt;Thank you both for your help! I didn&amp;#39;t know about the PPI; I&amp;#39;ll experiment with it, but I should be able to make something work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474546?ContentTypeID=1</link><pubDate>Tue, 19 Mar 2024 10:12:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1421265b-3107-4388-b424-b1a6abdd2614</guid><dc:creator>Jared</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know about the Arduino framework, but &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/ppi_example.html?cp=9_1_4_6_22"&gt;this &lt;/a&gt;is the sample I would suggest in nRF5SDK,&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;
&lt;p&gt;Jared&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474412?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2024 15:30:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e23b0677-f359-4df9-bfcc-825c9259514c</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Here is an example of starting 4 PWM peripherals simultaneously, and a discussion on points arising; SPIM is similar as Jared indicates. The nRF52840 has an issue that will require placing the SPIM buffers in different RAM segments, explained in the link.&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/108184/start-pwms-synchronous"&gt;start-pwms-synchronous&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474406?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2024 15:17:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f573305d-1cc2-4bbd-a115-327c30e9cc87</guid><dc:creator>thejeffcooper</dc:creator><description>&lt;p&gt;I&amp;#39;m using the platformio Arduino framework, which I believe exposes nrf5sdk / nrfx functionality&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474368?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2024 14:19:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:34b445d1-ef7f-4ba4-a701-93628357444c</guid><dc:creator>Jared</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Are you using nRF Connect SDK or nRF5SDK?&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;
&lt;p&gt;Jared&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474367?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2024 14:17:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fd23a00d-46ef-4fd9-9aa7-964bdf94f2ea</guid><dc:creator>thejeffcooper</dc:creator><description>&lt;p&gt;That might work! I wasn&amp;#39;t aware of PPI. Can you point me at an example of using it? I won&amp;#39;t be able to test this on real hardware for a week or two, but I&amp;#39;d like to have as many options to test as possible before then.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474336?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2024 13:12:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a12c5625-65bf-4789-a279-6c9e7cf34ec3</guid><dc:creator>Jared</dc:creator><description>[quote user="thejeffcooper"]Is it possible to run two SPIM data lines on the same clock line somehow? That opens up a lot more possibility here, even if it&amp;#39;s not ideal.[/quote]
&lt;p&gt;No, that is not possible. Each SPIM instance will have it&amp;#39;s own dedicated SCLK. But maybe you could try to synchronize them by using PPI to start the task simultaneously on the same event? Not sure if that would fix your issue?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474286?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2024 11:27:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6e53c63c-401b-47fb-9bf1-9477069c5bce</guid><dc:creator>thejeffcooper</dc:creator><description>&lt;p&gt;Thanks for the reply! The problem is that I would need 6 data lines all clocked together coming out of the nrf52, or I&amp;#39;d need some sort of low power shift register to accept 6 or 8 bits at a time and output them.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Is it possible to run two SPIM data lines on the same clock line somehow? That opens up a lot more possibility here, even if it&amp;#39;s not ideal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474269?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2024 10:23:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ea92033b-2ef9-49fd-b5cf-741dede3dd6a</guid><dc:creator>Jared</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]My question is this: what is the most power-efficient way to drive this LCD from the perspective of the nrf52840 CPU? Power efficiency in my mind seems like it should mostly be decided by how much CPU-on time the update uses, which is why I think I get such a benefit from the SPIM peripheral / EasyDMA under my current schem[/quote]
&lt;p&gt;Yes exactly, with the SPIM peripheral you can avoid using CPU power during the transaction, only time it would be used when the data has to be processed.&amp;nbsp;&lt;/p&gt;
[quote user=""]With six data lines, though, I&amp;#39;m not sure if there exists a peripheral (or a way to abuse a peripheral) to drive all of them in sync with the same clock from a memory buffer.[/quote][quote user=""] The alternative is bit-banging the output with GPIO pins, which I&amp;#39;m sure would work, but would eat up a comparatively large amount of CPU time (moving from bitbanging to SPIM under my current one-channel scheme was a 4x speedup!) and thus consume more power.[/quote]
&lt;p&gt;No, there isn&amp;#39;t any such peripheral. Yes, this would require the CPU to on most of the time which would require more power. But you were able to speed the transfer 4x when you moved to SPIM? If so, then I would definitely not see the motivation of implementing the bit banging, as you could go to IDLE sleep earlier to conserve power in between the transfers.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;
&lt;p&gt;Jared&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the most power-efficient way (in terms of the nrf52840) to drive an LCD screen with six data lines?</title><link>https://devzone.nordicsemi.com/thread/474180?ContentTypeID=1</link><pubDate>Sun, 17 Mar 2024 19:01:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5758e8df-d5e3-49d5-9852-52194b447a83</guid><dc:creator>thejeffcooper</dc:creator><description>&lt;p&gt;I think the &amp;quot;right&amp;quot; way to do this is probably to use a driver chip like the&amp;nbsp;&lt;a href="https://www.mouser.ca/datasheet/2/137/xb8ac001_d01_1__S1D13C00_Product_Brief_Rev_1_1_-3388027.pdf"&gt;S1D13C00&lt;/a&gt;&amp;nbsp;(which is what&amp;#39;s on the &lt;a href="https://www.sharpsde.com/technologies-for/memory-in-pixels/"&gt;product page&lt;/a&gt;&amp;nbsp;from sharp), but unfortunately this chip doesn&amp;#39;t seem to be available in quantities smaller than a few hundred.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>