Ok, een lastig probleempje,

Ik heb een rgb / temperatuur indicator gebouwd, schema lijkt op die van deze site (dit is een RGB controller)
http://home.versatel.nl/edithenwilliam/william/rgbled.htm
(Site van willie worteltje?)

Ik heb e.e.a. iets uitgebreid, nu met een USB to RS232 controller.
zie mijn log: http://ezwolle.blogspot.com/2005/07/usb-rgb-temperature-indicator.html

Raar probleem doet zich voor, wanneer ik de spanning van de controller af haal, en de boel aansluit op usb begint de pic te draaien, en de led te knipperen ed.
Dit is vreemd, de usb controller is met zijn bus spanning los gekoppeld van de Pic. Alleen op de Tx lijn van de CP2102 staat spanning, en het lijkt erop dat de PIC, via interne weak-pullup de spanning betrekt uit de Tx lijn van de cp2102.
Resultaat USB controller wordt warm, en het hoort gewoon niet.
Maar: ik kan in het programma van william http://home.versatel.nl/edithenwilliam/william/rgbled/rgb.asm nergens vinden dat hij in het OPTION_reg bit7 cleared, deze is verantwoordelijk voor de pullup op PortB.
Bij powerup is deze ge-set wat inhoudt dat de pullup gedisabled is.
Graag hersenspinsels.....

Dat heet parasitair voeden. Als er op een van de I/O pinnetjes spanning staat zal je PIC opstarten en op die manier gevoed. Dat gaat via de beveiligingsdiodes op de I/O pinnen. Die kunnen echter geen 200 mA aan, dus als je uitgangen belast stort de spanning in en krijg je vaak vreemd gedrag. Ik denk dat de lijn trouwens als input geconfigureerd moet zijn maar heb dat nooit getest. Mijn logic analyser had het zelfde probleem: via de datalijnen probeerde hij op te starten.
Een PIC is trouwens niet de enige chip met dit probleem.

Ja inderdaad, ik heb er eens over nagedacht hoe je dat simpel kan oplossen maar zo simpel gaat dat niet echt, behalve optocouplers. Maar dan heb je alweer paar componenten extra

Als je de CP2102 ziet, dan weet je gelijk dat extra componenten niet erg chique zijn om dit probleem op te lossen. In dat ding is alles geïntegreerd.
Er moet een andere oplossing zijn, ik doe in mijn schema totaal nix raars denk ik, dit moet dus een veel voorkomend dillemma zijn, wat wel vaker door ontwerpers moet worden getackled.

Op 28 juli 2005 09:27:25 schreef Evilest Aedolon:
Ja inderdaad, ik heb er eens over nagedacht hoe je dat simpel kan oplossen maar zo simpel gaat dat niet echt

Wat dacht je van een serieweerstand tussen de RS-232 bron en de PIC (bv 1k..10k), plus een lastweerstand over de PIC voeding (bv 100 Ohm => 50 mA nullaststroom).

heb ik ook wel aan zitten denken, ik ga het zowiezo proberen.
Ik zal ook eens kijken hoe de boel werkt wanneer ik de USB controller niet bus-powered maar op de voedingslijn van de PIC configureer.
Dan moet ik alleen de regin (pin7 d8 ik) van de CP2102 aan de 5volt lijn hangen.
als dat werkt ben ik blij.
Nou ja, wel een nieuwe print te maken dan....

Op 28 juli 2005 21:48:44 schreef Wouter van Ooijen:
[...]

Wat dacht je van een serieweerstand tussen de RS-232 bron en de PIC (bv 1k..10k), plus een lastweerstand over de PIC voeding (bv 100 Ohm => 50 mA nullaststroom).

Ja, dat is wel 'simpel' maar niet erg netjes. Ik hou niet zo van serieweerstanden naar een ingang toe waar data snel kan worden toegevoerd (filtereffect met ingangscapaciteit)
Maar het werkt ongetwijfeld wel!
Die 50mA is wel niet netjes als je het boeltje voedt met een 78L05.
Wat is er mis met optocouplers trouwens? heb je meteen ook een galvanische scheiding tussen je PC.

is niet netjes, maar als een serie weerstand werkt, dan is het voor mij afdoende.
die nullast weerstand laat ik achterwege, e.e.a. is batterij gevoed.
Optocouplers zijn opzich ok, maar 3x zo groot als de usb controller zelf..

Iemand overigens een idee of het zou werken wanneer ik de USB-buspowered configuratie omgooi naar gevoed door de rest van de schakeling. dit zou wel eens de enige echt
correcte oplossing kunnen zijn. Maar dan moet ik de print modificeren.
Als die serie weerstanden werken dan is het voor dit project afdoende, en zal ik er in de volgende rekening mee moeten houden...

je voedt via de protectiedioden van de pic

zet twee mossen als buffer op de lijn. probleem weg

