<?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>FLPR/VPR documentation on VIO, VTIM, etc</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/120073/flpr-vpr-documentation-on-vio-vtim-etc</link><description>Trying to work through using the FLPR for a virtual peripheral. I can infer things like the VTIM sets counter 0 and 1 to automatically buffer data in/out via the VIO setup. But it would be a bit easier to understand with an overview of the VPR/FLPR peripherals</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 02 Apr 2025 10:09:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/120073/flpr-vpr-documentation-on-vio-vtim-etc" /><item><title>RE: FLPR/VPR documentation on VIO, VTIM, etc</title><link>https://devzone.nordicsemi.com/thread/530194?ContentTypeID=1</link><pubDate>Wed, 02 Apr 2025 10:09:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:731e3f30-2cd9-4591-b3ab-dd600720b361</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;Here is what I found:&lt;/p&gt;
&lt;p&gt;The information you are asking about is not yet publicly available, and I can not share it here.&lt;/p&gt;
&lt;p&gt;If you want to push the questions a bit, you can try to &lt;a href="https://www.nordicsemi.com/About-us/Contact-Us"&gt;Contact&lt;/a&gt; your local Nordic Semiconductor sales representative, and perhaps they can help you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FLPR/VPR documentation on VIO, VTIM, etc</title><link>https://devzone.nordicsemi.com/thread/528830?ContentTypeID=1</link><pubDate>Tue, 25 Mar 2025 12:00:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8f0aee69-049c-4fd7-80cd-99122bf04ae4</guid><dc:creator>bharrisau</dc:creator><description>&lt;p&gt;No worries. I was looking at setting up ethernet MAC running 10Mbps via either RMII or RGMII. I think RMII will be fine, and I&amp;#39;ll just ignore the 50MHz clock signal from the PHY (signals are repeated for 10 clocks - effectively 5Mhz) and only need 6 IO to the RTP. RGMII would be more technically correct, as I&amp;#39;d be able to correctly clock data against a 2.5Mhz clock but it needs 12 IO.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FLPR/VPR documentation on VIO, VTIM, etc</title><link>https://devzone.nordicsemi.com/thread/528825?ContentTypeID=1</link><pubDate>Tue, 25 Mar 2025 11:47:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:86310903-90e1-427f-a2d2-df145c59a11d</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;I get what you mean yes. I will see which of the questions I can find answers for soon.&lt;/p&gt;
&lt;p&gt;But first, could I ask: what is the use-case you have here?&lt;/p&gt;
&lt;p&gt;(Let me know if you rather want the ticket to be private for that)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FLPR/VPR documentation on VIO, VTIM, etc</title><link>https://devzone.nordicsemi.com/thread/528724?ContentTypeID=1</link><pubDate>Mon, 24 Mar 2025 22:55:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1a9b4899-aaf0-425d-acb0-47011e811251</guid><dc:creator>bharrisau</dc:creator><description>&lt;p&gt;I was hoping to clarify a few of the details. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maximum VIO buffered size - seems like 32 bits, but mSPI works in 8 bit units only. Why not more?&lt;/li&gt;
&lt;li&gt;Are OUTB/INB double buffered? i.e. if I call `nrf_vpr_csr_vio_out_buffered_reversed_byte_set`, does the first call load the OUTB shift register, the second call buffer, and the third call stall the CPU until the first buffer is shifted out?&lt;/li&gt;
&lt;li&gt;How does reading `nrf_vpr_csr_vio_in_buffered_reversed_byte_get` work? Does it stall the CPU until a full frame is available (i.e. shift_count * frame_width bits?). Is the shift register still reading in data while there is an INB waiting to be read?&lt;/li&gt;
&lt;li&gt;VTIM Counter 0 can trigger off &amp;quot;VIO Event&amp;quot;, what are VIO events?&lt;/li&gt;
&lt;li&gt;Can I use VIO input to stall the CPU waiting for a rising edge? Or is the quickest option to do a read and conditional jump?&lt;/li&gt;
&lt;li&gt;What does enabling Real Time Peripheral do, and when would I need to do it?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Can I set interrupts on OUTB empty or INB full?&lt;/li&gt;
&lt;li&gt;Is there any options for handling fractional VTIM counters, other than manually updating TOP value each iteration. e.g. for 25Mhz - top needs to be 4.12 - so swapping between 4 and 5.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I wasn&amp;#39;t able to find details on things like that. Could only guess based on the GPIO and mSPI examples.&lt;/p&gt;
&lt;p&gt;Edit: Had a quick think on the 25MHz from what is available. Actualy needs CNT1_TOP to alternate between 1 and 2 as it operates on half-cycles. So maybe set CNT1_TOP to 1 and call CNT1_ADD+1 every 5 cpu cycles - can&amp;#39;t really use the CPU for anything else though. Maybe use the CNT0_IRQ to trigger once a full cycle and call the CNT1_ADD in that way.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FLPR/VPR documentation on VIO, VTIM, etc</title><link>https://devzone.nordicsemi.com/thread/528671?ContentTypeID=1</link><pubDate>Mon, 24 Mar 2025 14:50:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b5a91a1e-53ed-49cf-8301-126e17ffcd3d</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;For the FLPR Software Defined Peripherals (SDP), we got some samples over at &lt;a href="https://github.com/nrfconnect/sdk-nrf/tree/main/applications/sdp"&gt;https://github.com/nrfconnect/sdk-nrf/tree/main/applications/sdp&lt;/a&gt;, one of which even got a bit of &lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/sdp/gpio/README.html"&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For the Datasheet we got &lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/vpr.html"&gt;VPR — RISC-V CPU&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Or you could always dig in some source files: &lt;a href="https://github.com/zephyrproject-rtos/hal_nordic/blob/master/nrfx/mdk/nrf54l15_flpr_peripherals.h"&gt;https://github.com/zephyrproject-rtos/hal_nordic/blob/master/nrfx/mdk/nrf54l15_flpr_peripherals.h&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Are these what you look for?&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Sigurd Hellesvik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>