Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[EL]63 bits apart opslaan

Pagina: 1
Acties:

  • tomvleeuwen
  • Registratie: Mei 2002
  • Laatst online: 26-08-2024
Ik wil met een microcontroller (AT90S8535) 63 LED'jes aansturen. Het probleem is dat ik niet zoveel output bits heb en al helemaal niet vrij...
Nu dacht ik het zo op te lossen:
Twee 6 bits demultiplexers gebruiken om alle LED's apart aan en uit te kunnen zetten.
Alleen nu zit ik met het probleem: Hoe regel ik dat de LED's aan blijven als ze een puls krijgen en weer uit gaan met een andere puls?
Of is er een betere oplossing om vrij simpel veel LED's aan te sturen?

Online LED calculator


Verwijderd

nand poortjes gebruiken?

Het aantal Io poorten wordt dan wel verdubbeld. Ivm met de reset ingang.

  • tomvleeuwen
  • Registratie: Mei 2002
  • Laatst online: 26-08-2024
Da's toch deze:
A | B | X
----------
H | H | L
H | L | H
L | H | H
L | L | H
Hoe krijg ik hem dan ooit uit?

Online LED calculator


Verwijderd

Met de reset 8)7

  • tomvleeuwen
  • Registratie: Mei 2002
  • Laatst online: 26-08-2024
Ik ken trouwens wel een schema met een AND, OR en INVERTOR, maar ik wil het eigenlijk in 1 IC's omdat ik anders helemaal veel IC's krijg (het zijn er 63 en 4 poortjes op een IC betekent 16*3 = 48 IC's en dat vind ik een beetje te veel)

Online LED calculator


  • tomvleeuwen
  • Registratie: Mei 2002
  • Laatst online: 26-08-2024
Reset? Die zit er toch helemaal niet op?
Sorry maar ik snap niet helemaal wat je bedoeld, Zou je een klein schema'tje voor me willen maken?

[ Voor 16% gewijzigd door tomvleeuwen op 20-12-2002 16:53 ]

Online LED calculator


Verwijderd

http://home.wanadoo.nl/electro1/avr/til311.htm
http://www.woe.onlinehome.de/e_led.htm

Zoiets ?

Serieel bitjes zenden, decoderen en de uitvoer naar een Led-matrix gooien... :)
The external reset of the 8535 can be connected to Vcc or maybe pulled high with a resistor between the values of 100 -500K ohms and switched low to cause a Reset to occur. Do not leave this pin open, the chip may not respond as expected.
Source: Embedded Microcontroller - ECT 252 Class Notes.doc / Atmel AT90S8535/LS8535 Summary.pdf

[ Voor 113% gewijzigd door Verwijderd op 20-12-2002 17:20 ]


Verwijderd

Als je een btje proggen kan, kun je het HEEL goedkoop en simpel oplossen: je sluit op een AVR poort 8 LEDs aan (b.v. op PORTB), en de "algemene" kant schakel je in- en uit met een pin op een andere poort (b.v. pin0 op PORTC). Achter die 8 LEDs plaats je er nog eens 8 LEDs, ook allemaal op PORTB. De algemene van die 8 LEDs schakel je weer met pin1 van PORTC. enz enz.

Nu kun je elke serie van 8 LEDs aansturen door binair op PORT B te proggen welke LEDs aan en uit moeten, en daarna de "rij" aan te schakelen door en pin op PORTC in te schakelen.

Hiermee brand er dus altijd maar een serie van 8 LEDs uit de totale 64. Wil je ze allemaal kunnen laten branden, dan "doorloop" je alle LED-rijen op b.v. 100Hz! Dus je atmel moet dan 8 bytes in zijn geheugen hebben die de stand van elke LED weergeeft, je progged een timer op 1000Hz, daarna op elke timer interrupt gooi je één van de bytes op PORTB, en enable je het PORTC bitje wat bij die rij hoort.

Hierdoor zal elke LED welliswaar maar 1/8 van de tijd branden, maar als je er meer stroom doorheen stuurt (dat mag als je een LED pulserend gebruikt), dan is de lichtopbrengst bijna gelijk aan continu branden.

Dit systeem wordt ook vaak gebruikt in matrixdisplays...

EDIT

Wat ook kan is een serie shifters achter elkaar zetten, b.v. de 74HCT595 is errug geschikt hiervoor. Dan kun je zoveel LEDs als je wilt sturen met 3 lijntjes van je controller! Je shift dan de bitjes de shifters in met een data en clock lijn, je kunt de shifters onderling "doorlussen" zodat er een soort 64 bits shifter ontstaat >:)

Het leuke van de HCT595 is, dat deze ook een latch achter de shifter heeft zitten. Je kunt dus op de gemakkie alles inshiften zonder dat je de LEDs al ziet flitsen.... Pas als je alle 64 bits hebt ingeshift geef je met de 3e lijn een strobe clock zodat alle 64 bits in één klap op de uitgangen (en dus de LEDs) verschijnen >:)

