Getting started with imx233-olinuxino-maxi

Started by perf, September 15, 2012, 09:49:19 AM

Previous topic - Next topic

davidjf2001

I briefly scanned the LCDIF block, I'm not sure the LCDIF buys you a lot for small character displays. I would look to Freescale forums if you want to pursue LCDIF use.
You should be able to do what you want in user space, bit-banging GPIO. Once you get things working in user space, you could then port it to a kernel module should you need to.  If you have not used these displays before keep in mind they are slow.  The electrical interface needs delays, and worse many commands sent to the display take a long time to execute.  Personally, I would use pthreads and create a thread to manage the LCD in userspace.  If you still want to build a kernel module google "Alessandro Rubini and Jonathan Corbet" and look at their "Simple" example.  It is not for LCD's but a great example of modules.  You can easily build this from a makefile and kernel headers alone. This example builds in minutes on native platforms. 

Kean

I agree with davidjf2001, the LCDIF doesn't buy you much when dealing with an alphanumeric LCD with its own controller like the HD44780.

Unless you need *really fast* updating of the LCD data, I'd suggest getting an I2C to LCD adapter and just connecting it that way.  Olimex don't seem to have anything like that, but see http://jeelabs.com/products/lcd-plug for a simple solution.

Kean

Fadil Berisha

QuoteUsing my Ubuntu laptop and Pokey/OE, I know it can be done using that tool.

I do not know how to develop a driver with ArcLinuxARM. I would very much like to know as it should be simpler than OE to use. However, I do not have an ARM based host, just the Olinuxino-Maxi.

Can it be done? Where can I find that information?

Hi perf,

You don't need ARM based host to develop software for olinuxino. Everything you can do in your Ubuntu laptop with proper cross compiler. To produce code for olinuxino needed  toolchain with ARMv5 support. Because Ubuntu has default toolchain arm-linux-gnueabi for ARMv7arm, solution is to get proper toolchain from Debian repositories. Here is how I did in my Ubuntu laptop:

Make backup of file: /etc/apt/sources.list
Create new /etc/apt/sources.list as follow:

#
# -- Emdebian cross toolchains
#
deb http://www.emdebian.org/debian squeeze main

Install Emdebian package:

sudo apt-get install emdebian-archive-keyring
sudo apt-get update
sudo apt-get install gcc-4.4-arm-linux-gnueabi

Restore your original /etc/apt/sources.list

Now you have in your Ubuntu system arm-linux-gnueabi- toolchain producing code for olinuxino. Before compiling kernel sources, export env variables:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-

You can transfer produced code to your olinuxino-maxi with SD card or via network.

Regards,

Fadil Berisha

perf

Thanks for replies!

You are right, using the LCDIF block does not give much as this display is slow and require very little data. Still, I would like to implement a LCDIF driver anyway because I may need the experience later on. This will be my first Linux driver.

When I return home, I will try out the advices.
Thanks again!



andrewm37

Quote from: Fadil Berisha on September 23, 2012, 09:22:16 PM
QuoteUsing my Ubuntu laptop and Pokey/OE, I know it can be done using that tool.

I do not know how to develop a driver with ArcLinuxARM. I would very much like to know as it should be simpler than OE to use. However, I do not have an ARM based host, just the Olinuxino-Maxi.

Can it be done? Where can I find that information?

Hi perf,

You don't need ARM based host to develop software for olinuxino. Everything you can do in your Ubuntu laptop with proper cross compiler. To produce code for olinuxino needed  toolchain with ARMv5 support. Because Ubuntu has default toolchain arm-linux-gnueabi for ARMv7arm, solution is to get proper toolchain from Debian repositories. Here is how I did in my Ubuntu laptop:

Make backup of file: /etc/apt/sources.list
Create new /etc/apt/sources.list as follow:

#
# -- Emdebian cross toolchains
#
deb http://www.emdebian.org/debian squeeze main

Install Emdebian package:

sudo apt-get install emdebian-archive-keyring
sudo apt-get update
sudo apt-get install gcc-4.4-arm-linux-gnueabi

Restore your original /etc/apt/sources.list

Now you have in your Ubuntu system arm-linux-gnueabi- toolchain producing code for olinuxino. Before compiling kernel sources, export env variables:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-

You can transfer produced code to your olinuxino-maxi with SD card or via network.

Regards,

Fadil Berisha


Hello!

I cannot install the sudo apt-get install gcc-4.4-arm-linux-gnueabi that depends on cpp-4.4-arm-linux-gnueabi that depends on libgmp3c2 that cannot be installed by the packet manager. What do you recommend?

tcmichals

#20
I think this can be done using simple DIO,
http://www.st.com/st-web-ui/static/active/cn/resource/technical/document/application_note/DM00046039.pdf

I think this would be the easiest...
http://arduino.cc/en/Tutorial/LiquidCrystalDisplay
Simple 4 bit mode...
http://arduino.cc/en/Reference/LiquidCrystal
Another example using a microcontroller
http://learn.adafruit.com/adafruit-arduino-lesson-11-lcd-displays-1/parts


IMHO, just map the registers to memory mod the code from the arduino.

Also, there is buildroot, it is very small and is fast to build.  There is a default configuration for the olimex board.