Hallo,

Ik heb een loopauto van de kinderen gepimpt met een rijtje leds. Nu kunnen ze als Michael Knight door de straat crossen... :-)

Ik heb het geheel aangestuurd met een PIC16F628A en een WS2803. Voeding komt van 4 AA NiMh batterijen.

Met een drukknopje kunnen de leds worden aangezet en verschillende effecten gekozen worden. Een tijdje na de laatste druk op de knop gaat de PIC in slaap.

In slaaptoestand loopt er nog ongeveer 20 mA. Ik denk dat dit lager moet kunnen. In de datasheet van de WS2803 staat dat de standby current 1.5 mA is met de opmerking dat IREF floating is. IREF is via een 2k2 weerstand verbonden met GND en bepaalt de stroom door de leds.

Mijn vraag is hoe ik IREF floating krijg. Zou dit met een transistor of FET aan een uC output kunnen?

Alvast bedankt voor het meedenken!

De 628 heeft uit m'n hoofd 1 open collector uitgang, op RA4, als ik me niet vergis. Die is daar ideaal voor.

In de datasheet staat inderdaad dat RA4 een open drain output is, afwijkend van alle andere outputs.

Bedoel je dat ik de weerstand vanaf de IREF pin van de WS2803 niet direct aan de VSS verbind, maar via RA4 van de PIC?

Ik neem aan dat ik dan voordat ik het SLEEP commando geef, de RA4 moet veranderen in een input (high impedance)?

Waarom niet gewoon de hele voeding voor de leds en 2803 uitschakelen met een transistor? dan ben de hele stroom kwijt. De pic in slaapstand verbruikt <1mA en dan is dat alles.
Op interrupt pic aan en dan de leds weer inschakelen.

edit:

Als je helemaal ver wilt gaat kan je het ook nog zo doen:
http://www.eevblog.com/forum/suggestions/single-button-power-and-input…

Dan ben je zelfs de standby current van de micro kwijt

[Bericht gewijzigd door jeroenk50 op (34%)]

Schakel gewoon alles uit via schakelaar, dan heb je echt 0% verbruik, en is ook nog eens simpeler om te maken.

Het gaat er mij niet om dat het simpel te maken is, maar wat er schakeling- en programmeertechnisch mogelijk is.

Laat ik als uitgangspunt nemen dat alles met 1 en dezelfde druktoets bediend moet worden (aanzetten, programma kiezen, uitzetten, etc.).

Schakeling is al klaar en opgebouwd. Niet veel mogelijkheden meer om netjes een aanpassing te doen.

Ik zal eens een test doen met de IREF weerstand via RA4...

Even voor de goede orde: RA4 is een pin die als je hem op output zet, en je stuurt een nul, dan wordt de output gewoon "0V" zoals alle andere. Stuur je een "1", wordt ie "vanzelf" een input. Hoef je niet voor aan het Data Direction Register te zitten (ik weet niet meer hoe die heet op een PIC).

Wat speciaal is aan RA4 is dat je in die situatie de pin tot zo'n 12V mag laten gaan. Dat is meer dan de voeding. Dat kan bij geen andere pin.

Voor jou toepassing, waarbij de pin toch niet boven de voeding gaat, kan je dus ook een andere pin gebruiken, als je die in het "niet aan" geval dus als input programmeert.

Wel iets om op te letten is dat een digitale input meer stroom kan gebruiken dan je zou verwachten als ie niet 0V (of daar dichtbij) of 5V (of daar dichtbij) is. Pins waar je een analoge functie op kan zetten als een ADC, hebben dan vaak ook de mogelijkheid om de "digitale input" uit te zetten. Voor "zuinig" is dus het gebruik van een pin waarbij dat kan aan te raden... (of je moet weten/verwachten dat ie niet in de "trekt veel stroom" range zal gaan zitten. Maar dat verwacht ik eigenlijk juist wel... )

@rew: TRISx. Maar als je RA4 op "1" zet terwijl TRISA, 4 op '0' staat wordt die pin echt geen input, daarvoor moet je wel degelijk TRISA, 4 op '1' zetten.

verder lijkt mij de oplossing van jeroenk50 de meest elegante.

Op 16 september 2014 23:08:33 schreef jeroenk50:

Als je helemaal ver wilt gaat kan je het ook nog zo doen:
http://www.eevblog.com/forum/suggestions/single-button-power-and-input…

Dan ben je zelfs de standby current van de micro kwijt

Aha, een oplossing van "onze" good (g)old Free-E. Deze oplossing heeft hij hier ook al eens op CO-gepost als ik me goed herinner.Moet hier op de site wel ergens te vinden zijn.

[PS] Jammer dat we Free hier zelden meer zien, kon alijd ernom genieten van zijn posts.

Op 18 september 2014 22:29:35 schreef hadv:
@rew: TRISx. Maar als je RA4 op "1" zet terwijl TRISA, 4 op '0' staat wordt die pin echt geen input, daarvoor moet je wel degelijk TRISA, 4 op '1' zetten.

Wat is er dan "geen input" aan? Hij is "niet driven". En als ik het me goed herinner is bij een pic het port register altijd de "actuele waarde" van de pin, niet de waarde die je probeert te sturen.

Dus als je een output te zwaar belast, je stuurt een 1, en er loopt een grote stroom naar aarde. Dan kan het zijn dat bij teruglezen van dat port-bit je ineens een "0" ziet, terwijl hij "wanhopig" probeert een 1 te sturen.

Dus: uit dit gedrag concludeer ik dat de input-kant van een pin niet uitgeschakeld wordt als ie op output staat. Dus: Ik zie het verschil niet tussen TRISA.4 / PORTA.4 = 1/x en TRISA.4 / PORTA.4 = 0/1

(bij AVR regelt het port register de pullup als ie op input staat. Bij de pic is dat niet zo, toch?)

Gewoon met een mosfet: als de kinderen op de aanknop drukken gaat hij aan. De cpu kan hem uitschakelen. Dan loopt er echt geen stroom.

Ik heb de schakeling getest met de IREF weerstand via RA4 van de 16F628A.
Zodra RA4 een input is, daalt de opgenomen stroom naar 5,5mA.

Al een factor 4 lager.

Als ik de voeding van de WS2803 losneem is het nog maar 0,1mA.
Ik wil daarom de oplossing die jeroenk50 heeft aangedragen (orgineel van Free_Electron) ook nog gaan testen. Ik wil de onderdelen bij EOO bestellen. Ik dacht aan deze MOSFET, omdat ze de IRLML6401 niet hebben:
http://www.eoo-bv.nl/index.php?_a=viewProd&productId=9062.

Deze gaat echter maar tot 8V. Wat zijn belangrijke eigenschappen van de MOSFET, zoals deze wordt gebruikt in de voorgestelde schakeling?
http://www.eevblog.com/forum/suggestions/single-button-power-and-input….

Hetzelfde geldt voor de verkrijgbaarheid van de BAT54 diode. Mag dit ook een BAR43 zijn?