<?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>vsdev &#187; ARM</title>
	<atom:link href="http://www.frozeneskimo.com/electronics/category/arm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.frozeneskimo.com/electronics</link>
	<description>electronics and embedded development</description>
	<lastBuildDate>Mon, 28 Jun 2010 03:46:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Audio Echo Effect &#8220;Pedal&#8221;</title>
		<link>http://www.frozeneskimo.com/electronics/2010/03/28/audio-echo-effect-pedal/</link>
		<comments>http://www.frozeneskimo.com/electronics/2010/03/28/audio-echo-effect-pedal/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 11:11:54 +0000</pubDate>
		<dc:creator>vsergeev</dc:creator>
				<category><![CDATA[ARM]]></category>

		<guid isPermaLink="false">http://www.frozeneskimo.com/electronics/?p=169</guid>
		<description><![CDATA[I recently completed an echo/delay effect &#8220;pedal&#8221; project. Although I originally developed and tested it with an electret microphone and speakers, it can be easily adapted for other input/output such as an electric guitar and amp. I used an mbed to do the actual effect processing, and the code can also be easily adapted for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dev.frozeneskimo.com/embedded_projects/audio_echo_effect"><img src="http://dev.frozeneskimo.com/_media/embedded_projects/echo-effect-closeup2.jpg?w=350" alt="Audio Echo Effect System Breadboarded" /></a><br />
I recently completed an echo/delay effect &#8220;pedal&#8221; project. Although I originally developed and tested it with an electret microphone and speakers, it can be easily adapted for other input/output such as an electric guitar and amp. I used an <a href="http://www.mbed.org/">mbed</a> to do the actual effect processing, and the code can also be easily adapted for a different effect. See my dev wiki for more info (pictures, schematics, and code), including a video of it operating with an electric guitar: <a href="http://dev.frozeneskimo.com/embedded_projects/audio_echo_effect">http://dev.frozeneskimo.com/embedded_projects/audio_echo_effect</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frozeneskimo.com/electronics/2010/03/28/audio-echo-effect-pedal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JTAG Wiggler Schematic Fix</title>
		<link>http://www.frozeneskimo.com/electronics/2007/02/15/jtag-wiggler-schematic-fix/</link>
		<comments>http://www.frozeneskimo.com/electronics/2007/02/15/jtag-wiggler-schematic-fix/#comments</comments>
		<pubDate>Fri, 16 Feb 2007 00:17:29 +0000</pubDate>
		<dc:creator>vsergeev</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.frozeneskimo.com/electronics/2007/02/15/jtag-wiggler-schematic-fix/</guid>
		<description><![CDATA[Per has brought to my attention that the JTAG Wiggler schematic on the &#8220;JTAG Wigger Clone&#8221; page has an error. I jumbled up the P4/P3 connections on the parallel port when I was adapting the schematic in EAGLE (the schematic is based on this one http://jtag-arm9.sourceforge.net/circuit.txt). I have fixed this error in the JTAG Wiggler [...]]]></description>
			<content:encoded><![CDATA[<p>Per has brought to my attention that the JTAG Wiggler schematic on the &#8220;<a href="http://www.frozeneskimo.com/electronics/arm-tutorials/jtag-wiggler-clone/">JTAG Wigger Clone</a>&#8221; page has an error. I jumbled up the P4/P3 connections on the parallel port when I was adapting the schematic in EAGLE (the schematic is based on this one <a href="http://jtag-arm9.sourceforge.net/circuit.txt">http://jtag-arm9.sourceforge.net/circuit.txt</a>). I have fixed this error in the JTAG Wiggler schematic image, and I also posted the EAGLE schematic file.</p>
<p>Thanks to Per for bringing up the error.<br />
I apologize for this mistake and I&#8217;ll do my best to look out for them in the future. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.frozeneskimo.com/electronics/2007/02/15/jtag-wiggler-schematic-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updates in ARM Development&#8230;</title>
		<link>http://www.frozeneskimo.com/electronics/2006/03/11/updates-in-arm-development/</link>
		<comments>http://www.frozeneskimo.com/electronics/2006/03/11/updates-in-arm-development/#comments</comments>
		<pubDate>Sun, 12 Mar 2006 07:18:18 +0000</pubDate>
		<dc:creator>vsergeev</dc:creator>
				<category><![CDATA[ARM]]></category>

		<guid isPermaLink="false">http://www.frozeneskimo.com/electronics/?p=49</guid>
		<description><![CDATA[I&#8217;ve been pretty busy lately&#8230; I recently designed and built my Science Fair project board&#8211;I&#8217;m still working out all of the bugs in the hardware, but I&#8217;m getting there. The project is about embedded networking and encryption on an ARM microcontroller (I chose the Philips LPC2148). I&#8217;ll post full details on the project when I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been pretty busy lately&#8230; I recently designed and built my Science Fair project board&#8211;I&#8217;m still working out all of the bugs in the hardware, but I&#8217;m getting there. The project is about embedded networking and encryption on an ARM microcontroller (I chose the Philips LPC2148). I&#8217;ll post full details on the project when I&#8217;m done with it.</p>
<p>This was my first real PCB. It is almost completely all surface mount, with the exception of a few headers, serial port and stuff like that. The passive component&#8217;s size is 0805, which I thought would be a good start with smt. I discovered that smt is awesome. It is much more convenient than through-hole, and you don&#8217;t have to reach around and flip the board in all kinds of directions if you need to desolder something.</p>
<p>Since I had little time after developing the schematic in two weeks, I rush designed the board in about 3 days. In the end, not too bad. I chose the wrong component packages for a few things, but I made them fit when I soldered them down. That&#8217;s all cosmetics. As for true design mistakes, I shared the TXD0 and RXD0 UART pins of the microcontroller with chip select and interrupt pins on an ethernet controller which happens to hold them high (thus screwing up my uart channel), and I think I messed up the SO/SI &#8211; MISO/MOSI lines on the spi. Well, it&#8217;s all correctable with wire wrap wire.</p>
<p>Continue reading for more info and cool pictures.&nbsp;</p>
<p><span id="more-49"></span> </p>
<p>JTAG works great. UART is coming along. It works when the mcu is connected to an external little UART board, but not with the onboard chip and serial port. Soon it should all be fixed.</p>
<p>I got the prototype boards done by Advanced Circuits (http://www.4pcb.com). They shipped the next day, and I had the board about 3 days after I submitting the order. I ordered 3 prototype boards (no soldermask, no silkscreen), and it cost $83 shipped, with UPS 2nd Day. I guess I recommend them, but then again the only other place I&#8217;ve tried is SparkFun (now BatchPCB), which took considerably longer (but they cost less for better quality boards). They did a good job too. Advanced Circuits gave me this cool clock-date-temperature-snooze alarm-timer pen/pencil holder thing, the classic promotional post-it pad, and popcorn. Here&#8217;s a picture if you don&#8217;t believe me:</p>
<p>&nbsp;<a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/03/pcbsnice.jpg" title="Prototype PCBs done by Advanced Circuits and Stuff"><img src="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/03/pcbsnicethumb.jpg" alt="Prototype PCBs done by Advanced Circuits and Stuff" /></a></p>
<p>I soldered everything by hand. I first thought I would need a skillet/hot plate and do some reflow soldering with solder paste, but I changed my mind and I returned the skillet. It actually isn&#8217;t that difficult to do by hand at all. I don&#8217;t know how I managed to solder the LQFP64 pins for the first time, but things worked out and now I consider SMD is easy.</p>
<p>Here is a picture of the legs of LPC2148. Most of the pins should be down, if not I corrected it at a later time (after the picture was taken).</p>
<p><a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/03/lpc2148pins.jpg" title="Close-Up on Soldered Pins of the Philips LPC2148 ARM Microcontroller"><img src="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/03/lpc2148pinsthumb.jpg" alt="Close-Up on Soldered Pins of the Philips LPC2148 ARM Microcontroller" /></a></p>
<p>Finally, I decided to take a quick picture of my electronics setup so far:</p>
<p><a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/03/elecworkspace.jpg" title="Picture of my Electronics Workspace Setup"><img src="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/03/elecworkspacethumb.jpg" alt="Picture of my Electronics Workspace Setup" /></a></p>
<p>Soon I&#8217;ll be getting an oscilloscope. Yeah, I&#8217;ve been doing all of this stiff the whole time without one. I guess I really don&#8217;t need one, but it might help when time is short and I have a big problem. Other than that, I think my setup is pretty complete. Not shown in the picture are my two big green component boxes that store most of my electronics components.&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frozeneskimo.com/electronics/2006/03/11/updates-in-arm-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More JuiceBox Dev</title>
		<link>http://www.frozeneskimo.com/electronics/2006/01/19/more-juicebox-dev/</link>
		<comments>http://www.frozeneskimo.com/electronics/2006/01/19/more-juicebox-dev/#comments</comments>
		<pubDate>Fri, 20 Jan 2006 06:49:45 +0000</pubDate>
		<dc:creator>vsergeev</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[JuiceBox]]></category>

		<guid isPermaLink="false">http://www.frozeneskimo.com/electronics/?p=41</guid>
		<description><![CDATA[Iâ€™m not entirely new to microcontrollers, although Iâ€™ve never been around the ARM ones. Most of my experience comes from the Atmel AVR line of microcontrollers, but I still consider myself a noob. The JuiceBox is a great dev board to learn on. Everything is production prewired, all you have to do is write the [...]]]></description>
			<content:encoded><![CDATA[<p>Iâ€™m not entirely new to microcontrollers, although Iâ€™ve never been around the ARM ones. Most of my experience comes from the Atmel AVR line of microcontrollers, but I still consider myself a noob.</p>
<p>The JuiceBox is a great dev board to learn on. Everything is production prewired, all you have to do is write the code to work itâ€¦</p>
<p>Today I have made some significant progress with the general understanding of this embedded hardware. Using just JTAG/OCDCommander, the datasheet, and the register definitions in s3c44b0x.h, I have gotten two different parts of the board to work. First, the buttons. This was pretty easy, since I have worked with the idea of setting the direction of a port and manipulating the port in the past.</p>
<p>The buttons of the juicebox are located on port G, so two primary registers are involved: PCONG and PDATG. The first one being the direction of the port (16-bit register, 2 bits per pin to be: input, output, special), and the second one being the data representing that port (8-bit). Instead of fumbling with the math and finding the bitwise masks required to push certain buttons, I simply read the PDATG back in OCDCommander with different buttons pressed at different times, and then defined these values in my own code to be easily accessible and easily compared to PDATG. I get this in the end:</p>
<p>#define JB_PLAY     0x9D<br />
#define JB_RETURN   0x9E<br />
#define JB_STAR     0x8F<br />
#define JB_FORWARD  0x9B<br />
#define JB_REVERSE  0&#215;97<br />
#define JB_ATREST   0x9F</p>
<p>To use the port G, I first set the direction of the whole port to input (pcong = 0Ã—0000;), and then the data on port G can be directly compared to these constants. It works great.</p>
<p>Since this worked out of the box so well, I decided to write my own UART interface. I am familiar with UART in general (used it a lot in the AVRs), so I have a basic understanding of how it works. The init() and putc() of my UART interface also surprisingly worked out of the box, but the getc() still needs a bit of work (it half works). When Iâ€™m done, Iâ€™ll post the UART interface code.</p>
<p>JB Button Test Source Code (prints out in the LCD what button you have pressed), precompiled elf included as well:<br />
<a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/Software/JBButtons.zip" title="JuiceBox Button Test Source and Binary">http://www.frozeneskimo.com/electronics/wp-content/uploads/Software/JBButtons.zip</a><br />
Note: I take absolutely no responsibility for any damage this software may cause.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frozeneskimo.com/electronics/2006/01/19/more-juicebox-dev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JuiceBox Game of Life</title>
		<link>http://www.frozeneskimo.com/electronics/2006/01/16/juicebox-game-of-life/</link>
		<comments>http://www.frozeneskimo.com/electronics/2006/01/16/juicebox-game-of-life/#comments</comments>
		<pubDate>Tue, 17 Jan 2006 04:21:23 +0000</pubDate>
		<dc:creator>vsergeev</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[JuiceBox]]></category>

		<guid isPermaLink="false">http://www.frozeneskimo.com/electronics/?p=40</guid>
		<description><![CDATA[After writing the game itself for the first time on my computer, I proceeded to clean up some of the LCD Demo Code and then port the Game of Life to the JuiceBox. It uses the whole screen as the grid of cells, and each individual pixel as a cell. The initial grid is randomly [...]]]></description>
			<content:encoded><![CDATA[<p>After writing the game itself for the first time on my computer, I proceeded to clean up some of the LCD Demo Code and then port the Game of Life to the JuiceBox. It uses the whole screen as the grid of cells, and each individual pixel as a cell. The initial grid is randomly generated (although not really random at all, it uses the very psuedo-rand() included in the LCD demo code), and then the generations pass by forever, with 5 milliseconds rest in between. Each pixel changes color (any color but black) when it is replotted, just to make them look cool.</p>
<p>Since births and deaths simultaneously occur in the Game of Life, you canâ€™t modify a grid directly when applying the three rules of the game. Originally I kept a temporary copy grid that would be checked, while the original would be modified. But, due to memory limitations on the JuiceBox itself, I had to rewrite the grids to use a more complex â€œmarked for death/birthâ€ status in the cells. Anyway, it runs perfectly, and itâ€™s pretty cool to watch.</p>
<p>Here is a picture of a sample game, near the beginning:<br />
<a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/01/JBGameOfLifeEnd.jpg" title="JuiceBox Game of Life, Towards the End"><img src="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/01/JBGameOfLifeEndThumb.jpg" alt="JuiceBox Game of Life, Towards the End" /></a></p>
<p>Here is it towards the end, when it is rather stable:<br />
<a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/01/JBGameOfLifeStart.jpg" title="JuiceBox Game of Life, Towards the End Thumb"><img src="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/01/JBGameOfLifeStartThumb.jpg" alt="JuiceBox Game of Life, Towards the End Thumb" /></a></p>
<p>If you want to try it for yourself, here is the elf file that can be downloaded with OCD Commander or similar program to your JuiceBox (given you have a JTAG emulator as well): <a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/Software/gol.elf" title="JuiceBox Game of Life Elf Binary">gol.elf</a><br />
I take absolutely no responsibility for any damage this software may cause.<br />
I will post the sources shortly&#8230;</p>
<p>Next project is learning to use those buttons and I/O ports on this ARM chip.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frozeneskimo.com/electronics/2006/01/16/juicebox-game-of-life/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Custom Code via JTAG on JuiceBox Success</title>
		<link>http://www.frozeneskimo.com/electronics/2006/01/16/custom-code-via-jtag-on-juicebox-success/</link>
		<comments>http://www.frozeneskimo.com/electronics/2006/01/16/custom-code-via-jtag-on-juicebox-success/#comments</comments>
		<pubDate>Mon, 16 Jan 2006 10:24:58 +0000</pubDate>
		<dc:creator>vsergeev</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[JuiceBox]]></category>

		<guid isPermaLink="false">http://www.frozeneskimo.com/electronics/?p=35</guid>
		<description><![CDATA[Shortly after I got my JTAG Wiggler working with the JuiceBox, I hunted out some homebrew code precompiled for the JuiceBox. I found it here: http://www.elinux.org/wiki/JuiceBoxCodeTest Using OCD Commander you can easily upload the code to the processorâ€™s memory through a JTAG emulator, and it will automatically set the PC register to the start of [...]]]></description>
			<content:encoded><![CDATA[<p>Shortly after I got my JTAG Wiggler working with the JuiceBox, I hunted out some homebrew code precompiled for the JuiceBox. I found it here: <a href="http://www.elinux.org/wiki/JuiceBoxCodeTest">http://www.elinux.org/wiki/JuiceBoxCodeTest </a></p>
<p>Using OCD Commander you can easily upload the code to the processorâ€™s memory through a JTAG emulator, and it will automatically set the PC register to the start of the program. All you have to do is hit go, and your program is running.</p>
<p>I played with the LCD demos, and modified the second one to print a greeting message, which I took a picture of to post here:<br />
<a href="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/01/JuiceBoxCustomCode.jpg" title="Custom Code Upload onto JuiceBox via JTAG Thumb"><img src="http://www.frozeneskimo.com/electronics/wp-content/uploads/2006/01/JuiceBoxCustomCodeThumb.jpg" alt="Custom Code Upload onto JuiceBox via JTAG Thumb" /></a></p>
<p>My next familiarization project is to port, for the first time ever, the game of life to the JuiceBox. I will have pictures of this tomorrow when the project is complete. It shouldnâ€™t be too difficult, since the LCD demo code has shows how to drive the LCD and plot pixels.</p>
<p>In addition, I want to mess with the buttons. They are located on PORTG, but I still have yet to learn how I am supposed to properly manipulate the PORT registers on this ARM chipâ€¦</p>
<p>I love JTAG and $15 ARM development boards. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.frozeneskimo.com/electronics/2006/01/16/custom-code-via-jtag-on-juicebox-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JTAGing JuiceBox Success</title>
		<link>http://www.frozeneskimo.com/electronics/2006/01/15/jtaging-juicebox-success/</link>
		<comments>http://www.frozeneskimo.com/electronics/2006/01/15/jtaging-juicebox-success/#comments</comments>
		<pubDate>Mon, 16 Jan 2006 07:57:19 +0000</pubDate>
		<dc:creator>vsergeev</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[JuiceBox]]></category>

		<guid isPermaLink="false">http://www.frozeneskimo.com/electronics/?p=32</guid>
		<description><![CDATA[After realizing where I messed up in building my Wiggler JTAG dongle, I fixed the small problems and connected it back to the computer. I ran jtag (from openwince project) and detectâ€™d the Wigglerâ€¦ it worked flawlessly. Here was the output: jtag> cable parallel 0Ã—378 WIGGLER Initializing Macraigor Wiggler JTAG Cable on parallel port at [...]]]></description>
			<content:encoded><![CDATA[<p>After realizing where I messed up in building my Wiggler JTAG dongle, I fixed the small problems and connected it back to the computer. I ran jtag (from openwince project) and detectâ€™d the Wigglerâ€¦ it worked flawlessly. Here was the output:</p>
<p>jtag> cable parallel 0Ã—378 WIGGLER<br />
Initializing Macraigor Wiggler JTAG Cable on parallel port at 0Ã—378<br />
jtag> detect<br />
IR length: 4<br />
Chain length: 1<br />
Device Id: 00011111000011110000111100001111<br />
Manufacturer: Samsung<br />
Part: s3c44b0x<br />
Stepping: 0<br />
Filename: /usr/local/share/jtag/samsung/s3c44b0x/s3c44b0x<br />
jtag></p>
<p>In addition, I ran ocdremote, which recognized the Wiggler, connected to it immediately, and setup the local TCP server for GDB to connect to. I ran the arm-elf-insight (Insight is a standalone frontend to GDB) that is packaged with the GNUARM toolchain, and connected to OCDRemote. After the connection I could view all of the juiceboxâ€™s CPU registers and internal RAM. I could also step through the program instructions.</p>
<p>Now Iâ€™m compiling jtager over cygwin so I can dump the internal RAM of the CPU and compare some of it to the chunks that are posted on the linuxhacker forumsâ€¦</p>
<p>Soon Iâ€™ll write a tutorial for integrating OCDRemote with GDB with Code::Blocks, so people can easily develop and debug all ARM7 projects through Code::Blocks. Finally, I can uninstall eclipse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frozeneskimo.com/electronics/2006/01/15/jtaging-juicebox-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
