Saturday, May 19, 2012

Using CAN on LPC2378 Simplified

I had worked on it last semester .The LPC2378 usermanual and the example codes were very helpful . To get started , one can just modify the example codes without understanding function of all the registers . I have given a basic view of how can one implement a CAN protocol using the CAN controller . I  have not discussed the Acceptance filters and the error management. This should give a good kick start to a CAN based project.








Prototype based on MSP430 : Design Issues

Level conversion is just not enough always for a proper UART communication between two devices working at different standard voltages , normally 3.3V and 5V.

This issue crops up when we try to interface a sensor working at 5V [which generally is the case], to a controller or processor working at 3.3V. In our case , we were using the GSM modem which gives a 5V serial UART output and MSP430 powered at 3.3V.

We understood that we need a MAX232 for proper protocol conversion. Without MAX232 we were getting some deterministic values but not correct ones . The reason i feel is that the logic levels are set as -5V and 5V for uart communication , but as we have matched the ground , there may be problems with required voltage levels not getting matched.

A tip : A debug method i use to check whether the rx lines are connected properly. If you ground the rx pin and pull it out , it must give you an ascii character something like  "???" . That's pretty interesting , we done guys ascii codes + uart combined is intelligent enough to tell us "What the F are you doing ??". So if you are getting values like this probably you have loosely connected to gnd  :p.

Believe me its fun to debug this way if your rx wire is crossing 2-3 boards to reach the destination. 

Friday, May 18, 2012

Protype based on MSP430

Together with my friends, we had participated in the TI MCU contest 2012 . It was a good experience of completing the whole design flow for a prototype within 5-6 days.

A small description of the proposed system. Cargo traking system , consisting of sensors ,like accelerometer, GPS reciever , humidity sensor and temprature sensor, communicates the readings of the sensors in a meaningful way to the customers . A GSM modem is used for communication.

Cleary, GPS , GSM and accelerometer, were the USP's . I would describe a bit about the issues we faced while creating this system using MSP430 Lauchpad provided by Texas Instruments.

GSM modem : If you go through the wiki page of RTS (Ready to send) pin of the RS232 DB9 connector. you will clearly understand that though we use only three wires(Tx, Rx, Gnd) for UART communication it is not always true. modems in perticular  requires additional signals like RTS and CTS according to the application. It is not necessary to dedicate a pin of controller for these signal . As they are just signals to start or stop data transmission, in other words they mere flags . Solution is simple , in  the serial being used , we must send the signal back to the modem[ just short them].

Getting started FPGA board design

This summer i am working with Dr Kota Solomon Raju, Senior Scientist at CEERI, Pilani and my classmate Kunal Kedar on FPGA board design. The aim would be develop a complete understanding of what is required to make a stand alone FPGA system , which can be further used to some application which needs custom peripherals to be interfaced.

We are going to design it for Virtex 5 series . We are currently looking at only 2 packages FF1136 and FF1760. We will be using a Virtex 5 AFX FF1136 Proto board to test the design .

The first task was to understand the pins of the FPGA. Unlike other Integrated circuits , all the data about the FPGA cannot be put into one document . So Xilinx provide different documents addressing different users and aspects . The pin information document is what we are looking at. First we have created a simplified layout of pins considering the similarities of the io banks. It cannot be understood in a single , one needs to do two to three iteration to draw a optimal and meaningful pinout .

Tuesday, April 3, 2012

Need to Standardize Simulation Reference Manual



In this age of information, we lack what i call it as 'common interface' to the knowledge and knowledge about the developed tools.

My idea is why don't we have a Standardized way simulators are documented .

Out of many such great tools made by humans one is simulation by computer programs . they help us study without breaking our heads setting up for experiments .Being an electronics engineering student , I understand the necessity as they might cost you billions :P.

