Pages: [1] 2   Go Down
Author Topic: uLCD-144 4D problem with Duemilanove  (Read 2954 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
I have a uLCD-144 from 4D. It works without problems with an arduino Mega2560, but it fails with Duemilanove.
It is very simple to manage: it uses serial communication to send some specific command. For instance, to inizialize it you have to send 0x55 and it should respond with 0x06 (ACK).
I wrote a simple sketch that send 0x55 and wait for something from serial and in the mega2560 it works, but in duemilanove doesn't.
I can't understand why...

Thank you!

Andrea
Logged

Espoo, Finland
Offline Offline
God Member
*****
Karma: 7
Posts: 586
"Oops, try again..."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code...

Kari
Logged


The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry smiley

Code:
void setup()
{
   Serial.begin(9600);
   delay(1000);
   
   Serial.write(0x55);
   while(!Serial.available());
   Serial.print(Serial.read(), HEX);
}

void loop()
{
}
Logged

Espoo, Finland
Offline Offline
God Member
*****
Karma: 7
Posts: 586
"Oops, try again..."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Then it must be physical coneection problem, or broken device.

Kari
Logged


The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I agree...
but the same display works with the same code in the mega2560. And I tried it with two duemilanove and it doesn't work...

Thank you

Andrea
Logged

Espoo, Finland
Offline Offline
God Member
*****
Karma: 7
Posts: 586
"Oops, try again..."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I was talking about the Duemilanove...
 smiley-wink

It's time to check your circuit, could you show us how it is put together?

Cheers,
Kari
Logged


The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That's how I connect the display:

Display          Arduino
5 (RES)          RESET
6 (GND)          GND
7 (RX)             TX
8 (TX)             RX
9 (VIN)            +5

Thank you
Logged

Espoo, Finland
Offline Offline
God Member
*****
Karma: 7
Posts: 586
"Oops, try again..."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What comes to my mind is that your TX and RX are swapped, could it be?

Kari
Logged


The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2857
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Do you have the USB plugged in at the same time? Try disconnecting it.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
What comes to my mind is that your TX and RX are swapped, could it be?
Yes, it is right, because the display tx and rx are from "the display point of view"...

Quote
Do you have the USB plugged in at the same time? Try disconnecting it.
I tried but nothing change...
It is unbelievable!
Same code, same wiring! I just move wires from the mega to the duemilanove!

Thank guys for your time!
Logged

Espoo, Finland
Offline Offline
God Member
*****
Karma: 7
Posts: 586
"Oops, try again..."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry smiley

Code:
void setup()
{
   Serial.begin(9600);
   delay(1000);
  
   Serial.write(0x55);
   while(!Serial.available());
   Serial.print(Serial.read(), HEX);
}

void loop()
{
}


Now I must ask, what this does, and is this really everything?

Kari
« Last Edit: March 27, 2011, 01:26:50 pm by GaryP » Logged


The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In this pdf:
http://www.4dsystems.com.au/downloads/Serial-Display-Modules/uLCD-144(SGC)/Docs/uLCD-144-SGC-DS-rev1.pdf
at page 10 they said to wait up to 500ms from reset to send the autobaud command (0x55) so I wait 1s. The display waits until 5s for this command.
Then the display should answer with the ACK (0x06), so I wait for that.

Thank you
Logged

Espoo, Finland
Offline Offline
God Member
*****
Karma: 7
Posts: 586
"Oops, try again..."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That's how I connect the display:

Display          Arduino
5 (RES)          RESET
6 (GND)          GND
7 (RX)             TX
8 (TX)             RX
9 (VIN)            +5

Thank you

What pin numbers actually, in both cards, mega and duemilanove?

Kari
Logged


The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pin numbers are the same in both cards:
0 for RX
1 for TX

I can't really understand...

Thanks kari!
Logged

Western New York, USA
Offline Offline
Faraday Member
**
Karma: 36
Posts: 4322
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Which of the four USARTS in the Mega2560 are you using to communicate with your uLCD-144?  Is it the same one that is used by the bootloader to download your sketches?  In the Duemilanove there is only one USART which is used for both purposes, and therein may lie the reason for the differences in operation.

Don
Logged

Pages: [1] 2   Go Up
Jump to: