Go Down

Topic: uLCD-144 4D problem with Duemilanove (Read 3312 times) previous topic - next topic

GaryP


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

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

a.periz

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: [Select]
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...

floresta


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

a.periz

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

floresta

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

Go Up