display RS485

trix

Golden Member

een goedendag,

ik ben nu bezig met een display met een hd44780 er op. maar dat kost zo veel I/O pinnen.
zijn er ook displays die je met een rs 485 kunt aansturen, zonder moeilijke ingebouwde protocollen en ander poes-pas ?

b.v. zo'n logo TDE gaat bljkbaar niet vanwege het protocol dacht ik.

eigenwijs = ook wijs

Display voorzien van een opzetprintje met I2C.
Dan heb je maar 2 I/O pinnen nodig.
Printje via Ali of zo.
Library opzoeken, aangenomen dat met een Arduino bezig bent...

Arco

Special Member

ik ben nu bezig met een display met een hd44780 er op. maar dat kost zo veel I/O pinnen.

Ach, dat valt mee. Maar 6 pinnen... ;)

zonder moeilijke ingebouwde protocollen en ander poes-pas

De 44780 interface is anders ook niet de makkelijkste...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hensz

Golden Member

Het verbaasd me dat het vaak gebeurt dat mensen klagen over de hoeveelheid I/O-pennen die ergens voor nodig zijn en dan gaan zitten 'klooien' met expanders e.d. terwijl als je een PIC/AVR c.s. neemt met meer I/O je met één chippie toch alles kunt doen. En dat dan zonder dat je een groter en ingewikkelder board moet ontwerpen en complexere software moet schrijven.

Don't Panic!
Arco

Special Member

Een 100 pins pic heb je al vanaf €2.50... ;)   (een 64 pins al vanaf €1.25)

[Bericht gewijzigd door Arco op vrijdag 13 december 2019 16:11:00 (29%)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
trix

Golden Member

ik heb een atmega 128

Op 13 december 2019 15:07:43 schreef Bratwurst:
Display voorzien van een opzetprintje met I2C.
Dan heb je maar 2 I/O pinnen nodig.

je bedoelt denk ik een I/O expander (heet dat zo ?)

Op 13 december 2019 15:34:33 schreef Arco:
Ach, dat valt mee. Maar 6 pinnen... ;)

in de 4 bits mode bedoel je denk ik, ik wou eigenlijk graag de 8 bits mode gebruiken, is simpeler.

eigenwijs = ook wijs
Arco

Special Member

