Brain Dump
I’ve got a bunch of small things floating around in my head at the moment, so I’ll just churn them out as I think of them. This post will be a bunch of ramblings, but I’ll try to keep at least some of them interesting to fellow engineers.
Brain Dump #1: New Mobile Phone
Last weekend I signed my first contract, which (for me) was a momentous occasion. Granted, I only signed up for a minimal AU$20/month mobile plan, but for me the legal signing of a formal contract is a big marker towards myself thinking of myself as a real adult (independant of my actual age and legal standing). The cheap plan came with a neat free Nokia E63 phone which I love so far — especially after hooking it to my home WiFi for my emails — except for its amazingly convoluted settings menu and its perplexing lack of hardware volume buttons.
However, what got me the most was the limited warranty duration on the phone; the contract is for two years, yet the phone’s warranty lasts for only one. I would expect that a warranty on a device designed to supply a service under contract would be under warranty for the duration of that service, but what to do I know. I think it sucks that it’s apparently fine for the hardware to crap out half way into a fixed contract – and yes, I realise that using another phone is always an option.
Brain Dump #2: Busware BUI Board
This is actually a new board I received a few weeks ago, but forgot to mention. It’s a neat board called the “BUI” from Busware, and it’s essentially a generic USB interface platform in a neat professional plastic shell. On one side you have a mini-USB connection, and the other a header for 8 level-shifted GPIO pins for interfacing to whatever you like. Mine came with an ISP adapter, so with the addition of my LUFA AVRISP firmware I essentially have another USB AVR ISP programmer for my work. It’s a really nicely made board, with an onboard RGB LED for status information and a AT90USB647 with plenty of FLASH space for your custom projects. Highly recommended.
Brain Dump #3: AVRISP PDI Programming Support
Speaking of my AVRISP project, I’ve started to enhance it to support XMEGA PDI programming, now that the official AVRISP-MKII supports it with the latest AVRStudio release (side note: the latest AVRStudio release also unlocks debugging on the Dragon for all devices regardless of FLASH size, so go download it!). Of course, it’s fairly hard to write a programmer firmware for a chip I don’t have, so I’m trying to snag an Atmel XPLAIN board off eBay. This is a neat new board with an AT90USB1287 and an XMEGA chip onboard. In theory the AT90USB1287 will act as a PDI programmer for the XMEGA, but Atmel apparently haven’t finished that feature yet. Unfortunately it seems I’m being screwed on the purchase, but hopefully that will all be worked out soon. The PDI protocol isn’t the simplest one I’ve seen, but I’ll no doubt be able to crank something out once I’ve got some actual hardware.
Brain Dump #4: XPLAIN UART Bridge
Actually, Atmel’s XPLAIN board hasn’t been the most well received piece of hardware. It’s only a few months old and there’s already four different hardware revisions out there, and the official AT90USB1287 bridge code isn’t so hot either. Although I can’t fix the hardware, I can try to fix the firmware (see PDI post above) – there’s a new XPLAINBridge project in the LUFA SVN which will restore proper XPLAIN XMEGA USART-to-USB functionality of the board while I finish up PDI programming support. Thanks to all those who tested the code, and supplied software UART code for the bridge!
Brain Dump #5: New Atmel Board Support
Because of the aformentioned multiple XPLAIN board revisions, it’s not possible to have a single XPLAIN board target in LUFA – the dataflash ICs between Rev. 1 and later revisions are different. Because of that, the next LUFA release will have full XPLAIN board hardware support (for the AT90USB1287 only) via a XPLAIN and XPLAIN_REV1 board targets. I’ve also added support for the EVK527 board, which is essentially the demo kit for the series 4 USB AVRs.
Brain Dump #6: New RNDIS Host Driver
You asked for it, I’ve written it. The next LUFA release will have a basic RNDIS Host demo, and RNDIS Host Class driver. This has been missing until now because I didn’t see much of a utility for it, but several people have sent me requests for me to supply one. The new demos just enumerate an RNDIS networking device and print out received packets, but it could easily be combined with a full TCP/IP stack and plugged into a USB modem for some instant networking goodness without an Ethernet chip and socket.
Brain Dump #7: LUFA Tutorials
I’ll be working on some LUFA tutorials soon, since I think that’s an area where LUFA is sorely lacking — full demos can only do so much. I’ll be aiming to give a brief overview of USB and how the library works, and then create a simple USB keyboard from the HID class driver step-by-step. Later tutorials might delve into the low level API stuff for custom interface support, depending on how well the first one is received. I’ll be including anything I do write into the library documentation as well as posting it to AVRFreaks.net.
That’s all I can think of for now – Merry Christmas everyone!
For ARM, just like any other, use a simple working project and add your work to it. Atmel gives a lot of working code and documentation for his ARM 😉
But you can always use my code, which have already an interrupt working:
http://code.google.com/p/casainho-projects/source/browse/#svn/trunk/pedal_power_meter/firmware/at91sam7s256_version
I made that code for a “Pedal Power Meter” system but I ended up using another ARM7, the Philips NXP LPC2103. Project page is here: http://code.google.com/p/casainho-projects/wiki/PedalPowerMeter