I2C Extension TO AVR ARM Emulator

This is a really interesting project which adds I2C support to an emulated Arm device on an AVR controller. The good thing, it can boot linux in an emulated frequency of 10Khz. That slow but taking in mind the complexity of the project it’s worth it. The original project was just to boot linux on the AVR. However, the project I am going to talk about adds I2C support to this emulated device so that you can interface multiple pheripherals all at once. The author decided to use Charliplex multiplexing technique to increase the pin support since he was short by one pin on the AVR. The author went through a number of ups and down so that the linux kernel can recognize the new I2C. Howver it took him days to find the solution. In the end, I had compiled the kernel with the needed I2C support, built the modules, built the pvDisk module (how the emulator accesses the SD card), built the RAM disk, and bundled it all up with the bootloader into a boot image. A really… Continue reading

Kick-ass project. Linux on AVR using emulated ARM

It seems impossible to run Linux on 8-bit microcontroller. One reason is that Linux requires at least 32-bit processor. Another limitation is RAM and MMU. So at least you can run penguin on ARM microcontroller with external RAM and external program memory. Dmitry didn’t think so. He wanted to prove that everything is possible it you want and know how. What he did is he took am Atmega1284p microcontroller running at 24MHz and added external DRAM module from old computer. Also he attached SD card to SPI interface and so he solved memory problem. But the biggest challenge were ahead – how to make 8-bit micro be 32 bit. And so he wrote ARM emulator which resides inside AVR. As result he got an ARM emulator with MMU running at 6.5kHz. So this is it – all is there to run Linux. He loaded Ubuntu in to SD card and it works. Well its speed is rather ridiculous than useful. But hey it works and it proves the fact that Linux can be run on 8-bit micro. For the record.… Continue reading