Ik heb hier zo een Matrix Orbital LCD liggen met seriële aansturing. Heeft vroeger op de pc gehangen maar nu gebruik ik het niet meer.
Graag had dit aangestuurd via een AVR.
Heeft iemand wat informatie hoe hiermee te beginnen?
Ben helemaal nieuw op µC gebied.
Zou het met een ATmega8 al lukken?
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Aanstuurbaar met RS232? Geen probleem met een ATmega8. Ook met I2C lukt dat wel. USB is ofwel moeilijk, ofwel niet te doen.
MJa ik heb hier een rs232 display liggen, dus vandaar rs232.
het moet over een afstandje gaan, daarom laat ik I2C liever links liggen. (In elektor stond althans een mooie print voor I2C). We hebben het hier over een paar meter dus dacht dat rs232 hier beter voor geschikt was.
Iemand iets om me op weg te helpen. (Met WinAVR?)
plantrekker
True story bro!
Aan het UART gedeelte in de datasheet van de ATmega8, zal je veel hebben. Steeds met basisvoorbeelden in asm en c, echt niet moeilijk.
Edit: Owja als je nog niet vertrouwd bent met uC is dit misschien ook wel handig. Om TTL-niveaus om te zetten naar rs232-niveaus (en omgekeerd), gebruik je een max232 als je de uC op 5v laat werken en een max3232 voor 3,3v.
[Bericht gewijzigd door plantrekker op (46%)]
Mr. Digital
slimme mensen vinden oplossingen, genieën vinden problemen.
Hou er wel rekening mee dat je een extern kristal zal moeten gebruiken omdat de interne een te grote tolerantie heeft.
Een klein voorbeeldje (voor een ATtiny2313):
edit: (code tags)
void InitUART(unsigned char baudrate)
{
/*Baudrate <> UBRRL value when using a 3.6846MHz crystal*/
//2400 > 95
//4800 > 47
//9600 > 23
//14.4K > 15
//19.2K > 11
/* Set the baud rate */
UBRRL = baudrate;
/* Enable UART receiver and transmitter */
UCSRB = (1 << RXEN) | (1 << TXEN);
/* set to 8 data bits, 1 stop bit */
UCSRC = (1 << UCSZ1) | (1 << UCSZ0);
}
void sendString( char *data )
{
while ((*data != '\0'))
{
while (!(UCSRA & (1 <<UDRE)));
UDR = *data;
data++;
}
}
succes !