Skip to content
Snippets Groups Projects
Commit 8b25d11e authored by Sam Calisch's avatar Sam Calisch
Browse files

Add new file

parent 6df875f1
No related branches found
No related tags found
No related merge requests found
Pipeline #
README.md 0 → 100644
<h1>XMega Learning</h1>
<h2>Toolchain Installation</h2>
<h3>Linux</h3>
<p>This installation is more or less straightforward:</p>
<ul>
<li><p>sudo apt get install ...</p></li>
</ul>
<p>TODO: do a fresh install and make notes.</p>
<h3>Mac</h3>
<p>Cross pack is a great bundle available via homebrew for these tools. Unfortunately, currently (3/21/2016) it doesn't include avr-libc v2.0, and so doesn't include support for the xmega8e5. I made an experimental homebrew tap with avr-libc v2.0 and arg-gcc 5.3.0. To get it, run:</p>
<ul>
<li><p>brew tap calischs/homebrew-avr</p></li>
<li><p>brew install calischs/avr/avr-gcc53</p></li>
<li><p>brew install calischs/avr/avr-libc20</p></li>
</ul>
<p>Also, as of 10/31/2016, there seems to be some strange behavior when trying to use an Atmel Ice programmer from a mac. When you try to program, you may see an error message from usbdev_open() about not claiming the interface. I used the answer posted <a href='http://www.avrfreaks.net/comment/1421981#comment-1421981'>here (post 32 and 33)</a> -- the attached kext file already has the correct VID and PID. A full restart was required.</p>
<h2>Examples</h2>
<p>Below are projects using the xmega peripherals as I'm learning about them. They definitely aren't minimal "hello world" examples, but at some point hopefully I'll get around to boiling them down. For the moment, however, hopefully they demonstrate how to use each capability of the mcu.</p>
<h3>DAC</h3>
<ul>
<li><a href='dac/sine.png'>Sine Wave</a></li>
<li><a href='dac/hello.8E5.dac.c'>hello.8E5.dac.c</a></li>
<li><a href='dac/hello.8E5.dac.make'>hello.8E5.dac.make</a></li>
<li><a href='dac/make_lookup.py'>make_lookup.py</a></li>
<li><a href='dac/xmega-8e5-dac-layout.png'>Layout</a></li>
<li><a href='dac/xmega-8e5-dac-traces.png'>Traces</a></li>
<li><a href='dac/xmega-8e5-dac-outline.png'>Outline</a></li>
<li><a href='dac/xmega-8e5-dac-board.jpg'>Board</a></li>
</ul>
<h3>Quadrature Decoding with Timer/Counters</h3>
<ul>
<li><a href='qdec/qdec.mp4'>Operation</a></li>
<li><a href='qdec/hello.16a4u.qdec.c'>hello.16a4u.qdec.c</a></li>
<li><a href='qdec/hello.16a4u.qdec.make'>hello.16a4u.qdec.make</a></li>
<li><a href='qdec/serial.h'>serial.h</a></li>
<li><a href='qdec/xmega-16a4u-qdec-layout.png'>Layout</a></li>
<li><a href='qdec/xmega-16a4u-qdec-traces.png'>Traces</a></li>
<li><a href='qdec/xmega-16a4u-qdec-interior.png'>Outline</a></li>
<li><a href='qdec/xmega-16a4u-qdec-board.jpg'>Board</a></li>
</ul>
<h3>ADC</h3>
<ul>
<li><a href='adc/adc.8E5.c'>adc.8E5.c</a></li>
<li><a href='adc/adc.8E5.make'>adc.8E5.make</a></li>
<li><a href='adc/serial.h'>serial.h</a></li>
<li><a href='adc/adc.h'>adc.h</a></li>
<li><a href='adc/adc.8E5.layout.png'>Layout</a></li>
<li><a href='adc/adc.8E5.traces.png'>Traces</a></li>
<li><a href='adc/adc.8E5.interior.png'>Outline</a></li>
<li><a href='adc/adc.8E5.board.jpg'>Board</a></li>
<li><a href='http://www.tag-connect.com/'>Tag Connect Programming connector</a></li>
<li><a href='adc/load-cell-small.mp4'>Force measurement using onboard 64x gain.</a></li>
<li><a href='http://www.phidgets.com/products.php?category=34&product_id=3133_0'>$7 load cell</a></li>
</ul>
<h3>USART</h3>
<ul>
<li><a href='usart/usart.32a4u.c'>usart.32a4u.c</a></li>
<li><a href='usart/usart.32a4u.make'>usart.32a4u.make</a></li>
<li><a href='usart/serial.h'>serial.h</a></li>
<li><a href='usart/usart.32a4u.layout.png'>Layout</a></li>
<li><a href='usart/usart.32a4u.traces.png'>Traces</a></li>
<li><a href='usart/usart.32a4u.interior.png'>Outline</a></li>
<li><a href='http://www.tag-connect.com/'>Tag Connect Programming connector</a></li>
</ul>
<h3>XCL</h3>
<ul>
<li><a href='xcl/xcl.8e5.c'>xcl.8e5.c</a></li>
<li><a href='xcl/xcl.8e5.make'>xcl.8e5.make</a></li>
<li><a href='xcl/xcl.8e5.layout.png'>Layout</a></li>
<li><a href='xcl/xcl.8e5.traces.png'>Traces</a></li>
<li><a href='xcl/xcl.8e5.interior.png'>Outline</a></li>
<li><a href='xcl/xcl.8e5.scope.png'>ANDing square waves (without power supplied to VCC!)</a></li>
</ul>
<h3>I2C</h3>
<ul>
<li><a href='i2c/hall-encoder.c'>hall-encoder.c</a></li>
<li><a href='i2c/serial.h'>serial.h</a></li>
<li><a href='i2c/hall-encoder.make'>hall-encoder.make</a></li>
<li><a href='i2c/hall-encoder-layout.png'>hall-encoder-layout.png</a></li>
<li><a href='i2c/hall-encoder-traces.png'>hall-encoder-traces.png</a></li>
<li><a href='i2c/hall-encoder-interior.png'>hall-encoder-interior.png</a></li>
<li><a href='i2c/load.py'>load.py</a></li>
<li><a href='i2c/testing.jpg'>Testing</a></li>
<li><a href='i2c/loadcell-reading-v-force.png'>Results</a></li>
</ul>
<h3>USB</h3>
<h3>DMA</h3>
<h3>WEX</h3>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment