<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Slow SPI in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137996#M2678</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Kapsel,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;If my understanding is correct, your measurement of 245 kHz&amp;nbsp;may refer to the &lt;U&gt;data throughput rate&lt;/U&gt;&amp;nbsp;and not the SPI clock rate.&amp;nbsp; The SPI clock signal will only occur as each byte is transferred, and will cease between bytes.&amp;nbsp; With the code you are using, the period between bytes may well exceed the period of the actual transfer.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;You&amp;nbsp;can speed&amp;nbsp;throughput up a little bit by modifying your code as shown below.&amp;nbsp; This might also eliminate the need for the MESSAGE DISABLE pragma.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;tU08 send_byte(tU08 bajt)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;while (SPISR_SPTEF == 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SPIDR = bajt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;while&amp;nbsp;(SPISR_SPIF == 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return SPIDR;&lt;BR /&gt;}&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;Your test loop is also likely to&amp;nbsp;require significant additional overhead that will reduce the overall throughput.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;Regards,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;Mac&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 26 Nov 2006 23:52:19 GMT</pubDate>
    <dc:creator>bigmac</dc:creator>
    <dc:date>2006-11-26T23:52:19Z</dc:date>
    <item>
      <title>Slow SPI</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137995#M2677</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm curently using MC9S12NE64 (25Mhz oscilator + PLL configured by OpenTcp, SS pin not used from oryginal interface but connectec to one of PORTH's pins) with OpenTcp additional I wrote MMC suport based on SPI interface. Everything work's fine but it's slow... Acording to Datasheet my bound rate schould be 12Mhz but i'm geting about 245 kHz. I hope someone can help me becouse I have no ideas what could be wrong.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My SPI code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma CODE_SEG __NEAR_SEG NON_BANKED&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void Init_spi(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DDRS_DDRS6=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DDRS_DDRS5=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CS_DIR=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PIEH=0x00;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SPICR1=0b01010000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SPICR2=0x00;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//SPIBR=0b00010101;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SPIBR=0x00;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma MESSAGE DISABLE C4000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;tU08 send_byte(tU08 bajt)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while (SPISR_SPTEF==0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SPIDR=bajt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (SPISR_SPIF==1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;return SPIDR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} while (1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma MESSAGE DEFAULT C4000&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma CODE_SEG DEFAULT&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Test procedure ( run_count is incremanted Every 1ms by internal timmer) :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;extern unsigned long run_count;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;volatile unsigned long start,stop,count;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;start=run_count;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (count=0;count1048576;count++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;send_byte(0xAA);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;stop=run_count-start;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PLL config:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;RTICTL = 44;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CLKSEL_PLLSEL = 0; /* Select clock source from XTAL */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SYNR = 0; /* Set the multiplier register */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;REFDV = 0; /* Set the divider register */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PLLCTL |= 112; /* PLLCTL: PLLON=1,AUTO=1,ACQ=1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while(!CRGFLG_LOCK); /* Wait */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CLKSEL_PLLSEL = 1; /* Select clock source from PLL */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thx for any help&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards Kapsel&lt;/SPAN&gt;&lt;P&gt;Message Edited by kapsel on &lt;SPAN class="date_text"&gt;2006-11-26&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;01:17 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by kapsel on &lt;SPAN class="date_text"&gt;2006-11-26&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;01:17 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Nov 2006 21:16:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137995#M2677</guid>
      <dc:creator>kapsel</dc:creator>
      <dc:date>2006-11-26T21:16:39Z</dc:date>
    </item>
    <item>
      <title>Re: Slow SPI</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137996#M2678</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Kapsel,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;If my understanding is correct, your measurement of 245 kHz&amp;nbsp;may refer to the &lt;U&gt;data throughput rate&lt;/U&gt;&amp;nbsp;and not the SPI clock rate.&amp;nbsp; The SPI clock signal will only occur as each byte is transferred, and will cease between bytes.&amp;nbsp; With the code you are using, the period between bytes may well exceed the period of the actual transfer.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;You&amp;nbsp;can speed&amp;nbsp;throughput up a little bit by modifying your code as shown below.&amp;nbsp; This might also eliminate the need for the MESSAGE DISABLE pragma.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;tU08 send_byte(tU08 bajt)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;while (SPISR_SPTEF == 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SPIDR = bajt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;while&amp;nbsp;(SPISR_SPIF == 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return SPIDR;&lt;BR /&gt;}&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;Your test loop is also likely to&amp;nbsp;require significant additional overhead that will reduce the overall throughput.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;Regards,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;Mac&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Arial"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Nov 2006 23:52:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137996#M2678</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-11-26T23:52:19Z</dc:date>
    </item>
    <item>
      <title>Re: Slow SPI</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137997#M2679</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hello bigmac,&lt;BR /&gt;&lt;BR /&gt;You are right that the overhead added by my test procedure is quite large. I wrote a new one :&lt;BR /&gt;&lt;BR /&gt;void TestSPI()&lt;BR /&gt;{&lt;BR /&gt;// call's 16*65535 send byte&lt;BR /&gt;_asm&lt;BR /&gt;{&lt;BR /&gt;LDY #16&lt;BR /&gt;LDX #65535&lt;BR /&gt;loop: LDAB #170&lt;BR /&gt;JSR send_byte&lt;BR /&gt;DEX&lt;BR /&gt;CPX #0&lt;BR /&gt;BNE loop&lt;BR /&gt;DEY&lt;BR /&gt;CPY #0&lt;BR /&gt;BNE loop&lt;BR /&gt;RTC&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Using this one I got data throughput 520kHz. So the main idea is to optimize my code using assembler to maximize throughput.&lt;BR /&gt;But when I think about it's still quite a big difrence betwen expected throughput and the one I got. SPI uses bus clock (25Mhz) my core clock schoud be 50Mhz from the pll. When i look at the assembly of my code there are just few instructions betwen each byte send so they shouldnt put such a big deley between bytes. Acutaly the delay schuld be minimal or am I missing something?&lt;BR /&gt;&lt;BR /&gt;PS sory for the poor english...&lt;BR /&gt;PS2 Thx for bigmac for the quick response&lt;BR /&gt;&lt;BR /&gt;Regards Kapsel&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Nov 2006 03:46:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137997#M2679</guid>
      <dc:creator>kapsel</dc:creator>
      <dc:date>2006-11-27T03:46:32Z</dc:date>
    </item>
    <item>
      <title>Re: Slow SPI</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137998#M2680</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Kapsel,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;With a 25 MHz bus frequency, the maximum SPI clock frequency setting will be 12.5 MHz.&amp;nbsp; However, the transfer of each byte will require 8 clock cycles - I wonder if this fact has been overlooked.&amp;nbsp; If my rough calculation is correct, your 520 kHz throughput rate suggests a total overhead of about 32&amp;nbsp;bus cycles for each SPI byte sent (the actual data transfer requires an additional 16 bus cycles).&amp;nbsp; Any improvement on this is likely to be marginal.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;What throughput rate (bytes per second) do you actually need to achieve?&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The send_byte function might be further simplified, with the assumption that the transmit buffer will be empty whenever the function is entered, and its state&amp;nbsp;would not need testing - this assumption would apply to your present test code.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;tU08 send_byte(tU08 bajt)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SPIDR = bajt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;while&amp;nbsp;(SPISR_SPIF == 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return SPIDR;&lt;BR /&gt;}&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;For any further improvement, you would need to consider use of assembly code for this function.&amp;nbsp; Have you examined the disassembled&amp;nbsp;code that the C function produces?&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Nov 2006 08:52:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137998#M2680</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-11-27T08:52:05Z</dc:date>
    </item>
    <item>
      <title>Re: Slow SPI</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137999#M2681</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi&lt;BR /&gt;My goal is to reach maximum transfer rate for openTCP stack(acording to my test's about 200kb/s) from mmc.&lt;BR /&gt;The problem is that excepy SPI code i have my own MMC and FAT32 code wich puts quite a delay( i'v could wrote it better but i'm a little lazy.. &lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;). On top of that is a ftp and http serwer. My oryginal asumption was that I would get at least 1Mhz throughput rate from SPI and the delay from the rest of the code would give mi a throughput of about 300 kb/s while reading a file using my fat system. It looks i was wrong...&lt;BR /&gt;&lt;BR /&gt;Further optimization of send_byte acording to me is not posible. Curently asembly of send_byte consists of 3 assembler instructions (BRCLR,STAB,LDAB). Optimization you sugestested in your previous post works after adding "while (SPISR_SPTEF == 0);" to Init_spi.&lt;BR /&gt;&lt;BR /&gt;I already have about 110kb/s from my ftp serwer. Additional optimization to my mmc and fat code is posible so I hope I can squeeze 200kb/s from it... &lt;IMG alt=":smileyhappy:" class="emoticon emoticon-smileyhappy" id="smileyhappy" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-happy.gif" title="Smiley Happy" /&gt;&lt;BR /&gt;&lt;BR /&gt;Thx for help and I hope I can manage on my own now...&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Kapsel&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Nov 2006 14:10:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Slow-SPI/m-p/137999#M2681</guid>
      <dc:creator>kapsel</dc:creator>
      <dc:date>2006-11-27T14:10:37Z</dc:date>
    </item>
  </channel>
</rss>

