Pages: 1 [2]   Go Down
Author Topic: uLCD-144 4D problem with Duemilanove  (Read 3065 times)
0 Members and 1 Guest are viewing this topic.
Espoo, Finland
Offline Offline
God Member
*****
Karma: 7
Posts: 586
"Oops, try again..."
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

If the pins are the same, then it is the same USART, is it?

What is not clear, is that are you monitoring this information on the IDE's serial monitor? Or how do you tell that serial port is receiving that data?

I mean, you cannot use this only serial port for LCD and monitoring at the same time, are you sure you use the same code? Something is missing here...

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

Yes, the USART is the same.
Yes, I am using the IDE's serial monitor to look for the answer...

I have just tried to remove the atmega328p from the duemilanove and build an easy circuit on a breadboard with this code:
Code:
void setup()
{
   pinMode(13, OUTPUT);
      digitalWrite(13, HIGH); 
  delay(300);     
  digitalWrite(13, LOW); 
  delay(300); 
 
    Serial.begin(9600);
    delay(500);
    Serial.write(0x55);
    while(!Serial.available());
   

}

void loop()
{
    digitalWrite(13, HIGH);
  delay(1000);             
  digitalWrite(13, LOW);
  delay(1000);           
}

so if it works the led connected to pin 13 should blink...but nothing...
Logged

Western New York, USA
Offline Offline
Faraday Member
**
Karma: 39
Posts: 4389
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
Did you read the material that follows the information that you have mentioned?  It gives a possible reason for the auto-baud routine to fail and it tells how the display will react if the routine fails.  How does your display react?

Don
Logged

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

I read it...it tells to be sure that the tx line is high in the beginning. Hence, I also tried to force the tx pin high (digitalWrite(1, HIGH)), but nothing..
Where are you reading in the document?

The display doesn't display anything and this is good because it means that it received the auto-baud command, but in I try to send other command to draw something, nothing happend..

Thank for your time!

Andrea
Logged

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

Quote
The display doesn't display anything and this is good because it means that it received the auto-baud command ...
And -- since you are not receiving anything and since it does not respond to your subsequent commands it means that you are not communicating.  So it appears that the display thinks it received an auto-baud command, but it also appears that it is different from the one that you sent - exactly as the data sheet said might happen.

Quote
I read it...it tells to be sure that the tx line is high in the beginning. Hence, I also tried to force the tx pin high (digitalWrite(1, HIGH)), but nothing..
It looks like this is the part that you have to work on.  You may not be getting the line high within the 100 mS window that they give you.  

Are you using the 4Display shield?  It's schematic shows a connection to the reset line of the display which can be controlled by the Arduino.  You could implement this line even without the shield and try keeping the display reset until you have time to drive the Tx line high.


Don
Logged

Pages: 1 [2]   Go Up
Jump to: