Hur många LCDs kan jag koppla till en PIC?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
miketheman
Inlägg: 2
Blev medlem: 6 mars 2007, 23:17:18
Ort: Göteborg

Hur många LCDs kan jag koppla till en PIC?

Inlägg av miketheman »

Hallå alla!

Är ny på detta forum. Skönt med ett forum som är på svenska! Jag vill passa på att be om ursäkt ifall jag (nån gång i nutiden/framtiden) uttrycker mig otydligt. Ifall ni inte förstår riktigt vad jag menar, så tveka inte att be mig omformulera frågan eller försöka beskriva problemet/frågan närmare!

Ska börja med premiärfrågan:

Hur många LCDs kan jag koppla till en och samma PIC?

Jag är svagt medveten om att vissa saker går att lösa med hjälp av multiplexers m m, men vet inte riktigt om det fungerar i det här fallet för mig.

Ska dra mitt fall lite snabbt:

Jag har 16 switchar (fotpedalsswitchar) som jag vill koppla till ett kretskort som hanterar MIDI (Musical Instruments Digital Interface). Då jag kan byta mellan 128 "program" på detta kretskort (från externt håll) så har jag möjlighet till att ändra funktion för varje switch. Lite jobbigt dock att försöka memorera vad varje switch har för funktion under varje enstaka program (16 * 128 = 2048).

Tanken är då att jag skulle ha en PIC som "lyssnar" på mitt MIDI-kretskort (alltså lyssnar efter programbyten) och som visar/uppdaterar en liten beskrivande text på en LCD vid varje switch.

Denna uppdatering av texten är ju inte något som kommer att ske för jämnan i realtid på sådant sätt att det är tidskritiskt, så jag funderar på ifall man kan lösa det med nån form av multiplexer eller liknande?

OBS, har INTE införskaffat mig nån/några LCDs än så det är ingen idé att fråga mig om specar på dem (för jag vet inte, men tar tacksamt emot förslag!!!). Har egentligen bara fått ändan ur såpass mycket att jag har införskaffat mig en pic-programmerare (Olimex / PIC-ICD2).

Har inte heller funderat eller löst allting runt omkring det hela, frågar egentligen för att försöka komma fram till ifall det går att göra detta och om det är värt att försöka sig på det.

Tack på förhand för att ni lyssnar/svarar!
Mvh Micke
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Inlägg av RasmusB »

Välkommen hit! :)

Nån form av bussprotokoll skulle nog funka galant. I2C skulle nog klara uppgiften. Du behöver då bygga en avkodare till varje displaymodul. Varje sådan har en egen adress på bussen, och sen är det upp till "huvud"-picen att skicka rätt grej till rätt adress :)

Flera PIC-processorer har dessutom inbyggt hårdvarustöd för I2C vilket underlättar.

Finns givetvis fler protokoll, men I2C är väl det bussprotokoll jag labbat mest med så jag nöjer mig med att prata om det jag kan ;)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Annars så skulle DOG displayer(t.ex. http://www.lawicel-shop.se/shop/ har dessa) som kör SPI och använda t.ex. en 4 till 16 demultiplexer 74HC154.

Då kan du hänga på 16 DOG displayer på 7 pinnar.

Edit: räknade fel på pinnarna, kräver 7 pinnar
Senast redigerad av Micke_s 7 mars 2007, 00:32:42, redigerad totalt 1 gång.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Och skulle detta inte räcka så går det använda fler 74HC154 och använda enable för välja vilken 74HC154 som gäller.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Med detta så slipper du ha avkodare vi varje display och behöver bara dra ut 6 pinnar till varje display(GND, VCC, Data, CLOCK, SELECT och RS)
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Det enda signal som behöver vara "unikt" för varje display är 'Enable', resten kan fint kopplas ihop! Här utgår jag ifrån ett HD44780-displaytyp.

Enable kan sedan gå via en 4514 (Inhibit ingången) och ut till varje display.
Mindmapper
Inlägg: 7122
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Eftersom det är fotpedaler det är frågan om så tänker jag mig att avstånden kan bli långa. I så fall är det frågan om IIC och SPI klarar det rakt av då dessa mer är tänkta för intern kommunikation i utrustningar.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

I²C vill jag definitivt avråda ifrån till detta! Det viktiga är inte nödvändigtvis antalet ledare till displayen men deras störtålighet!

Men vad är "lång avstånd"? 1m? 10m? 100m? 1Km? Det betyder ju jäkligt mycket för val av teknik.

Jag har fixat störningsfri seriell kommunikation över 650m nergrävd KULO-kabel men det var inte hur enkelt som helst!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Hur mycket info (antal tecken) behöver du visa vid varje switch ?
Jag har några 8x2 och 12x2 LCD'er som är väldigt kompakta.

Vid vilket avstånd (d.v.s LCD -> öga) ska de läsas av ? D.v.s vilken
storlek behöver du på texten för att den ska vara läsbar ?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Fördelen med SPI i detta fall är att den är enkelriktad, släng på en buffer ut på varje styrpar som går ut ur styrboxen. Vid längre avstånd så skulle en processor vid varje display och Uart över RS485 vara bättre än SPI. Men 10 meter ska inte vara några problem med SPI i lägre hastigheter.
miketheman
Inlägg: 2
Blev medlem: 6 mars 2007, 23:17:18
Ort: Göteborg

Inlägg av miketheman »

Hej igen!

Wow, vilken snabb "service". Ni är helt grymma!

Micke_S:
Vad är SPI??? Mums... DOG-displayerna är hur snygga som helst!!!

Mindmapper:
Avstånden blir inte långa (beror på definitionen på långa avstånd förstås). Allt skall byggas i ett gemensamt chassi (B: 714mm * H: 486mm) och med de switchar som det handlar om, så hamnar displayerna inom ett område på 714mm * 180mm.

Sodjan:
Antal tecken är 8 tecken minimum har inte funderat så mycket över detta än dock. Så det kan komma att ändras. Avstånd (LCD -> öga) är väl min längd antar jag... (175-180 nånting). Det finns inga plast/plexiglas displayfönsterramar som kan användas som "förstoringsglas"?, eller det kanske blir konstig förstoring?

Micke_S:
Hastigheterna är det föga imponerande 31,250 baud rate, eller vad det heter.

Tack till er alla för era kvicka svar (keep´em coming!)
/micke
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

SPI är ett seriellt synkront gränssnitt(uart är asynkront)
http://en.wikipedia.org/wiki/Serial_Per ... erface_Bus

Titta under "SPI bus: single master and three slaves" där har du något liknande det du vill bygga.

Fast med 74HC154 som expanderar antal Slave select från processorn med minimalt antal pinnar använda.
Skriv svar