2n7002 of bs170 en consoorten

drains aan grond
source mos 1 via 1k naar voeding cp2101
source mos 2 via 1k naar voeding pic

gate mos 1 naar uittgang cp2101
gate mos 2 naar knoop source1-1k
ingang pic naar knoop source2-1k

je hebt dan een dubbele invertor.
de gates laten geen stroom door.

2 FETs vond ik ook niet erg netjes.

ééntje kan en inverteren in software?

Op 28 juli 2005 22:25:12 schreef Evilest Aedolon:
[...]
Ja, dat is wel 'simpel' maar niet erg netjes. Ik hou niet zo van serieweerstanden naar een ingang toe waar data snel kan worden toegevoerd (filtereffect met ingangscapaciteit)

Dat moet je even doorrekenen, hangt van de baudrate af.

Die 50mA is wel niet netjes als je het boeltje voedt met een 78L05.

Ook dat hangt er natuurlijk weer van af wat je belangrijk vindt. Hangt ook af van die serieweerstand.

Wat is er mis met optocouplers trouwens? heb je meteen ook een galvanische scheiding tussen je PC.

nix, maar is wel iets duurder (zeker bij hogere baudrates) (en meer PCB oppervlak) dan twee weerstanden.

Okay, ik hoor mooie dingen voorbij komen....
Maar ff de truuk uitgehaald met de serie weerstand.
Het werkt....
4k7 er tussen, nix rekenen gewoon proberen, for now, in dit project probleem opgelost.
Maar de toekomst, hoe dit de volgende keer doen.
De CP2102 aan voeding hangen ipv bus-powered?
Of de Fet oplossing van Free-electron. (heb je een schetsje van hoe en wat?)
(is het overigens niet een tikkie lullig dat je deze trucks überhaupt moet uithalen? ie. hadden ze in de ontwerpfase van deze microcontroller hier niet ff rekening mee kunnen houden?)

Op 28 juli 2005 23:17:32 schreef erwinz:
hadden ze in de ontwerpfase van deze microcontroller hier niet ff rekening mee kunnen houden?)

Had jij er in je ontwerpfase niet even rekening mee kunnen houden :) Dit is een bekend fenomeen bij bijna alle CMOS schakelingen.

Ja Wouter, het is wellicht wel een mooi kip/ei vraagstuk,
ik (kip) had er aan moeten denken, gegeven dat ik met een bestaande technologie (ei) aan het werk ben gegaan (de 16F628a), maar ja iedereen leert he...

Dat een microcontroller op deze manier reageert heb ik niet voorzien, en het lijkt me in ontwerp van de controller op te lossen.

Wel had ik de gedachte dat het op te lossen was door het uitschakelen van de weak pullups. (ik dacht, die staan aan..)
Maar die zijn bij powerup gedisabled, en in de software worden ze ook niet geset (of eigenlijk gecleared in het option register).
Dat dit door diodes op de I/O lijn werd veroorzaakt kwam niet in me op bij het doornemen van het poortschema in de datasheet.

Op 28 juli 2005 23:37:21 schreef Wouter van Ooijen:
[...]

Had jij er in je ontwerpfase niet even rekening mee kunnen houden :) Dit is een bekend fenomeen bij bijna alle CMOS schakelingen.

hum nee, de analoge schakelaar 4016 heeft op zijn analoge ingangen geen protectie diodes, staat in de datasheet!

Op 29 juli 2005 06:28:01 schreef Bertrix:
[...]

hum nee, de analoge schakelaar 4016 heeft op zijn analoge ingangen geen protectie diodes, staat in de datasheet!

1 tegenvoorbeeld lijkt me geen echte falsificatie van de claim 'bijna alle'.

ow ik had slecht gelezen, ik dacht dat er stond alle

Dat is mooi dat het gelukt is.

Op 28 juli 2005 23:17:32 schreef erwinz:
...
ie. hadden ze in de ontwerpfase van deze microcontroller hier niet ff rekening mee kunnen houden?)

Dat hebben ze ook. Nu gaat ie tenminste niet stuk als je een te hoge spanning op een ingang zet of een negatieve spanning. Het heeft dus meer voor dan nadelen.

Ik begrijp dat ik wat kort door de bocht ga als ik zeg dat ze hier met het ontwerp rekening mee hadden kunnen houden.
Dit hebben ze waarschijnlijk ook gedaan en na zorgvuldige afweging is er gekozen voor de beveiliging van de i/o pin.

Dit probleem ontstaat ook alleen wanneer je te maken hebt met twee voedingen, nu nl. de USB lijn en de voedingslijn van de schakeling.

Overigens zijn jullie het er mee eens dat wanneer ik de 5 volt lijn van de schakeling op de RegIn pin 7 van de usb controller had aangesloten(dus niet samen met pin 8 aan de USB), dat dit A. goed werkt, en B. ik dit probleem dus niet heb.