De 8 bits mode wordt zelden nog gebruikt, alleen als een display direct aan een 8 bits databus hangt...
(Tussen 4 en 8 bit zit weinig verschil; je moet alleen de bytes 'in tweeen delen' en versturen.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
trix

Golden Member

ik had ergens gelezen dat het "more tricky" was, maar dat valt dus wel mee.

eigenwijs = ook wijs

Juist. De PCF8574 is een populaire I2C I/O expander bij display's. Op één expander past een display in 4 bits mode + backlight.

Het is wel zo dat gebleken is dat het verstandig is af en toe (b.v. bij user interactie) opnieuw een lcd.begin() te roepen, er valt op een termijn van dagen onder veel omstandigheden wel eens een bit om en dan stopt het met goed werken.

RS485 lijkt een wat vreemde insteek, ik zou daar pas aan denken als het display en de controller per se op andere voedingen MOETEN draaien.

trix

Golden Member

ik noemde de rs485 omdat die al aanwezig is (nu nog niet, maar later)

eigenwijs = ook wijs
McAwesome

Golden Member

Er zijn ook displays met een ingebouwde I2C-interface zoals de RC1602B5-LLH-JWV van RayStar Optronics. De displays zijn betaalbaar en je hebt geen opsteekprintje of extern IC nodig. Het aansturen is standaard met commando's zoals bij een HD44780 maar dan via I2C.

Voor RS485 kan je een opsteekprintje gebruiken zoals: https://uk.rs-online.com/web/p/display-interface-kits/8247134/ of zelf iets bouwen.

trix

Golden Member

zit er trouwens een libary voor lcd's in atmel studio 7 ?

ik ga denk ik eerst proberen om het in de 4-bits mode werkend te krijgen, dan kan ik later nog b.v. het i2c gebeuren tussen voegen.

[Bericht gewijzigd door trix op vrijdag 13 december 2019 19:13:53 (54%)

eigenwijs = ook wijs
trix

Golden Member

een vraagje:
ik zit net de datasheet van mijn display te bekijken, en ik lees dat er in de 4-bits mode gebruik moet worden gemaakt van de busy-flag.

is dat altijd zo ?

ik vraag me dat af omdat arco zij 6 pinnen nodig te hebben, maar dat worden er dan 7.

eigenwijs = ook wijs

Busy flag is niet nodig als je voldoende tijd tussen de commando's laat. Sommige commando's duren wat langer dan andere.

En als je de busyflag wil lezen dan moet je ook de r/w pin aansturen dus dat kost 2 pinnen extra.

Dit zijn die I2C opsteekprintjes:
https://www.ebay.com/itm/5-Pcs-IIC-I2C-Serial-Interface-Board-Module-F…

[Bericht gewijzigd door deKees op zaterdag 14 december 2019 17:32:56 (82%)

buckfast_beekeeper

Golden Member

Wil je custom tekens laten verschijnen heb je R/W sowieso nodig.

Opzetprintje? Waarom dan niet ineens kiezen voor een serieel display?

Ik gebruik graag LCD's van newhaven. Die hebben de standaard display groottes met een seriële aansluiting. Naar keuze RS232 (TTL), I²C en SPI. Bij RS232 maar 1 I/O nodig. Van 300Bd tot 115.2K Bd.

Van Lambiek wordt goede geuze gemaakt.
Arco

Special Member

Busyflag wordt bijna nooit gebruikt. Sommige displays ondersteunen die zelfs niet...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
trix

Golden Member

Op 14 december 2019 17:56:46 schreef buckfast_beekeeper:

Ik gebruik graag LCD's van newhaven. Die hebben de standaard display groottes met een seriële aansluiting. Naar keuze RS232 (TTL), I²C en SPI. Bij RS232 maar 1 I/O nodig. Van 300Bd tot 115.2K Bd.

dat was mijn oorspronkelijke vraag :)

onder hinweis

eigenwijs = ook wijs

Voldoet een RS232(TTL) aan de vraag?

Als je er zelf één wilt maken, hier de link
https://hobbybotics.com/projects/hobbybotics-serial-lcd-controller-v3-…

Die heb ik zelf al enkele keren gemaakt en werkt voortreffelijk.

LDmicro user.
Arco

Special Member

...onder hinweis

Zoals gezegd,

Afvragen busyflag wordt zelden gedaan, heeft weinig meerwaarde. Gewoon je aan de (datasheet) timing houden is genoeg.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 14 december 2019 19:42:59 schreef Arco:
Afvragen busyflag wordt zelden gedaan, heeft weinig meerwaarde. Gewoon je aan de (datasheet) timing houden is genoeg.

In een ander draadje heb ik gezegd dat Engels genoeg is, dat er nauwelijks relevantie informatie in het Duits is. Ich stehe korrigiert.

Afijn, de (duitse) datasheet van trix claimt dat de ausfuhrungszieten in het datanblatt alleen gelden als je naar de busy-flag kijkt, en dat ze anders wezenlijk anders zijn.

Dat is iets wat ik ook nog nooit eerder gezien heb, maargoed, ik lees ook alleen engelse datasheets. Daar ben ik nooit zoiets tegengekomen.
TS: Welk part is dit?

Arco

Special Member

Timing staat in de datasheet:

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
buckfast_beekeeper

Golden Member

Op 14 december 2019 19:42:59 schreef Arco:
[...]
Zoals gezegd,

Afvragen busyflag wordt zelden gedaan, heeft weinig meerwaarde. Gewoon je aan de (datasheet) timing houden is genoeg.

Er zijn wel wat testen rond gebeurd. Boven 10MHz zou de busy flag opvragen sneller gaan dan niet. Onder 8MHz neemt het extra tijd in beslag.

Uit de C librarie die ik gebruik. Standaard gebruik ik de busy flag een R/W wel. Zoals al aangehaald elders, wat kost enkele I/O extra nog? Enige is dan dat je de grotere pin hoeveelheden niet in DIL hebt.

#define RW_LINE_IMPLEMENTED 1 // 0 for no RW line (RW on LCD tied to ground), 1 for RW line present
#define WAIT_MODE 1 // 0=Use Delay Method Faster if running <10Mhz) // 1=Use Check Busy Flag (Faster if running >10Mhz) ***Requires RW Line***
#define DELAY_RESET 15 // in mS

Van Lambiek wordt goede geuze gemaakt.
Arco

Special Member

Een 44780 display is een character display. Vaker als een paar keer per seconde updaten is zinloos en maakt alles onleesbaar...
Tijden zijn gemiddeld 37uS, da's 25kHz... (een paar uS meer of minder merk je dan niet)

't Kost maar 1 pin extra, maar die ga ik niet opofferen voor een vrij zinloze zaak.
(busyflag kan meer problemen geven als oplossen daarbij. Zoals gezegd ondersteunt niet ieder display het)

Gewoon netjes de tijden in de tabel aanhouden, en je hebt geen problemen.
(we hebben er tienduizenden uitstaan, nooit problemen met het display)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
EricP

mét CE

Grappig... Ik heb dus ooit een libje geschreven voor die 44780. Uiteraard checked die de busy flag. Fijne daarvan is dat je helemaal niet over timing na hoeft te denken.
Tot op heden slechts 1x een display gehad wat niet wilde. Dat bleek een rotje in het display zelf te zijn - z'n broertje deed (en doet) het prima.

Ja, je kunt je aan de timing houden. Gaan kl*ten met delays enzo. Veel te veel gedoe en al helemaal niet handig als het controllertje meer moet doen dan alleen iets op een display frutten. Die paar extra I/O pinnen? Ach, die heb je tegenwoordig toch zat. En als het echt krap wordt (heel soms gebeurt dat), dan is het met een shift register ook zo opgelost - libje voor, je merkt er in code niks van. Kun je de volledige I/O met 4 pinnen doen (ok, als je met timing gaat hannessen met 3...).

(we hebben er tienduizenden uitstaan, nooit problemen met het display)

Als dat ook tienduizenden dezelfde displays zijn... Dan is dat ook niet zo raar als het eenmaal werkt :). Overigens valt het ook niet altijd op - als het 'meestal' goed gaat, zou het zomaar kunnen dat er geen klant over klaagt. Tsja... Prutswerk. Maar dat is dan ook goed genoeg, dat klopt.

Waarom het nou RS485 moet zijn? Dat is alleen maar handig als het ook wat verder weg zit - serieel op TTL of 3V3 is voor 'on board' ook uitstekend te doen. Trix, wat let je: maak een stukkie software wat die LCD controller aanstuurt en ondertussen op z'n UART luistert. Schrijf iets van een 'terminal emulatie' waarin je een wat control spul hebt zitten om bepaalde acties te doen - er is vast nog wel ergens een beschrijving van VT100 ofzo te vinden.
Nadeel daarvan is wel dat het je een UART kost (of wil je het gaan bit-bangen? :) ). Dat is voor mij doorgaans een veel groter obstakel dan een paar I/O pinnen...

buckfast_beekeeper

Golden Member

Dat de busy flag nog aanwezig is bij het gros van de display's heeft echt wel een reden. Als het zonder kan/moet hadden ze de pin al lang op de schop gezet. Zo lang newhaven de displays aanbied met busy flag, zal ik deze blijven gebruiken. Wat iemand anders doet interesseert me dan heel matig.

Van Lambiek wordt goede geuze gemaakt.