Sida 1 av 1

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

Postat: 6 mars 2007, 23:58:52
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

Postat: 7 mars 2007, 00:08:47
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 ;)

Postat: 7 mars 2007, 00:29:52
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

Postat: 7 mars 2007, 00:32:04
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.

Postat: 7 mars 2007, 00:36:11
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)

Postat: 7 mars 2007, 07:23:17
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.

Postat: 7 mars 2007, 09:12:43
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.

Postat: 7 mars 2007, 09:42:10
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!

Postat: 7 mars 2007, 11:09:57
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 ?

Postat: 7 mars 2007, 11:34:31
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.

Postat: 8 mars 2007, 00:35:17
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

Postat: 8 mars 2007, 01:05:01
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.