Heb hier nog ergens een 32 LED-printje liggen die precies dat doet... Als ik vandaag tijd heb schiet ik er wel ff een pic van >:)

[ Voor 28% gewijzigd door Verwijderd op 21-12-2002 09:51 ]


  • Lone Gunman
  • Registratie: Juni 1999
  • Niet online
k heb hier een tijd terug eens een ledbar gebouwd met die 74hct595 ic's maar dan met een pic.

op die manier (dus met 74hct595 shiftregistertjes) kun je zoveel ledjes aansturen als je wilt en je hebt maar 3 pinnetjes nodig op je mcu om het geheel aan te sturen.

pwm op de leds werkt dan ook prima, t dingetje wat ik gebouwd heb stuurt 64 leds aan met 6 bits pwm (64 intensiteitniveau's van 0 t/m 100%) voor elke led.

Experience has taught me that interest begets expectation, and expectation begets disappointment, so the key to avoiding disappointment is to avoid interest.


Verwijderd

Lone Gunman schreef op 21 december 2002 @ 18:20:
k heb hier een tijd terug eens een ledbar gebouwd met die 74hct595 ic's maar dan met een pic.

op die manier (dus met 74hct595 shiftregistertjes) kun je zoveel ledjes aansturen als je wilt en je hebt maar 3 pinnetjes nodig op je mcu om het geheel aan te sturen.

pwm op de leds werkt dan ook prima, t dingetje wat ik gebouwd heb stuurt 64 leds aan met 6 bits pwm (64 intensiteitniveau's van 0 t/m 100%) voor elke led.
Hmmm dan moet je rap klokken.... 64 leds dat is 130 pulsen per outputslag, dat minmaal 50x per seconde = 6500 kloks per seconde, dan nog uitsmeren over 64 intensiteiten is 416KHz.... Dat trekt een PICcie op zijn tenen nog maar net denk ik :D

Hoe bereken je dan de PWM waardes? Oftewel: hoe weet de PIC wanneer welke LED aan of uit moet voor zijn intenstiteit??

[ Voor 9% gewijzigd door Verwijderd op 21-12-2002 23:06 ]


  • Lone Gunman
  • Registratie: Juni 1999
  • Niet online
k gebruik een 8 bit timer, die is geprescaled op 1:4, dus iedere 1024 cycles een overflow.

de pic loopt op 5 mhz, dus 5000000 / 1024 cycles = +- 4882 overflows (ticks) per seconde.
een complete pwm cycle heeft 64 ticks nodig, dus 4882 / 64 = +- 76 hz.

en je moet minder dan 1024 cycles gebruiken om alle leds aan de shiftregisters goed aan of uit te zetten... mn vrij simpele algoritme heeft 8 cycles nodig per led (om te bepalen of de betreffende led aan of uit moet) en dan nog een marge erbij voor het clocken van de outputlatch op de srg's/aanroep isr/uitlezen van ontvangen data via rs232 (ongeveer 20 cycles)

(1024 cycles - 20 cycles overhead) / 8 cycles per led = +- 125 leds.

en er hangen er maar 64 aan... ongeveer 50% usage dus ;)
maar k kan beter de timer gaan preloaden, zodat ie vaker update (90 hz ofzo)... want die usage mag best wat hoger zijn :)

k wil eik binnenkort t projectje eens afmaken... that is printjes etsen, mn chieftec kast verneuken (k heb 2,5 * 5 mm ledjes zodat ik 2 rijen van 32 leds precies in de spleten voorop de kast kan plaatsen) en dan een fatsoenlijk pc progseltje schrijven om het geheel aan te sturen.

als het zover is zet ik alles wel online, waarschijnlijk incl source code etc...

als je een mcu met meer pinnen hebt kan je trouwens beter 8 port buffers met outputlatch pakken, en dan een adresdecoder gebruiken die je aan de chip selects vam de buffers hangt... minder uitbreidbaar dan shiftregisters maar wel stukken sneller en beter geschikt voor pwm.

[ Voor 17% gewijzigd door Lone Gunman op 22-12-2002 00:21 ]

Experience has taught me that interest begets expectation, and expectation begets disappointment, so the key to avoiding disappointment is to avoid interest.


Verwijderd

Lone Gunman schreef op 22 December 2002 @ 00:09:
*KNIP*
als je een mcu met meer pinnen hebt kan je trouwens beter 8 port buffers met outputlatch pakken, en dan een adresdecoder gebruiken die je aan de chip selects vam de buffers hangt... minder uitbreidbaar dan shiftregisters maar wel stukken sneller en beter geschikt voor pwm.
Klinkt goed! :D

Die laatste optie is sneller, maar vergeet niet de extra dradenbende :D

  • Lone Gunman
  • Registratie: Juni 1999
  • Niet online
och, wie soldeert er nou nog op experimenteerprintjes ? ;)

Experience has taught me that interest begets expectation, and expectation begets disappointment, so the key to avoiding disappointment is to avoid interest.

Pagina: 1