<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FIFO &#8211; The Longhorn Engineer</title>
	<atom:link href="https://longhornengineer.com/tag/fifo/feed/" rel="self" type="application/rss+xml" />
	<link>https://longhornengineer.com</link>
	<description>Robotics, Pinball, Hacking, Portables</description>
	<lastBuildDate>Tue, 20 Dec 2022 20:42:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Printf Function for microcontrollers.</title>
		<link>https://longhornengineer.com/2012/05/08/printf-function-for-microcontrollers/</link>
		
		<dc:creator><![CDATA[Parker]]></dc:creator>
		<pubDate>Wed, 09 May 2012 01:07:17 +0000</pubDate>
				<category><![CDATA[HW/SW Hacks]]></category>
		<category><![CDATA[FIFO]]></category>
		<category><![CDATA[UART]]></category>
		<guid isPermaLink="false">https://longhornengineer.com/?p=1058</guid>

					<description><![CDATA[So this is meant to be paired with a UART program. This code is not all my own but I could not remember where I found it. I have edited the original quite a bit but the same structure is still there. If someone recognizes it please let me know so I can give credit. &#8230; <a href="https://longhornengineer.com/2012/05/08/printf-function-for-microcontrollers/" class="more-link">Continue reading <span class="screen-reader-text">Printf Function for microcontrollers.</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>So this is meant to be paired with a <a href="https://longhornengineer.com/projects/code/msp-430-launch-pad/uart-and-fifos/">UART program</a>. This code is not all my own but I could not remember where I found it. I have edited the original quite a bit but the same structure is still there. If someone recognizes it please let me know so I can give credit.</p>
<p><strong>Printf Code (CCS V5)</strong></p>
<hr>
<p><a href="https://longhornengineer.com/code/MSP430/printf/printf_Test_Ver1_0.zip">Project File Ver1.0</a><br />
<a href="https://longhornengineer.com/code/MSP430/printf/main.c">main.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/printf/printf.c">printf.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/printf/printf.h">printf.h</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MSP-430 LaunchPad UART and FIFO</title>
		<link>https://longhornengineer.com/2012/05/06/msp-430-launchpad-uart-and-fifo/</link>
		
		<dc:creator><![CDATA[Parker]]></dc:creator>
		<pubDate>Sun, 06 May 2012 15:56:04 +0000</pubDate>
				<category><![CDATA[Appnotes]]></category>
		<category><![CDATA[PCBA & ENG]]></category>
		<category><![CDATA[FIFO]]></category>
		<category><![CDATA[PrintF Functions]]></category>
		<category><![CDATA[UART]]></category>
		<guid isPermaLink="false">https://longhornengineer.com/?p=1045</guid>

					<description><![CDATA[This code is currently for the MSP430G2553 on the Ti LaunchPad. The MSP430G2553 has a built in USCI that can be used for UART. Unlike lower end models of the value line you do not have to make a slow software UART. I looked online and did not see any UART libraries that where nice &#8230; <a href="https://longhornengineer.com/2012/05/06/msp-430-launchpad-uart-and-fifo/" class="more-link">Continue reading <span class="screen-reader-text">MSP-430 LaunchPad UART and FIFO</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>This code is currently for the <a href="http://www.ti.com/product/msp430g2553">MSP430G2553</a> on the <a href="http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G2%29">Ti LaunchPad</a>. The MSP430G2553 has a built in USCI that can be used for <a href="http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter">UART</a>. Unlike lower end models of the value line you do not have to make a slow software UART. I looked online and did not see any UART libraries that where nice to work with without hacking them apart. I did not see any <a href="http://en.wikipedia.org/wiki/FIFO">FIFO</a> implementations at all either. They generally waited on the UART to finish its business before sending more data.</p>
<p>The advantage of the FIFO allows the MSP430 to push that data into the FIFO as fast as it can and let the hardware UART do the rest of the job. This frees up the CPU to do allot more stuff. The only bad thing is that if the FIFO gets full you start loosing data. The code has a global flag to let the main code know that the FIFOs are full.</p>
<p>The Receive (RX) portions of the code also have a global mailbox flag to notify the rest of the code that the UART received something. This would be useful if you need to send commands to a robot or device.</p>
<p>There are 4 different flavors of the code.</p>
<p>1. RX TX<br />
2. RX TX with a FIFO<br />
3. TX only<br />
4. TX only with a FIFO</p>
<p>The code without the FIFOs waits on the UART during the transmission but uses far less memory then the FIFO code. You have to sacrifice speed or memory on this one. The TX only code strips out the RX portions if you just want to have the msp-430 print to a terminal. This is useful for debugging purposes.</p>
<p>If you are going to use this on the MSP-430 LaunchPad then you will need to cross the RX and TX lines. This <a href="http://www.ti.com/lit/ml/swru312b/swru312b.pdf">pdf</a> I found on the internet explains on page 3 (step 6) what I am talking about.</p>
<p><a href="https://longhornengineer.com/code/MSP430/UART/uart_terminal.png"><img fetchpriority="high" decoding="async" alt="" src="https://longhornengineer.com/code/MSP430/UART/uart_terminal.png" class="aligncenter" width="641" height="172"></a></p>
<p><strong>RX TX UART Code (CCS V5)</strong><br />
<a href="https://longhornengineer.com/code/MSP430/UART/UART_Ver1_0.zip">Project File</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART/main.c">main.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART/uart.c">uart.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART/uart.h">uart.h</a></p>
<p><strong>RX TX UART FIFO Code (CCS V5)</strong><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO/UART_FIFO_Ver1_0.zip">Project File</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO/main.c">main.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO/uart_fifo.c">uart_fifo.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO/uart_fifo.h">uart_fifo.h</a></p>
<p><strong>TX UART Code (CCS V5)</strong><br />
<a href="https://longhornengineer.com/code/MSP430/UART_TX_ONLY/UART_TX_ONLY_Ver1_0.zip">Project File</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_TX_ONLY/main.c">main.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_TX_ONLY/uart_tx.c">uart_tx.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_TX_ONLY/uart_tx.h">uart_tx.h</a></p>
<p><strong>TX UART FIFO Code (CCS V5)</strong><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO_TX_ONLY/UART_FIFO_TX_ONLY_Ver1_0.zip">Project File</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO_TX_ONLY/main.c">main.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO_TX_ONLY/uart_fifo_tx.c">uart_fifo_tx.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/UART_FIFO_TX_ONLY/uart_fifo_tx.h">uart_fifo_tx.h</a></p>
<p><strong>FIFO Code (CCS V5)</strong><br />
<a href="https://longhornengineer.com/code/MSP430/FIFO/FIFO_Ver1_0.zip">Project File</a><br />
<a href="https://longhornengineer.com/code/MSP430/FIFO/fifo.c">fifo_.c</a><br />
<a href="https://longhornengineer.com/code/MSP430/FIFO/fifo.h">fifo.h</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
