AVR32: Displaying image on graphic LCD

Last weekend, I was dealing with the graphic LCD on EVK1105. I am happy to deal with output device. It is because they can interact with users and programmers. They can use for debugging, showing error and feedback. Another reason is the output devices are easier to debug when you have done something wrong. The software driver of graphic LCD is provided by the Atmel Software Framework. It is also comes with a example that displays an AVR32 logo on Read more

AVR32 Development

These two weeks, my task is writing a Hardware Abstraction Layer (HAL) for AVR32. So I need to work on AVR32 along with AVR32 studio and development board. The AVR32 is 32-bit micro-controller family developed by Atmel. Atmel provides most of the drivers for the on-chip peripherals and on-board components for AVR32. It also provides some third party services like FreeRTOS, light weight IP (LWIP), memory error-correcting code (ECC) as well as JPEG library. All the drivers and services are Read more

FreeRTOS: Inter-Task Communication

FreeRTOS is a type of real-time operating system. It is similar to all RTOS, having a serious problem with inter-task communication and resource sharing. In RTOS, inter-task communication is not like passing variables between normal functions. Normal functions can pass the data to a global variable or pass it to another function by returning the value. If the global variable is being used by RTOS, the data might be written by higher priority task before the lower priority task read Read more

ASH1 Assembler

During the last week, I worked on developing an assembler for ASH1! I have always wondered about the assemblers & compilers design… with AESTE, I had the chance to explore this field. ASH1 assembler is developed using MATLAB. It takes an assembly language source file (text file) and translates it into ASH1 object file (mif file). This is done by carrying out three passes over the source file as the following: In the first pass, comments and blank lines are Read more

Learning Week

One week has passed since I started my career in AESTE. The only thing I can do was learning. There are so many things I need to learn before I can start my task. The list below is what I have learned in last week. Git + Github Git is a distributed revision control system. It provides a set of workflow for multiple developers work on same project. The modification can be done on local PC, then push (upload) to Read more

New software environment

In AESTE, every task is done in Linux. I am not a Linux user before and to get my job run smoothly, I need to learn it as soon as possible. It is very different to work under Linux platform compared to Microsoft Windows, especially in the ways to install software. Linux can get a bunch of software from the software center or using the apt-get command (different distros use different command). For expert users, they can perform most of Read more

First Week in Aeste

I am a fresh graduate with Bachelor of Electronics Engineering from Multimedia University Cyberjaya. I found my passion in electronics hardware and programming when I was in secondary school. During that period, my teacher taught me to write a simple program – sending data from PC, and receiving it with a 8051 (via RS232). I was very excited when I saw the system worked well since it was done by me! During my university life, I have participated in ABU Read more

ASH1 : An LCD Driver and VGA Colour Controller

After integrating Ethernet operations into ASH1.. I though of demonstrating ASH1 as an IOP .. so I looked for a simple I/O operation, yet a simple one to make my life easy when I am writing the code for it in binary. I decided to make ASH1 works as an LCD driver in addition to VGA colour controller. For the LCD driver code, I wrote the code and compared it with the one used in PIC Projects: A Practical Approach Read more

CRC Operations: A follow-up

Cyclic Redundancy Checksums generation and checking were among the challenging things in implementing ASH1. Looking for the accurate way to calculate/check CRCs took me a lot of time as it was confusing in terms of the following: Bit Orientations (LSB first or MSB first). The Initial Value of the CRC register (0s or 1s). CRC Orientation and Inversion. Through checking some online resources, I found out that it is not only me who faced this problem. People here were struggling Read more

Ethernet Operations: Random Generator

Back-off is an important feature of the Ethernet MAC protocol. After a collision is detected through the MII/RMII interface, ASH1 should stop transmitting (there are more specific details about when exactly to stop transmission) and then reschedule its retransmission by generating a period of time to wait before retransmission. The period of time is based on a random number chosen by ASH1 and used in its back-off calculations. The amount of total back-off delay is calculated by multiplying the slot Read more