<?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>the problem of high frequency send iic data</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/63485/the-problem-of-high-frequency-send-iic-data</link><description>hi，i want to control a led driver by frequency send iic data, i need send 600 bytles once at least 10ms each time ,and the 600 bytles send by 3times.send the 600 bytles need 24ms.i create a 10ms once timer,and in the end of the timer handler start the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 08 Jul 2020 08:43:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/63485/the-problem-of-high-frequency-send-iic-data" /><item><title>RE: the problem of high frequency send iic data</title><link>https://devzone.nordicsemi.com/thread/258942?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 08:43:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c4a3f023-92be-4b0a-9997-e2376196b726</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Is&amp;nbsp;disp_frame_data called from interrupt context? Does this function start any timers? Replacing it with a delay command does not necessarily cause the application to behave in the same way. The delay will only stall the CPU in the context it is currently running, higher priority tasks will still be running. It is hard to say exactly what happens in your application without seeing the full project.&lt;/p&gt;
&lt;p&gt;Did you try increasing the scheduler queue size? Did it help?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: the problem of high frequency send iic data</title><link>https://devzone.nordicsemi.com/thread/258941?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 08:41:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18b5b780-37be-4043-a896-0f2b7d1dc26f</guid><dc:creator>pipixia_8_8</dc:creator><description>&lt;p&gt;im sure it is the problem of hw iic.i exchange the hw iic api to soft iic api ,and now it work well , will not report the erro.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: the problem of high frequency send iic data</title><link>https://devzone.nordicsemi.com/thread/258908?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 06:22:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5eb84383-3edb-4f01-9c43-0d7f695d73f4</guid><dc:creator>pipixia_8_8</dc:creator><description>&lt;p&gt;i know your means,so i use the single shot timer.i restart the single timer after 600 bytles send over(24ms after).so the logic of the timer like this:&lt;/p&gt;
&lt;p&gt;|&amp;nbsp; &amp;nbsp; 10ms&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp;send data(24ms)&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp;10ms&amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; send data (24ms)&amp;nbsp; &amp;nbsp; | ...&lt;/p&gt;
&lt;p&gt;but it also occur this problem .so i suspect i was the twi&amp;#39;s problem at hight frequency sned.because i test cpu delay funcation. it also delay 24ms,but there is no report and chip run well.&lt;/p&gt;
&lt;p&gt;i also consider driver it by spi (high transfer speed),but the&amp;nbsp;&lt;span&gt;driver&amp;nbsp;cant&amp;nbsp;support spi .tank for your reply.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: the problem of high frequency send iic data</title><link>https://devzone.nordicsemi.com/thread/258902?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 06:05:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2c9e934f-af83-464c-9cca-22cbb4704f5f</guid><dc:creator>Turbo J</dc:creator><description>[quote userid="89648" url="~/f/nordic-q-a/63485/the-problem-of-high-frequency-send-iic-data"] iic data, i need send 600 bytles once at least&amp;nbsp; 10ms each time[/quote]
&lt;p&gt;Not possible with an I&amp;sup2;C bus: 600 bytes (4800 bits) * 100 Hz = 480.000 Hz. The TWI busses on NRF chips can only go up to 400 kHz.&lt;/p&gt;
&lt;p&gt;Does your LED driver support SPI?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: the problem of high frequency send iic data</title><link>https://devzone.nordicsemi.com/thread/258896?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 04:53:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5b2ed1ff-1e86-4a5d-94fa-5b8f16fea753</guid><dc:creator>pipixia_8_8</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;at first ,i guess the reson is as your&amp;nbsp;description.&lt;/p&gt;
&lt;p&gt;1. but i try to replace the iic transfer api to cpu delay api,it is also 24ms，but it will not occur the error report.so if it is because&amp;nbsp;&lt;span&gt;the scheduler queue is full.the cpu delay will also result in this problem.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2.i try to place the iic sned api in the main loop ,and it will also occur the problem ,report the&amp;nbsp;NO_MEM&amp;nbsp;.as my understand,if it is&amp;nbsp;the scheduler queue is full.the main loop operation wiil not report this erro.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3.i try to increase the&amp;nbsp;SCHED_QUEUE_SIZE.the condition&amp;nbsp;&amp;nbsp;has been improved. but the chip will also report the erro or down that cant printf any info and cant find the advertisement.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: the problem of high frequency send iic data</title><link>https://devzone.nordicsemi.com/thread/258883?ContentTypeID=1</link><pubDate>Tue, 07 Jul 2020 20:11:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:28f69ce7-6fa4-48a7-87c4-dccf69859c5d</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;From the location of the error, it looks like you are using the app_timer with the application scheduler library (APP_TIMER_CONFIG_USE_SCHEDULER). Most likely the frequent transfers are causing the application to not process the scheduler queue fast enough, causing the NO_MEM error when the scheduler queue is full. You could try increasing the scheduler queue size in the scheduler initialization (second parameter to &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.0/group__app__scheduler.html#gaa9670ed0053a67304c3d2d0cb3eb1333"&gt;APP_SCHED_INIT&lt;/a&gt;()).&lt;/p&gt;
&lt;p&gt;It may also be a better option to push the interrupt handling to the scheduler, to process it in the way that the events come in. That way, the lengthy interrupt handler will not prevent other events from being handled. See the &lt;a href="https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/scheduler-tutorial"&gt;application scheduler tutoria&lt;/a&gt;l for more details.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>