Most of the research , I feel first goes into modelling a system/material/whatever . This opens up the scope for all the other people with brilliant ideas to come in. And this new things (invention/discovery) catches fire .. all the researchers around the world come up with possible applications in their respective domains. Hence , the world progresses much faster.

[This blog is mainly inspired from Professor N.N.Sharma , his lecture on simulation and modelling behavior of materials/physics in micro-domain ]

If one looks at the history , the universities/research groups would publish a model. And these publications can only be understood by researchers who were working in that field.

If somebody wonders how these models look like ? Then they are not beautiful at all, like our (super)models :P . In fact ,they might be some long differential equations of some 8-9 order . Too complicated for anyone to solve these models on paper.

With the increase in production of computers , these things became a bit easier . But still ,some one had to teach (program) those stupid computer :P.

Now we have fast but still stupid computers . In the mean time we have developed some good platforms (Java,.NET,) and graphics etc.. . We were all equipped to make simulators , which did all the number crunching without users knowledge. Doors were open for guys from other disciplines to try-out somethings that their techniques. Still, most of the simulators would return some numbers , hence required some knowledge of programming was essential to use it efficiently.

Approaching this age of interdisciplinary research , mostly due to saturation in the core disciplines . Simulators have played a very important role in pacing up the research.

As industries saw potential and took interest in simulation softwares . We have landed into a world where we have 3D graphics , animation , math solvers ,etc .. all integrated into simulators. Now , people think simulators are the only ones which can show some graphical output , which includes some of out faculty members .

This is not it . We have 3D graphics , fine . Good interface , fine . We have all the features can be simulated , great . But , I have worked so hard to understand the previous simulator why would I switch to something else , and why is it necessarily so different ? I look at the getting started tutorials trying to relate what my old simulator had ? When i go through the Help and documentation , the layout seems to be completely different, takes a whole lot of time to figure out where to look for ?

My idea is why don't we have a Standardized way simulators are documented .

There are lot of open source groups who have standardized their documentation , so that they could increase readability , as they get contribution for lot of people around the world and any body should understand it . If a person understands the basic way how to look up a reference maual / user-manual , he should be able to switch to the new ones faster .

Attempts are being made by companies to provide special manuals for smooth transition from others products to theirs , but all these can be saved, if this happens .

Thursday, December 8, 2011

Change Gmail back to old look

I lost few of my hairs looking for the ' revert to old look temporarily ' button. So I thought this would help people get back their lives (old Gmail).

Its basically confusing which gear (setting) to choose. If you choose the usual top-right , then you are on the wrong way. This page has 2 settings button. One on the corner of the page and one just beside the mail navigation keys. The latter is the one you are looking for.



Saturday, November 12, 2011

Time taken to execute the c program

I was executing a C code which was a loop of 65535. It was basically , a program which was testing the outputs for all possible values and hence can say, testing the algorithm.

I used the gcc compiler to compile the c code. When i executed the code it took a good 5-6 secs to complete the execution. But now we all know the command prompt window could display only a few hundred recent lines . So i decided to print the output to a text document using the
a.exe > sample.txt
command. To my astonishment , the code was executed in less than a sec. All this could only inspire me to check out ' how could i know the clock cycles required to execute the program.

it took some google searches to know that clock() is the function i was looking for which is in the header file time.h .

here is the glimpse of the program.

#include
main()
{
long int i;
clock_t clk;
// write your code here
for (i=0;i<10000;i++)
{
printf("%ld",i);
}
//say your code ends here

clk = clock(); // clock fuction give the clock cycles elapsed since the start of the program
printf("the no of clock cycles required to execute the is %ld",clk );

}

clock_t is long integer type of data type defined in sys/types.h
the function clock() returns a value of type clock_t so we need to declare a variable of this type .


P.S. : the clock cycles taken by the program would differ based on the other processes running on your system. one should keep in mind that , it does not give the time taken by your code to execute if it is the only process running. But it gives the time taken in the current complexity of the processing environment.