Ik wil 15 stuks LED displays met een PIC16F628 gaan multiplexen. Het wordt me te gek om dit op een protoboardje op te gaan zetten, daarom wordt het geheel meteen op print gezet.
Dan moet e.e.a. vooraf wel theoretisch kloppen natuurlijk.
Ik wil geen flikkerende- of een te zwak oplichtende uitlezing.

De opzet zoals ik die nu in mijn hoofd heb:

- Er worden C.C. displays gebruikt.
- De PIC stuurt met portB de 7 segmenten van alle displays aan.
- PortA stuurt met 4 bits een 16-bit demultiplexer aan, die geeft via een drivertrapje stroom aan de C.C. van elke display.

De vragen:

- Hoe bereken ik de stroombegrenzingsweerstanden. Kan ik daarvoor gewoon 1/15 van de statische waarde nemen?

- Wat gebeurt er als de PIC effe iets anders moet doen. Blaas ik er dan segmenten uit?

- Kan dit op de interne oscillator (4MC), of moet ik er een 20MC-kristal tegenaan gooien?

- Gaat dit niet vreselijk HF spetteren. zo ja, wat kan ik daartegen doen?

al eens aanschuifregisters gedacht? ipv die multiplexer :)

Op 9 december 2004 19:01:35 schreef Jeroen Boere:
al eens aanschuifregisters gedacht? ipv die multiplexer :)

Kost weer tijd. :-(
Het is voor mijn CNC masjientje. De main processor heeft tussen de stappen van de stepper maar 2 ms de tijd om de XYZ-displays te updaten.
Dat trekt ie niet. daarom heb ik de 628 als coprocessor ingeschakeld. die moet dan maar voor het display-gebeuren zorgen.
Krijgt dus al een serieel gebeuren binnen die ie tussendoor moet afhandelen...

Op 9 december 2004 19:01:35 schreef Jeroen Boere:
al eens aanschuifregisters gedacht? ipv die multiplexer :)

Dat multiplexen is idd behoorlijk achterhaald. Die schuifregistertjes kosten geen drol meer.
Het scheelt je software overhead en gedoe met drivers voor hoge stromen.

Op 9 december 2004 19:11:57 schreef oorpijn:
[...]
Dat multiplexen is idd behoorlijk achterhaald. Die schuifregistertjes kosten geen drol meer.
Het scheelt je software overhead en gedoe met drivers voor hoge stromen.

Pardon? Het scheelt je wel 14 ic's en 98 weerstanden solderen en de helft aan printoppervlak. Hardwarematig is multiplexen veruit het voordeligst.

Om de vragen van de TS te beantwoorden

1. Ja, 1/15 zou je denken, maar je kunt een led met 100 mA pulsen.
2. Test en debug je schakeling met een ledstroom van 20 mA. Als het programma draait, kun je de uiteindelijke weerstanden erin zetten.
3. 4 MHz moet kunnen. Fluitje van een cent.
4. Op hobby-niveau hoef je je hier geen zorgen over te maken (EMC) en bij 4 MHz heb je sowieso nergens last van.

Je kan het multiplexen natuurlijk met interrupts afhandelen, en de rest in je mainloop van je programma. Als je dat niet doet dan ga je terwijl je iets anders doet inderdaad moeten stoppen met multiplexen, maar langs de andere kant is de kans ongelooflijk klein dat je daar ooit iets van gaat merken omdat 4MHz staat voor 1 miljoen cycles per seconde, en dat is echt wel snel genoeg :)

(Ik zou toch voor de interrupts gaan, is er namelijk geknipt voor)

[Bericht gewijzigd door jesus_ op ]

Nog even een vraagje:

Als ik de waarde van de begrenzingsweerstanden door 15 deel, dan kom ik op 33 ohm. Dat wordt dus 150 mA die de pic-pin kortstondig moet leveren.
Mag ik dat op deze manier doen? Of heb ik hiervoor ook een driver nodig?

Edit: ik zie hierboven dat ik max. 100 mA kan pulsen.
Weerstand wordt dus 47 ohm.
De vraag blijft staan.

[Bericht gewijzigd door ~Galaxy op ]

je piccie gaat dat niet redden zonder driver
een pic mag max 15mA per pin sourcen en port A en B
bij elkaar 200mA

1 pic als coprocessor, 2 drivers voor de C.C.,
1 demultiplexer, 1 driver voor de segmenten.

Begint alweer complexer te worden dan ik dacht...

Ik heb nog een stapel MM5450 liggen.
Denk dat ik die maar van stal haal, en eens moet gaan kijken of de main-processor er met een hoge clocksnelheid 102 bits binnen de 2 ms er in kan jassen.
Dan wordt het een schakeling met 3 stuks 40-pins plakken..
En.. ik moet de deur uit voor wat sil-weerstanden. De MM5450 is helaas open collector..:-(

Wie wil er 15 stuks 8x470R sil weerstanden ruilen,
tegen 50 stuks FND359 CC-displays??

[Bericht gewijzigd door ~Galaxy op ]