Posts Tagged Atmel

Rant on AVR ISRs

Once you define an ISR bit in the TIMSKx, the appropriate ISR must be attached.

Lost almost a day on non functioning serial port, until stumbled upon the post in stackoverflow.com

So, when copypasting

TIMSK1 |= (1 << TOIE1) | (1 << OCIE1A);

be sure to define both
ISR(TIMER1_OVF_vect) {
...
}

and
ISR (TIMER1_COMPA_vect)
{
...
}



                      

Tags: , ,

Meet the fMRI Parrot

fMRI Parrot

Camera
LG-D405n
Focal Length
3.2mm
Aperture
f/2.4
Exposure
1/20s
ISO
600

What the heck is “fMRI Parrot”?

First of all, the heck is fMRI. fMRI stands for “Functional Magnetic Resonace Imaging”, as defined in Wikipedia. It involves tons of expensive hardware, like Magnetic Resonance machine, and software, used to reconstruct the scanned volumes. During fMRI scanning a series of stimulus are applied to the patient and the brain is scanned using fast scanning MRI techniques. The aim of fMRI is to record immediate changes happening in particular areas of the brain.

The single MRI scan is called “volume”. It is created from a series of slices of the predefined thickness. Having more slices creates more detailed volume and extends acquisition time. As the changes of the brain activity are momentary, a short volume acquisition interval, named TR or “Time Repetition” is needed. Usually it varies from 7 to 1.5 seconds, depending on the capabilities of the MR machine. Short TR time supposes lower quality scans, compared to the “traditional” MR scanning. So the level of detail of particular volume is a trade off between time and specific requirements.

The fMRI scans consists from a number of volumes, recorded at particular intervals. The key condition for a successful scan is the precise timing. In order to find a region with elevated activity, a stimulus must be started just when the volume acquisition begins. For this the MRI machine may expose a short pulse – start of a volume. The pulse may be brought to the MRI control room via the interface box and the required stimulus started automatically. Some stimulus require the patient to respond, eg. press the predefined button. The response from the patient is also brought to the MRI control room. As there are special requirements for any hardware at the MRI machine, only certified equipment is allowed to the MR room. The requirement at the MRI control room are more relaxed as well as the choice of the equipment There are different vendors of the interface boxes and response buttons, NordicNeuroLab (NNL) being one of them.

In order to create the simulation series, or paradigmas in fMRI terminology, a lot of time is needed. Each paradigma is to be verified before the clinical test, while some of them can not be tested without a signal form the MRI scanner or a response from the patient.┬áThere is no need to say the MRI equipment is expensive, so is the time spent in the MRI machine. Most of the MRI scanner interface boxed can be used in so called “simulation” mode, sending particular responses at the predefined moments, without actually running the scanner. For example the Sync Box from NordicNeuroLab will send “S” symbol at the start of the volume acquisition, while fORP from Cambridge Reserch Systems is to send “5”. So what is actually required to test a paradigma, is the response from the scan… WAIT!

It’s must not be the MRI scanner nor the interface box.

Read the rest of this entry »

Tags: , , , , , , ,

Weekend project – USBasp

I had some ideas to go out before, but as i got terrible cold last Friday, I had to postpone all of them.

I feel a bit better today, so decided to build USBasp – an USB port ISP programmer for Atmel product family. I used STK 200/300 dongle before, but it works from parallel port only.
USBasp: fresh PCB
Lets start: the schematics is from http://www.fischl.de/usbasp/ . You can find some schematics and pre-routed PCB’s there.

What I need is USB B type or MiniUSB connector, SMD parts, small footprint, single – sided PCB. The one I liked is by Thomas Pfeifer, http://thomaspfeifer.net/atmel_usb_programmer.htm. The problem is I found no files for Eagle there and had to re-create the PCB.

Additional features are:

  • RC filters on MOSI, MISO and SCK lines to suppress ringing, as suggested in AVR Freaks forum;
  • Signal from oscillator (XTAL1) is routed to the pin 3 on IDC connector via jumper – a handy feature to debrick the MCU if you accidentally fused external oscillator;
  • Inductor on the power line.

The PDF files with the layout are here, an A6 – size mirrored image for direct printing on OHP is here.

Added on 2008-10-01:
USBasp top side, populated
USBasp bottom side, populated
First, it works. Both connected directly or via USB hub.
Second: don’t create anything while you are ill. Actually, pin number 5 on miniUSB connector MUST be grounded, while pin number 4 can be grounded or left floating. I’ve used i jumper wire to solve the issue.

Tags: , ,