Designing a GPIO using the wishbone protocol.

For my second week at AESTE, I was assigned to design and implement a GPIO using the wishbone protocol. The wishbone protocol is a standard method that is used by many processors to communicate to their IO devices. It is a format that uses several several signals in its BUS to facilitate the transportation of data to and from IO devices. I was particularly asked to focus on the IO device that adheres to the protocol. Initially my first approach Read more…

First week

My First day started with introducing the workplace and the project I’ll be working on followed by a quick introduction about Verilog and the necessary tools that I need to use to do my work. For this week the goal will be to wrap up all the learning that I need to do and make a blinking LED FPGA design ( basic clock delay using counters and I/O) on Xilinx Spartan X3CS700A mounted on Spartan 3A revision C starter kit Read more…

First week at AESTE, Kuala Lumpur.

Last week, I was given the opportunity to explore several programs that I needed to use for my upcoming project. These were GIT, Icarus, GTK waveform viewer and finally ISE. I learnt how to store and manipulate files from a repository through GIT. I would recommend GIT to anyone who is interested in software programming. With GIT, you will be able to work on many aspects of a program and merge them when you need to. You could even store Read more…

Zedboard on Ubuntu 12.04 LTS

It was fun getting the Zedboard working on Ubuntu 12.04 LTS. We are using 2012.4 version of ISE/Vivado Webpack. There are no major tricks in getting it to work but since there does not seem to be a guide out there, I thought that I’d write a quick one here. Download ISE Webpack from Xilinx here. We are using version 2012.4 here. Unpack the ISE Webpack. $ tar -xf Xilinx_ISE_DS_Lin_14.4_P.49d.3.0.tar Install the ISE Webpack. $ ./Xilinx_ISE_DS_Lin_14.4_P.49d.3.0/xsetup Download the Digilent run-time Read more…

http://www.zedboard.org/sites/default/files/pictures/ZedBoard_RevA_sideA_0_0.jpg

WEEK 3 : ETHERNET

I managed to set up physical layer for ethernet connection after solving the error which came from the .c  file that end with ‘#endif’. I just needed to add an empty line after ‘#endif’ and that solved the problem. When the board was powered up, the LED D8 was blinking, the green LINK LED on J1 was lit and the LCD display showed the TCP Stack version and the IP address in use by the board. These indicated that the Read more…

Week 2 : UART & TCPIP Stack

In order to allow communication between PIC microcontroller and PC, UART communication needs to be set up.  I wrote a program to send data byte from PIC microcontroller to PC which the output was displayed through Minicom, a hyper terminal for linux. At first, the displayed output was gibberish. This was solved by configuring the baud rate in Minicom setting. I was also able to write a program to receive data byte from PC to microcontroller. I modified my previous Read more…

Week 1 : Introduction to the Project

My first week in the company, I was briefed on the project that I need to conduct throughout my internship.  My task is to work on the PICDEM.NET2 development board which uses PIC18F97J60 microcontroller. The objective is to write a program which is able to download file from internet via Ethernet which is to be stored in the SD-Card and then the file can be read from the SD-Card.  Even though my task is just a small part from the Read more…

Week #12 – SD Cmds

I tested out the code I had already written and found out that the power up sequence was not working as expected. After consulting with my supervisor he advised me to enable pull-up resistors in port B and test the input and outputs for the each pin. By setting the INTCON2bits.NOT_RBPU to 0, I was able to enable the pull up resistors. I then set my port B as output and checked to see the voltage across the pins when Read more…

Week #11 – SD Comms

After adding the software SPI, I started out writing the program. There are four working modes in SPI and the SPI timings for Mode 0 is the proper setting for the SD Cards. After setting the mode I started defined the values for the commands that are to be used. Then I started with the power up sequence. This is necessary to synchronize the card with SPI clock pulses and to let the card know the change in clock pulses. Read more…

Week #10 – SPI Comms

I was still working on the SD card this week. I took up from where I left off and started with setting up the SD card. I soldered the pins onto the little board for holding the card. This board has a pre-made insertion point for the card and which all the pins are soldered to the card. The soldering had to be checked for connectivity using a multimeter after ensuring that all connections are fully made and that there Read more…