Archives for posts with tag: AVR

Starting to program microcontrollers in assembler is quite a barrier in the beginning. Searching the web for Assembler tutorials and example code can get confusing really fast, that’s why I want to share my experiences and provide a collection of links that helped me to get started with this topic.

First of all three important differences derive from the three major microcontroller companies: Microchip, Atmel and ARM. Good introduction to Microcontrollers (also for the difference of PIC and AVR) and also this basic Introduction into Assembly Language and a Assembler Hello World ASM Example are worth having a look.

Further there are ways to convert C code to Assembler code, to optimize C code for AVR microcontrollers by Atmel and ways to mix these languages together: Mixing C and Assembly, Atmel tutorial for Mixing C and Assembly

The difference between the .asm and .S file extensions for the assembler code files is not really clear, but this messageboard thread about the file extensions difference of .ASM and .S helped a little bit. Two examples for .S-files can be found with a Linker Script commands for S-code blink example and another S-code blink example. More infos on Linker Scripts here.

Besides the instruction sets and specific libraries for the microcontrollers it is important to understand how the GNU GCC Compiler works. For example does it use the GNU Binutils for i.a. compile command objcopy etc. Here can also be found some compile commands for my AVRFID example.

If you find anything wrong in this collection of informations on microcontroller programming, I would be happy for a comment. I wanted to sum up and share my search results here and maybe it helps other people to get faster into it!?

In order to use an ATtiny85 as an AVRFID, it is necessary to know the exact inner workings of these microcontrollers.


For I/O-operations the pins (2=PB3, 3=PB4, 5=PB0, 6=PB1, 7=PB2) can be used. The configuration of the ports is affected by the three 8-bit registers PORTB (data register), DDRB (data direction register) and PINB (port input pins):

Read the rest of this entry »

Digging deeper into the different aspects of the RFID technology, I started to get lost with details of protocols and data sheets. The search for RFID taxonomies, which helped me understanding the big picture did not exist. I found three older and smaller taxonomies on specific areas on the RFID technology or certain perspectives on it:

  1. A Multi-agent Architecture for RFID Taxonomy” by Son Le, Xu Huang, and Dharmendra Sharma (2007)
  2. Taxonomy and survey of RFID anti-collision protocols” by Dong-Her Shih, Po-Ling Sun, David C. Yen and Shi-Ming Huang (2006)
  3. A Taxonomy for RFID” by Taimur Hassan and Samir Chatterjee (2006)

But it seemed quite incomplete for the current state of the art of RFID, so I took those three and many other scientific facts (1, 2, 3, 4, 5, 6) I have gathered over time and tried to complement it, to give an up-to-date overview about this field. In order to cope with the many aspects and dependencies of RFID in terms of ubiquious computing and new user interaction possibilities it is really important to understand the big picture (click onto the image to get the whole big overview!):

RFID Taxonomy_overview

Creative Commons Lizenzvertrag
The 2013 RFID Taxonomy by Dario Soller is under the Creative Commons Attribution – Noncommercial – Share-alike 3.0 Unported License.

To me it seems pretty complete for January 2013, but it does not claim to be complete at all. RFID will continue to be a fast developping technology, especially in the near future, so feel free to expand and update this mind map and leave a comment, if you find any kind of wrong classification or you think there is something important missing. Here is the original mind map file (done with Xmind).

Another important part is the special RFID ISO/OSI Layer approach by Son Le et al.. Even though they have a little too much of this business perspective to it. In my opinion it is too early for this kind of business service view on RFID because of the many technological barriers which still have to be overcome. But from the view of communication engineering an own RFID OSI layer model would be really promising in finally getting RFID ubiquitous for everyone:


My 2013 RFID taxonomy doesn’t exactly represent these proposed RFID OSI Layers anymore, but it’s still an integral part of it. One simply has to leave the nodes Development, User Interaction, Security and Protocols away. The Physical and the Communication layers are very closed coupled and a bit overlapping as one can see on a closer look on the 2013 RFID taxonomy.

First of all I emphasize that unfortunately none the following attempts of reprogramming fused AVRs was successful in my case. Therefore this is more a personal documentation of what did not work, rather than a tutorial on how to get AVRs reprogrammed.

The general problem is, that once the fuse bits of an AVR are set to except an external clock source, the AVRs can in theory only be reprogrammed when they have that external clock source during the reprogramming process as well. In practice it is much more complicated.

Read the rest of this entry »