<?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>Volts and Bytes<title></title>
</title>
	<atom:link href="http://voltsandbytes.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://voltsandbytes.com</link>
	<description>Microcontroller projects, tutorials, and other electronics stuffs...</description>
	<lastBuildDate>Tue, 31 Aug 2010 09:57:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>DIY Digital Thermometer 2</title>
		<link>http://voltsandbytes.com/diy-digital-thermometer-2/</link>
		<comments>http://voltsandbytes.com/diy-digital-thermometer-2/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 08:23:35 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[ADC]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[ATtiny]]></category>
		<category><![CDATA[ATtiny26]]></category>
		<category><![CDATA[ATTiny26L]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[digital thermometer]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[LM35]]></category>
		<category><![CDATA[Sensor]]></category>
		<category><![CDATA[seven segment display]]></category>
		<category><![CDATA[temperature]]></category>
		<category><![CDATA[thermometer]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=398</guid>
		<description><![CDATA[Few months ago, I published my first DIY digital thermometer. However, like any simple projects/prototypes,  that project needs some improvements. Previously, I used a voltage regulator that has a 100mA rating. Though it was able to source current to the whole circuit, it gets too hot easily. Another problem with that was that the voltage regulator was very close [...]]]></description>
			<content:encoded><![CDATA[<p>Few months ago, I published my first <a href="http://voltsandbytes.com/diy-digital-thermometer/">DIY digital thermometer</a>. However, like any simple projects/prototypes,  that project needs some improvements. Previously, I used a voltage regulator that has a 100mA rating. Though it was able to source current to the whole circuit, it gets too hot easily. Another problem with that was that the voltage regulator was very close to the sensor. Since the voltage regulator heated up easily, it always affected the temperature reading of the digital thermometer.</p>
<p>To solve those problems, I came up with a second version of digital thermometer.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-404" title="digitalthermometer2-top" src="http://voltsandbytes.com/wp-content/uploads/2010/08/digitalthermometer2-top.jpg" alt="" width="588" height="248" /></p>
<p style="text-align: center;"><span id="more-398"></span></p>
<p style="text-align: center;"></p>
<p>This version of digital thermomter is basically the same as the previous one. However, this version of digital thermometer solves the problems encountered previously. There is also some improvements in the aesthetics aspect and also in the firmware.</p>
<p>I used a voltage regulator with a higher current rating. This is to avoid the regulator to heat up easily and to dissipate any heat as fast as possible. I also put the voltage regulator as far from the sensor as possible.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-400" title="digitalthermometer2-7805" src="http://voltsandbytes.com/wp-content/uploads/2010/08/digitalthermometer2-7805.jpg" alt="" width="588" height="394" /></p>
<p>I also used a smaller and better seven-segment display. This has resulted to a smaller but more beautiful board. It also resulted to easier PCB routing.</p>
<p style="text-align: center;"><img class="size-full wp-image-402 alignnone" title="digitalthermometer2-display" src="http://voltsandbytes.com/wp-content/uploads/2010/08/digitalthermometer2-display.jpg" alt="" width="588" height="394" /></p>
<p style="text-align: center;"></p>
<p style="text-align: left;">However, I kept LM35 as the sensor. I had no reason to change the sensor at all. Besides, this temperature sensor is probably the easiest to use.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-403" title="digitalthermometer2-lm35" src="http://voltsandbytes.com/wp-content/uploads/2010/08/digitalthermometer2-lm35.jpg" alt="" width="588" height="394" /></p>
<p>To keep the functionality simple and the same, I did not replace the microcontroller that I used in the first version. I kept ATtiny26 as the brain of the digital thermometer. It is easy to use and just enough to my application.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-401" title="digitalthermometer2-attiny26" src="http://voltsandbytes.com/wp-content/uploads/2010/08/digitalthermometer2-attiny26.jpg" alt="" width="588" height="394" /></p>
<p><strong>Build it&#8230;</strong></p>
<p>If you are interested to build this project, here are the source files for you: <a href="http://voltsandbytes.com/wp-content/uploads/2010/08/digitalthermometer.zip">digitalthermometer</a></p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/diy-digital-thermometer-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I/O Led Monitor</title>
		<link>http://voltsandbytes.com/io-led-monitor/</link>
		<comments>http://voltsandbytes.com/io-led-monitor/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 08:31:10 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[IO]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[Monitor]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=58</guid>
		<description><![CDATA[A light-emitting diode (LED) is a semiconductor diode that emits light when an electric current flows through it. It is a very useful device used in electronics. LEDs can be used for lighting, indicators, and even data communications. They are also very power efficient and they are used instead of traditional electric lamps because they can [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-64  aligncenter" title="LED" src="http://voltsandbytes.com/wp-content/uploads/2010/07/LED.jpg" alt="" width="600" height="402" /></p>
<p>A <a href="http://en.wikipedia.org/wiki/Light-emitting_diode">light-emitting diode</a> (LED) is a semiconductor <a href="http://en.wikipedia.org/wiki/Diode">diode</a> that emits light when an electric current flows through it. It is a very useful device used in electronics. LEDs can be used for lighting, indicators, and even data communications. They are also very power efficient and they are used instead of traditional electric lamps because they can be as bright as lamps while consuming less power than the lamps.<span id="more-58"></span></p>
<p><strong>Overview</strong></p>
<p>I/O LED monitor is a tool that uses eight light-emitting diodes. It can be used to monitor <a href="http://en.wikipedia.org/wiki/Microcontroller">microcontroller</a> output pins or input devices such as <a href="http://en.wikipedia.org/wiki/Switch">switches</a>. It can be used to detect a non-responsive output or even abnormalities in I/O lines. It can also be used in learning because I am going to use this in my future tutorials about microcontrollers.</p>
<p style="text-align: center;"><strong><img class="size-full wp-image-66  aligncenter" title="LED-side" src="http://voltsandbytes.com/wp-content/uploads/2010/07/LED-side.jpg" alt="" width="600" height="402" /></strong></p>
<p style="text-align: center;"><strong></strong></p>
<p><strong>Hardware</strong></p>
<p>The I/O Led Monitor comes in two configurations. One is common anode and the other is common cathode.</p>
<p style="text-align: center;"><img class="size-full wp-image-65  aligncenter" title="LED-bottom" src="http://voltsandbytes.com/wp-content/uploads/2010/07/LED-bottom.jpg" alt="" width="600" height="402" /></p>
<p>In the common anode configuration, all the anodes of the LEDs are connected together.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-77" title="Common anode" src="http://voltsandbytes.com/wp-content/uploads/2010/07/Common-anode.jpg" alt="" width="600" height="324" /></p>
<p style="text-align: center;"></p>
<p style="text-align: left;"> </p>
<p style="text-align: left;">In common cathode configuration, all the cathodes of the LEDs are connected together.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-78" title="Common cathode" src="http://voltsandbytes.com/wp-content/uploads/2010/07/Common-cathode.jpg" alt="" width="600" height="324" /></p>
<p style="text-align: left;">For both I/O LED monitor configurations, each LED is connected to a current-limiting <a href="http://en.wikipedia.org/wiki/Resistor">resistor</a>. The value for each resistor is 470 ohms. This value is chosen to limit the current through each LED within safe limits while keeping the brightness of each LED visible to the naked eye. I also chose this value so that the I/O LED monitor can work pretty well for both 5V and 3.3V I/O lines.</p>
<p style="text-align: left;">There are two conditions that must be met so that an LED would emit light visible to the naked eye. First, the voltage between the cathode and anode of an LED must be enough to forward bias it or to cause electric current to flow through it. This voltage is called forward voltage. For red LEDs, the forward voltage is around 1.6V to 1.7V. Remember that the voltage at the anode must be positive with respect to the cathode. This means that the voltage at the anode must be in higher potential than that of the cathode. Second, the electric current through the LED must be high enough so that the emitted light will be bright enough. Most LEDs are at maximum brightness at 20mA of electric current. However, 4mA is already enough.</p>
<p style="text-align: left;">The current through the LED is determined using the formula:</p>
<blockquote>
<p style="text-align: center;">I = (Vs &#8211; Vled) / R</p>
</blockquote>
<p style="text-align: left;">where</p>
<blockquote>
<p style="text-align: left;">I = current through the LED</p>
<p style="text-align: left;">Vs = supply voltage</p>
<p style="text-align: left;">Vled = forward voltage of LED</p>
<p style="text-align: left;">R = current-limiting resistance</p>
</blockquote>
<p style="text-align: left;">For example, the current through the red LED when the supply voltage is 5V and the current-limiting resistor has a resistance of 470 ohms is 7.23mA.</p>
<blockquote>
<p style="text-align: left;"><strong>Formula:</strong></p>
<p style="text-align: left;">I = (Vs &#8211; Vled) / R </p>
<p style="text-align: left;"><strong>Given:</strong></p>
<p style="text-align: left;">Vs = 5V</p>
<p style="text-align: left;">Vled = 1.6 (red LED)</p>
<p style="text-align: left;">R = 470 ohms</p>
<p style="text-align: left;"><strong>Solution:</strong></p>
<p style="text-align: left;">I = (5 &#8211; 1.6) / 470</p>
<p style="text-align: left;">I = 7.23 mA</p>
</blockquote>
<p style="text-align: center;"> </p>
<p style="text-align: center;"><img class="size-full wp-image-67  aligncenter" title="LED-top" src="http://voltsandbytes.com/wp-content/uploads/2010/07/LED-top.jpg" alt="" width="600" height="402" /></p>
<p> </p>
<p><strong><span style="text-decoration: underline;">Build it&#8230;</span></strong></p>
<p>If you are interested to build the I/O LED monitor, you may download the Eagle files <a href="http://voltsandbytes.com/wp-content/uploads/2010/07/IOLEDMonitor.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/io-led-monitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIY Power Supply</title>
		<link>http://voltsandbytes.com/diy-power-supply/</link>
		<comments>http://voltsandbytes.com/diy-power-supply/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 05:03:19 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[LM1117]]></category>
		<category><![CDATA[LM7805]]></category>
		<category><![CDATA[power supply]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=6</guid>
		<description><![CDATA[Every circut board requires a power supply to operate properly. Usually, the power supply provides+5Vdc or +3.3Vdc to the whole circut board. There are also instances in which the power supply is not integrated to the circuit board and power must be provided by an external or separate power supply. Overview This project is a DIY DC [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://voltsandbytes.com/wp-content/uploads/2010/07/power-schematic.jpg"></a><img class="size-full wp-image-13    aligncenter" title="powersupply" src="http://voltsandbytes.com/wp-content/uploads/2010/07/powersupply.jpg" alt="" width="600" height="402" /></p>
<p style="text-align: left;">Every circut board requires a power supply to operate properly. Usually, the power supply provides+5Vdc or +3.3Vdc to the whole circut board. There are also instances in which the power supply is not integrated to the circuit board and power must be provided by an external or separate power supply.<span id="more-6"></span></p>
<p style="text-align: left;"><strong>Overview</strong></p>
<p style="text-align: left;">This project is a DIY DC power supply. It can provide a regulated +5Vdc or +3.3Vdc to any circuit board that requires external power supply. It uses two <a href="http://en.wikipedia.org/wiki/Voltage_regulator">voltage regulators</a>: one for +5Vdc and the other for +3.3Vdc. It also features power-indicating LED (<a href="http://en.wikipedia.org/wiki/Light-emitting_diode">light-emitting diode</a>) and reverse-polarity protection <a href="http://en.wikipedia.org/wiki/Diode">diode</a>.</p>
<p style="text-align: left;"><strong>Hardware</strong></p>
<p style="text-align: center;"><a href="http://voltsandbytes.com/wp-content/uploads/2010/07/power-schematic.jpg"></a></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-39" title="powersupply-schematic" src="http://voltsandbytes.com/wp-content/uploads/2010/07/powersupply-schematic.jpg" alt="" width="600" height="383" /></p>
<p style="text-align: center;"></p>
<p style="text-align: left;">The circuit of this project is very basic. It includes a voltage source connector (JP1) which a regulated or unregulated power source can be connected. Mine is a 9-volt battery connector so that 9-volt batteries can be connected to my board.</p>
<p style="text-align: left;">When the voltage source or battery is connected properly or in correct polarity, current passes through <a href="http://www.diodes.com/products/catalog/detail.php?item-id=3254">1N4001</a> diode (D1). The purpose of the diode is to block any negative voltage that may damage the whole circuit board.</p>
<p style="text-align: center;"><img class="size-full wp-image-15  aligncenter" title="powersupply-lm7805" src="http://voltsandbytes.com/wp-content/uploads/2010/07/powersupply-lm7805.jpg" alt="" width="600" height="402" /></p>
<p style="text-align: center;"></p>
<p style="text-align: left;">The voltage that passed through the diode enters <a href="http://www.national.com/mpf/LM/LM78M05.html#Overview">7805</a> (IC1) which is a 5-volt regulator. This IC provides a constant and regulated +5Vdc output as long as its input voltage is within +7Vdc and +35Vdc.</p>
<p style="text-align: center;"><img class="size-full wp-image-14  aligncenter" title="powersupply-lm1117" src="http://voltsandbytes.com/wp-content/uploads/2010/07/powersupply-lm1117.jpg" alt="" width="600" height="402" /></p>
<p style="text-align: center;"></p>
<p style="text-align: left;">Another voltage regulator is <a href="http://www.national.com/mpf/LM/LM1117.html#Overview">LM1117-3.3</a> (IC2) which is a +3.3-volt regulator. Its input is +5Vdc from IC1 and its output is a regulated +3.3Vdc.</p>
<p style="text-align: left;"><a href="http://en.wikipedia.org/wiki/Decoupling_capacitor">Decoupling capacitors</a> (C1, C2, C3) are also found in the circuit. These capacitors filter the inputs and outputs of each voltage regulator and they enhance the regulating capabilities of each voltage regulator.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-16" title="powersupply-top" src="http://voltsandbytes.com/wp-content/uploads/2010/07/powersupply-top.jpg" alt="" width="600" height="402" /></p>
<p style="text-align: left;">The dual-row male header connectors (JP2 and JP3)  included in the circuit can be used to provide power to different circuit boards that require +3.3Vdc or +5Vdc. The light-emitting diode (LED1) serves as a power indicator.</p>
<p style="text-align: left;"><strong><span style="text-decoration: underline;">Build it&#8230;</span></strong></p>
<p style="text-align: left;">If you want to build it, you may download the Eagle schematic and PCB files <a href="http://voltsandbytes.com/wp-content/uploads/2010/07/powersupply-eaglefiles.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/diy-power-supply/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple 8×8 LED Matrix Board using AVR</title>
		<link>http://voltsandbytes.com/simple-8x8-led-matrix-board-using-avr/</link>
		<comments>http://voltsandbytes.com/simple-8x8-led-matrix-board-using-avr/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 06:28:47 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[8x8]]></category>
		<category><![CDATA[8x8 LED Matrix]]></category>
		<category><![CDATA[8x8 Matrix]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[ATtiny]]></category>
		<category><![CDATA[ATtiny2313]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[Matrix]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=379</guid>
		<description><![CDATA[I am featuring here a simple project that uses an 8×8 LED matrix and an AVR microcontroller. It is fun to have something like this. Using this, you can make flashing texts, scrolling texts, or any sort of animations that involves texts or graphics. Features The microcontroller used in this project is ATtiny2313. This microcontroller is from the AVR [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">I am featuring here a simple project that uses an 8×8 LED matrix and an AVR microcontroller. It is fun to have something like this. Using this, you can make flashing texts, scrolling texts, or any sort of animations that involves texts or graphics.</p>
<p style="text-align: center;"><img class="size-full wp-image-384  aligncenter" title="matrix" src="http://voltsandbytes.com/wp-content/uploads/2010/08/matrix.jpg" alt="" width="588" height="458" /></p>
<h4><span id="more-379"></span></h4>
<h4>Features</h4>
<p>The microcontroller used in this project is <a href="http://www.atmel.com/dyn/Products/Product_card.asp?part_id=3229">ATtiny2313</a>. This microcontroller is from the <a href="http://www.atmel.com/AVR">AVR family</a> of microcontrollers of <a href="http://www.atmel.com/">Atmel</a>. It has 2KB of flash memory for program storage, 128 bytes of RAM, and 128 bytes of EEPROM. It also has enough I/O ports for this project, USART for serial communication, and it has up to 8MHz of internal oscillator.</p>
<p>The TX and RX pins of the microcontroller are brought out to male headers for future use. The pins can be used to communicate with PC or other devices using UART. Therefore, this project can be customized so that its animations would be programmable using a customized PC software.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-387" title="attiny2313" src="http://voltsandbytes.com/wp-content/uploads/2010/08/attiny2313.jpg" alt="" width="588" height="473" /></p>
<p style="text-align: center;"></p>
<p>The project is powered by four AA batteries. The battery holder can be mounted on the copper side of the PCB which makes the project more compact.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-380" title="battery-holder" src="http://voltsandbytes.com/wp-content/uploads/2010/08/battery-holder.jpg" alt="" width="588" height="408" /> </p>
<p>The 8×8 matrix can be made detachable. Female header connectors can be used as the LED matrix socket. This makes the LED matrix easily replaceable and reusable.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-381" title="detachable-matrix" src="http://voltsandbytes.com/wp-content/uploads/2010/08/detachable-matrix.jpg" alt="" width="588" height="406" /></p>
<p style="text-align: center;"></p>
<h4>Buid it…</h4>
<p>If you are interested in building the project, you can download the Eagle schematic and PCB files <a href="http://voltsandbytes.com/wp-content/uploads/2010/08/PCB-and-SCH.zip">here</a>.</p>
<p>While building it, make sure that you solder a jumper wire beneath the microcontroller as shown below:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-383" title="jumper" src="http://voltsandbytes.com/wp-content/uploads/2010/08/jumper.jpg" alt="" width="588" height="454" /></p>
<h4>Sample…</h4>
<p>Here is a demo of the project.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/smmIMsGNfwo" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/smmIMsGNfwo"></embed></object></p>
<p>The source code of the demo is compiled using WinAVR and AVR Studio and it can be downloaded <a href="http://voltsandbytes.com/wp-content/uploads/2010/08/Sample-code.zip">here</a>.</p>
<h3>SOURCE FILES</h3>
<p><a href="http://voltsandbytes.com/wp-content/uploads/2010/08/PCB-and-SCH.zip">PCB and SCH</a></p>
<p><a href="http://voltsandbytes.com/wp-content/uploads/2010/08/Sample-code.zip">Sample code</a></p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/simple-8x8-led-matrix-board-using-avr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIY Digital Thermometer</title>
		<link>http://voltsandbytes.com/diy-digital-thermometer/</link>
		<comments>http://voltsandbytes.com/diy-digital-thermometer/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 06:04:20 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[ADC]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[ATtiny]]></category>
		<category><![CDATA[ATtiny26]]></category>
		<category><![CDATA[ATTiny26L]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[digital thermometer]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[LM35]]></category>
		<category><![CDATA[Sensor]]></category>
		<category><![CDATA[seven segment display]]></category>
		<category><![CDATA[temperature]]></category>
		<category><![CDATA[thermometer]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=368</guid>
		<description><![CDATA[This project is a digital thermometer that uses a microcontroller with analog-to-digital capability, an analog temperature sensor, and some seven-segment displays. The circuit is pretty simple and it can be powered by a 9-volt battery which makes it very portable. Please continue to read as I go a bit deeper to the details of what builds this easy project. The Microcontroller This [...]]]></description>
			<content:encoded><![CDATA[<p>This project is a digital thermometer that uses a microcontroller with analog-to-digital capability, an analog temperature sensor, and some seven-segment displays. The circuit is pretty simple and it can be powered by a 9-volt battery which makes it very portable.</p>
<p>Please continue to read as I go a bit deeper to the details of what builds this easy project.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-374" title="prototype" src="http://voltsandbytes.com/wp-content/uploads/2010/08/prototype.jpg" alt="" width="588" height="413" /></p>
<p><span id="more-368"></span></p>
<p style="text-align: center;"></p>
<h4>The Microcontroller</h4>
<p>This project features <a href="http://www.atmel.com/dyn/Products/Product_card.asp?part_id=2967">ATtiny26L</a> microcontroller. This microcontroller is from the AVR family of microcontrollers  manufactured by <a href="http://www.atmel.com/">Atmel</a>. It has 2Kbytes of flash memory and 128 bytes of SRAM which is enough for this project. It also has several 10-bit ADC channels, more than enough for the analog temperature sensor, and it has enough digital I/O pins for the seven-segment displays.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-369" title="attiny26" src="http://voltsandbytes.com/wp-content/uploads/2010/08/attiny26.jpg" alt="" width="588" height="329" /></p>
<p style="text-align: center;">  </p>
<h4>The Temperature Display</h4>
<p>To display the temperature, I used four common anode seven-segment displays. The seven-segment displays are driven by PNP transistors and a special technique called “multiplexing” is used to effectively control the displays using only a few digital I/O pins.</p>
<p>Notice how I mounted the fourth seven-segment display by reversing it  to display the <strong>°C</strong> sign.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-375" title="runtime" src="http://voltsandbytes.com/wp-content/uploads/2010/08/runtime.jpg" alt="" width="588" height="248" /></p>
<p style="text-align: center;">  </p>
<h4>The Sensor</h4>
<p>The sensor used in this project is <a href="http://www.national.com/mpf/LM/LM35.html">LM35</a>. LM35 is an analog temperature sensor and it has a sensitivity of + 10.0 mV/°C. It is accurate enough and it is suitable for different applications. It is rated for full -55° to +150°C range.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-373" title="LM35" src="http://voltsandbytes.com/wp-content/uploads/2010/08/LM35.jpg" alt="" width="588" height="413" /></p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/diy-digital-thermometer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>8-pin AVR based Mood Lamp</title>
		<link>http://voltsandbytes.com/8-pin-avr-based-mood-lamp/</link>
		<comments>http://voltsandbytes.com/8-pin-avr-based-mood-lamp/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 15:04:59 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[ATtiny]]></category>
		<category><![CDATA[ATTiny45]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[Mood Lamp]]></category>
		<category><![CDATA[PWM]]></category>
		<category><![CDATA[RGB]]></category>
		<category><![CDATA[RGB LED]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=212</guid>
		<description><![CDATA[I got a sample of a RGB LED (Red Green Blue Light Emitting Diode). So, I decided to make something fun out of it. Using an 8-pin AVR microcontroller, ATtiny45, I made a simple prototype to control the RGB LED using PWM or Pulse Width Modulation. Then, I put the prototype inside a translucent candle [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-219" title="mood-lamp" src="http://voltsandbytes.com/wp-content/uploads/2010/07/mood-lamp.png" alt="" width="588" height="248" /></p>
<p>I got a sample of a RGB LED (Red Green Blue Light Emitting Diode). So, I decided to make something fun out of it. Using an 8-pin AVR microcontroller, ATtiny45, I made a simple prototype to control the RGB LED using PWM or Pulse Width Modulation.<span id="more-212"></span></p>
<p style="text-align: center;"><img class="size-full wp-image-217 alignnone" title="RGB" src="http://voltsandbytes.com/wp-content/uploads/2010/07/RGB.jpg" alt="" width="519" height="389" /></p>
<p>Then, I put the prototype inside a translucent candle vase. The vase diffused the light from the RGB very nicely and below is the video of the result.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/AVme_rwakCg" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/AVme_rwakCg"></embed></object></p>
<p style="text-align: center;"></p>
<p style="text-align: left;">I soldered a potentiometer to ATtiny45 to provide an input to its on-chip ADC or analog-to-digital converter. The rate of color transitions of the RGB LED can, then, be controlled by adjusting the potentiometer.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-214" title="mood-potentiometer" src="http://voltsandbytes.com/wp-content/uploads/2010/07/mood-potentiometer.jpg" alt="" width="519" height="389" /></p>
<p>The following are the pictures of the prototype. No printed circuit boards were used to simplify the project. The project is powered by two AA batteries.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-215" title="moodprototype1" src="http://voltsandbytes.com/wp-content/uploads/2010/07/moodprototype1.jpg" alt="" width="519" height="389" /></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-216" title="prototype2" src="http://voltsandbytes.com/wp-content/uploads/2010/07/prototype2.jpg" alt="" width="519" height="389" /></p>
<p style="text-align: left;">Below is the schematic of the prototype.</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-218" title="sch" src="http://voltsandbytes.com/wp-content/uploads/2010/07/sch-600x341.jpg" alt="" width="600" height="341" /></p>
<p style="text-align: center;"></p>
<p>The following is the source code for the project. The compiler that I used is WinAVR.</p>
<blockquote><p>#include &lt;avr/io.h&gt;<br />
#define F_CPU 1000000UL<br />
#include &lt;util/delay.h&gt;</p>
<p>int main(void)<br />
{ unsigned char a=0,b=0,c=0,aa=0,bb=0,cc=0,temp;<br />
 DDRB=0xFF;<br />
 PORTB=0xFF;</p>
<p>//initialize ADC<br />
 ADMUX=0b00100011;<br />
 ADCSRA=0b10000100;</p>
<p>//Set OC0A on Compare Match, clear OC0A at BOTTOM<br />
 TCCR0A|=(1&lt;&lt;COM0A1); <br />
 TCCR0A|=(1&lt;&lt;COM0A0); <br />
 //Set OC0B on Compare Match, clear OC0B at BOTTOM<br />
 TCCR0A|=(1&lt;&lt;COM0B1); <br />
 TCCR0A|=(1&lt;&lt;COM0B0);<br />
 //Fast PWM, TOP=0xFF, Update of OCRx at BOTTOM<br />
 TCCR0A|=(1&lt;&lt;WGM01);     <br />
 TCCR0A|=(1&lt;&lt;WGM00);<br />
 //clkI/O/(No prescaling)<br />
 TCCR0B&amp;=~(1&lt;&lt;WGM02); <br />
 TCCR0B&amp;=~(1&lt;&lt;CS02);  <br />
 TCCR0B&amp;=~(1&lt;&lt;CS01);<br />
 TCCR0B|=(1&lt;&lt;CS00);</p>
<p>OCR0A=0&#215;00;<br />
 OCR0B=0&#215;00;</p>
<p>//PWM1B: Pulse Width Modulator B Enable<br />
 GTCCR|=(1&lt;&lt;PWM1B);<br />
 //OC1x Set on compare match. Cleared when TCNT1= $00.<br />
 GTCCR&amp;=~(1&lt;&lt;COM1B1);<br />
 GTCCR|=(1&lt;&lt;COM1B0);<br />
 //clock select bits<br />
 TCCR1&amp;=~(1&lt;&lt;CS13);<br />
 TCCR1|=(1&lt;&lt;CS12);<br />
 TCCR1&amp;=~(1&lt;&lt;CS11);<br />
 TCCR1|=(1&lt;&lt;CS10);</p>
<p>//OCR1B=0xFF;<br />
 //OCR1C=0xFF;</p>
<p>while(1)<br />
 { ADCSRA |= (1&lt;&lt;ADSC);<br />
  while((ADCSRA&amp;0&#215;10)==0&#215;00);<br />
  temp=ADCH;</p>
<p>OCR0A=c;<br />
  OCR0B=b;<br />
  OCR1B=~a;</p>
<p>while(temp&gt;0)<br />
  { temp&#8211;;<br />
   _delay_ms(1);<br />
  }</p>
<p>if(aa==0)<br />
  { a=a+1;<br />
   if(a==0xFF)<br />
   aa=1;<br />
  }</p>
<p>  if(aa==1)<br />
  { a=a-1;<br />
   if(a==0)<br />
   aa=0;<br />
  }</p>
<p>if(bb==0)<br />
  { b=b+3;<br />
   if(b==0xFF)<br />
    bb=1;<br />
  }</p>
<p>  if(bb==1)<br />
  { b=b-3;<br />
   if(b==0)<br />
    bb=0;<br />
  }</p>
<p>if(cc==0)<br />
  { c=c+5;<br />
   if(c==0xFF)<br />
    cc=1;<br />
  }</p>
<p>  if(cc==1)<br />
  { c=c-5;<br />
   if(c==0)<br />
    cc=0;<br />
  }<br />
 }<br />
}</p></blockquote>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/8-pin-avr-based-mood-lamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>8051 Tutorial 6: 8051 Interrupts Programming in C</title>
		<link>http://voltsandbytes.com/8051-tutorial-6-8051-interrupts-programming-in-c/</link>
		<comments>http://voltsandbytes.com/8051-tutorial-6-8051-interrupts-programming-in-c/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 04:35:22 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[8051 Microcontroller]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[8051]]></category>
		<category><![CDATA[AT89C2051]]></category>
		<category><![CDATA[Interrupt]]></category>
		<category><![CDATA[Interrupts]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=360</guid>
		<description><![CDATA[What is an interrupt? An interrupt is an asynchronous signal that needs attention. An interrupt stops the CPU of a microcontroller, leaving the tasks that it is currently doing, to give attention to the interrupt signal. Once the attention has been given to the interrupt signal, the CPU goes back to its unaccomplished task before the interrupt [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><strong>What is an interrupt?</strong></p>
<p>An interrupt is an asynchronous signal that needs attention. An interrupt stops the CPU of a microcontroller, leaving the tasks that it is currently doing, to give attention to the interrupt signal. Once the attention has been given to the interrupt signal, the CPU goes back to its unaccomplished task before the interrupt has occured and continues the task.</p>
<p><strong>The Interrupts of AT89C2051</strong></p>
<p>The interrupts of AT89C2051 is compatible with the interrupts of the original 8051 microcontroller. It has 6 interrupts sources ( 5 interrupts + RESET). The interrupt sources of AT89C2051 are the following:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="19" valign="top"> </td>
<td width="138" valign="top"><strong>Interrupt </strong></td>
<td width="90" valign="top"><strong>Source</strong></td>
<td width="132" valign="top"><strong>Priority Number</strong></td>
</tr>
<tr>
<td width="19" valign="top">1</td>
<td width="138" valign="top">RESET</td>
<td width="90" valign="top">RST</td>
<td width="132" valign="top">N/A</td>
</tr>
<tr>
<td width="19" valign="top">2</td>
<td width="138" valign="top">External Interrupt 0</td>
<td width="90" valign="top">IE0</td>
<td width="132" valign="top">0</td>
</tr>
<tr>
<td width="19" valign="top">3</td>
<td width="138" valign="top">Timer 0 Interrupt</td>
<td width="90" valign="top">TF0</td>
<td width="132" valign="top">1</td>
</tr>
<tr>
<td width="19" valign="top">4</td>
<td width="138" valign="top">External Interrupt 1</td>
<td width="90" valign="top">IE1</td>
<td width="132" valign="top">2</td>
</tr>
<tr>
<td width="19" valign="top">5</td>
<td width="138" valign="top">Timer 1 Interrupt</td>
<td width="90" valign="top">TF1</td>
<td width="132" valign="top">3</td>
</tr>
<tr>
<td width="19" valign="top">6</td>
<td width="138" valign="top">UART Interrupt</td>
<td width="90" valign="top">RI or TI</td>
<td width="132" valign="top">4</td>
</tr>
</tbody>
</table>
<p><em>Please note that in this tutorial, we will not consider the interrupt from RESET.</em></p>
<p>The table above shows the interrupt sources of AT89C2051 and their respective interrupt priority number. Knowing the priority number is important specially if two different interrupt sources occur at the same time.<span id="more-360"></span></p>
<p style="text-align: center;"></p>
<p><strong>Interrupt Enable Register</strong></p>
<p>The <strong>Interrupt Enable</strong> (<strong>IE</strong>) register is responsible in enabling and disabling the different interrupt sources of 8051.</p>
<p style="text-align: center;"><img class="size-full wp-image-361  aligncenter" title="IEregister" src="http://voltsandbytes.com/wp-content/uploads/2010/08/IEregister.jpg" alt="" width="588" height="90" /></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="43" valign="top"><strong>EA</strong></td>
<td width="595" valign="top">Disables all interrupts. If EA = 0, no interrupt is acknowledged. If EA = 1, each interrupt source is individually enabled or disabled by setting or clearing its enable bit.</td>
</tr>
<tr>
<td width="43" valign="top"><strong>__</strong></td>
<td width="595" valign="top">Not implemented</td>
</tr>
<tr>
<td width="43" valign="top"><strong>__</strong></td>
<td width="595" valign="top">Not implemented in AT89C2051 but it is implemented as ET2 in 8052 compatible microcontrollers such as AT89S52 (Enables or disables the Timer 2 overflow or capture interrupt)</td>
</tr>
<tr>
<td width="43" valign="top"><strong>ES</strong></td>
<td width="595" valign="top">Enables or disables the serial port interrupt.</td>
</tr>
<tr>
<td width="43" valign="top"><strong>ET1</strong></td>
<td width="595" valign="top">Enables or disables the Timer 1 overflow interrupt.</td>
</tr>
<tr>
<td width="43" valign="top"><strong>EX1</strong></td>
<td width="595" valign="top">Enables or disables External Interrupt 1.</td>
</tr>
<tr>
<td width="43" valign="top"><strong>ET0</strong></td>
<td width="595" valign="top">Enables or disables the Timer 0 overflow interrupt.</td>
</tr>
<tr>
<td width="43" valign="top"><strong>EX0</strong></td>
<td width="595" valign="top">Enables or disables External Interrupt 0.</td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><strong></strong> </p>
<p><strong>How To Enable an Interrupt</strong></p>
<p>1. Initialize the sources of interrupts such as Timers, External Interrupts, or UART.</p>
<p>2. Set the bits of the<strong> IE</strong> register that corresponds to the interrupt sources that you want to be enabled.</p>
<p>Example: If you want to enable the interrupt of the serial port or UART set<strong> ES</strong> to 1 or <strong>ES</strong>=1.</p>
<p>3. Enable the global interrupt by setting the <strong>EA</strong> bit of the <strong>IE</strong> register (EA=1).</p>
<p style="text-align: center;"><strong></strong> </p>
<p><strong>How to Write an interrupt service routine or ISR</strong></p>
<p>The <strong>interrupt service routine</strong> or<strong> ISR</strong> is the routine that an MCU is servicing every time an interrupt occurs. It can be treated as an ordinary subroutine in a C program.</p>
<p>The format of the <strong>ISR</strong> is:</p>
<blockquote><p>void <strong><em>your_ISR_name</em></strong>(void) interrupt <strong><em>interrupt_priority_number</em></strong><br />
{<br />
  <strong>//your routine here</strong><br />
}</p></blockquote>
<p>The <em>your_ISR_name</em> is user defined. It can be any name.</p>
<p>The <em>interrupt_priority_number</em> is fixed depending on the source of the interrupt. Refer to the table of the interrupt sources above for reference.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/8051-tutorial-6-8051-interrupts-programming-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>8051 Tutorial 5: 8051 UART Programming in C</title>
		<link>http://voltsandbytes.com/8051-tutorial-5-8051-uart-programming-in-c/</link>
		<comments>http://voltsandbytes.com/8051-tutorial-5-8051-uart-programming-in-c/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 02:49:08 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[8051 Microcontroller]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[8051]]></category>
		<category><![CDATA[AT89C2051]]></category>
		<category><![CDATA[RS-232]]></category>
		<category><![CDATA[RS232]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[UART]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=344</guid>
		<description><![CDATA[What is UART? UART stands for Universal Asynchronous Receiver/Transmitter. As its name implies, it is universal. It can be used to establish a communication between a microcontroller and another device – microcontroller, USB controller, Bluetooth modules, GSM modules, GPS modules, personal computers, etc. I am not going to discuss the UART protocol here. If UART [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is UART?</strong></p>
<p><strong>UART</strong> stands for <strong>Universal Asynchronous Receiver/Transmitter</strong>. As its name implies, it is universal. It can be used to establish a communication between a microcontroller and another device – microcontroller, USB controller, Bluetooth modules, GSM modules, GPS modules, personal computers, etc.</p>
<p>I am not going to discuss the UART protocol here. If UART is still unknown to you, you may read <a href="http://en.wikipedia.org/wiki/UART">this article from wikipedia</a> first.</p>
<p><strong>What is RS-232?</strong></p>
<p><strong>RS-232</strong> is a standard for serial transmission of data between a <strong>DTE</strong> (Data Terminal Equipment) and a <strong>DCE</strong> (Data Circuit-terminating Equipment). It is commonly found in desktop computers where it is commonly referred as <strong>COM port</strong>. You can read <a href="http://en.wikipedia.org/wiki/RS-232">this wikipedia article</a> for more info about the RS-232 standard.</p>
<p><strong>AT89C2051 UART</strong></p>
<p style="text-align: left;">The AT89C2051 has one UART port. Its <strong>TXD</strong> (<em>Transmit</em>) pin is the same as its <strong>P3.1</strong> pin. Its <strong>RXD</strong> (<em>Receive</em>) pin is the same as its <strong>P3.0 </strong>pin.<span id="more-344"></span></p>
<p style="text-align: center;"></p>
<p><strong>AT89C2051 RS-232 Interface</strong></p>
<p>The UART port of a microcontroller can be used to interface to a RS-232 port of a personal computer. However, the voltage levels of UART must be converted to voltage levels compatible to RS-232.</p>
<p>To convert UART voltage levels to RS-232 voltage levels, you may use the following circuits:</p>
<p><strong>1. Using a MAX232 or similar IC</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-349" title="ttl-rs232-max232" src="http://voltsandbytes.com/wp-content/uploads/2010/08/ttl-rs232-max232.jpg" alt="" width="588" height="392" /></p>
<p>This is the most preferred circuit to convert UART using the TTL voltage levels to RS232 voltage levels. The 5V levels are converted by MAX232 to -9V to -12V and vice versa. The 0V levels are converted by MAX232 to +9V to +12V and vice versa.</p>
<p>The female DB-9 connector is used to connect with the RS-232 port of a personal computer.</p>
<p style="text-align: center;"></p>
<p> </p>
<p><strong>2. Using Transistors</strong></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-350" title="ttl-rs232-transistor" src="http://voltsandbytes.com/wp-content/uploads/2010/08/ttl-rs232-transistor.jpg" alt="" width="588" height="405" /></p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/8051-tutorial-5-8051-uart-programming-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USB Development Board</title>
		<link>http://voltsandbytes.com/usb-development-board/</link>
		<comments>http://voltsandbytes.com/usb-development-board/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 11:57:41 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Development Board]]></category>
		<category><![CDATA[Development Tool]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[PIC USB]]></category>
		<category><![CDATA[PIC18F]]></category>
		<category><![CDATA[PIC18F4550]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=176</guid>
		<description><![CDATA[USB has established itself as the new standard for connectivity. That is why USB connectivity has become the “holy grail” of most embedded applications. Well, let me get straight to the point. If you want to start developing projects with USB interface, you want to have  the  proper development tools. To have the tools that you need, you either [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-194" title="USBPIC-front" src="http://voltsandbytes.com/wp-content/uploads/2009/11/USBPIC-front.jpg" alt="" width="588" height="248" /></p>
<p>USB has established itself as the new standard for connectivity. That is why USB connectivity has become the “holy grail” of most embedded applications.</p>
<p>Well, let me get straight to the point. If you want to start developing projects with USB interface, you want to have  the  proper development tools. To have the tools that you need, you either have to buy or to do-it-yourself.</p>
<p>If you want to build a USB development board yourself, here is one for you.<span id="more-176"></span></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-181" title="USBPIC-side1" src="http://voltsandbytes.com/wp-content/uploads/2010/07/USBPIC-side1.jpg" alt="" width="588" height="248" /></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-182" title="USBPIC-side2" src="http://voltsandbytes.com/wp-content/uploads/2010/07/USBPIC-side2.jpg" alt="" width="588" height="307" /></p>
<p style="text-align: center;"></p>
<p> This development board features Microchip’s PIC18F4550. This development board is a simplified version of <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en021940">Microchip’s PICDEM Full Speed USB</a>. It has one trimmer for ADC, LEDs, push buttons, and USB connector. Most of the pins of PIC18F4550 are brought out to header connectors. It is powered by USB port. Lastly, it is compatible with <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2680&amp;dDocName=en537044">Microchip’s MCHPFSUSB USB Framework</a>.</p>
<p>Since this development board is a simplified PICDEM FS USB board, hex files can be loaded to PIC18F4550 using the USB bootloader provided by Microchip. Microchip also provided a software tool to download hex files to PIC18F4550.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-177" title="bot" src="http://voltsandbytes.com/wp-content/uploads/2010/07/bot.jpg" alt="" width="564" height="486" /></p>
<p style="text-align: center;"> <img class="aligncenter size-full wp-image-178" title="bot2" src="http://voltsandbytes.com/wp-content/uploads/2010/07/bot2.jpg" alt="" width="569" height="494" /></p>
<p style="text-align: center;"> </p>
<p style="text-align: left;">Here is a video of my development board in action.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/RYEouDEhILg" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/RYEouDEhILg"> </embed></object></p>
<p style="text-align: center;"></p>
<p>Aside from the software tool, Microchip also provides a lot of application notes, sample codes, and libraries to help developers in developing USB embedded applications.</p>
<p>I tried writing a simple code using CDC and here is the video.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/lAA58gHTYWc" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/lAA58gHTYWc"></embed></object></p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong>Download</strong></span></p>
<p style="text-align: left;">The schematic of the board can be downloaded <a href="http://voltsandbytes.com/wp-content/uploads/2010/07/pic18f4550-board.zip">here</a>. You will need Eagle CAD to open the schematic file.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/usb-development-board/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handy FPGA Laboratory</title>
		<link>http://voltsandbytes.com/handy-fpga-laboratory/</link>
		<comments>http://voltsandbytes.com/handy-fpga-laboratory/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 13:12:15 +0000</pubDate>
		<dc:creator>jer</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development Board]]></category>
		<category><![CDATA[Development Tool]]></category>
		<category><![CDATA[FPGA]]></category>
		<category><![CDATA[Spartan 3-E]]></category>
		<category><![CDATA[Spartan3E]]></category>
		<category><![CDATA[Xilinx]]></category>

		<guid isPermaLink="false">http://voltsandbytes.com/?p=167</guid>
		<description><![CDATA[Want to learn real digital hardware design? You might want to consider Field Programmable Grid Arrays or FPGAs. There are a lot of FPGA learning kits available today. Some are specially designed to target developments of commercial projects which are, of course, very expensive. Some are a little bit price friendly specially for students and FPGA [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Want to learn real digital hardware design? You might want to consider <a href="http://en.wikipedia.org/wiki/Field-programmable_gate_array">Field Programmable Grid Arrays or FPGAs</a>. There are a lot of FPGA learning kits available today. Some are specially designed to target developments of commercial projects which are, of course, very expensive. Some are a little bit price friendly specially for students and FPGA newbies (like me).</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-170" title="basys-top" src="http://voltsandbytes.com/wp-content/uploads/2010/07/basys-top.jpg" alt="" width="588" height="378" /></p>
<p style="text-align: left;"><span id="more-167"></span></p>
<p style="text-align: center;"></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-168" title="basys-bottom" src="http://voltsandbytes.com/wp-content/uploads/2010/07/basys-bottom.jpg" alt="" width="588" height="368" /></p>
<p style="text-align: center;"></p>
<p style="text-align: left;">I got one FPGA development board designed by <a href="http://www.digilentinc.com/">Digilent</a> which is the <a href="http://www.digilentinc.com/Products/Detail.cfm?Prod=BASYS&amp;Nav1=Products&amp;Nav2=Programmable">Basys FPGA board</a> (there is already a newer version – <a href="http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,790&amp;Prod=BASYS2">Basys2</a>). The regular price is USD79 and the academic price is USD59. I got mine from <a href="http://www.ebay.com/">ebay</a> for USD49 – of course, it is already used.</p>
<p>So, what does this FPGA board feature?</p>
<ul>
<li>The on-board FPGA is from the Spartan 3-E FPGA family of <a href="http://www.xilinx.com/">Xilinx</a>.</li>
<li>It has on board I/O devices – 7-segment displays, LEDs, slide, switches, and push buttons.</li>
<li>It has one VGA port and one PS/2 port.</li>
<li>It has external I/O  connectors.</li>
<li>It can be powered by USB or wall DC adaptor.</li>
<li>It has on-board oscillator – 25, 50, and 100MHz.</li>
<li>It has on-board flash configuration ROM.</li>
<li>It can be configured using the on-board USB board!</li>
</ul>
<p>Pretty complete, isn’t it?</p>
<p>Indeed, it is a handy FPGA laboratory…</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-169" title="basys-box" src="http://voltsandbytes.com/wp-content/uploads/2010/07/basys-box.jpg" alt="" width="588" height="449" /></p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://voltsandbytes.com/handy-fpga-laboratory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
