Ik weet dat het niet netjes is, maar is het ook onmogelijk?

Ik wil een 595 schuifregister op 5V aansturen door een ESP32 die op 3V3 werkt. De pennen van de ESP32 hangen alleen aan (hoogomige) ingangen van het schuifregister.
Het schuifregister pikt signalen van 3V3 wel, maar kan de ESP32 kapot gaan door de 5V die misschien indirect op de ingangspinnen staat?

Er is behoorlijk ruimte gebrek in de huidige situatie. Er is geen ruimte voor extra weerstanden of andere componenten - de print is vol en de behuizing klein. De 595 op 3V3 laten draaien kan, maar dan moet er nog een 5 naar 3V3 regelaar bij, waar ik ook amper tot geen ruimte voor heb. Vandaar deze speciale vraag :)

Is het voor jezelf, dan kan het net.
Is het voor de verkoop, begin dan maar helemaal opnieuw.
.
De eenvoudigste 5->3,3V regelaar is een siliciumdiode of een rood ledje.
Waarom laat je de 595 niet draaien op de voeding van de ESP32?

[Bericht gewijzigd door ohm pi op (16%)]

Dank voor je snelle reactie en de tips!
Gek, maar toen ik de vraag had gesteld dacht ik ook aan de voeding van de ESP32. Gezien ik een module gebruik, met regelaar aan boord, moest ik even opzoeken of deze voldoende stroom kan leveren voor de LEDdisplays die aan de 595's hangen. Uitkomst: gemakkelijk.

Probleem opgelost :)

Leuk om te weten dat het volgens jou net kan. Nét, want je raad het af voor professionele doeleinden. Waar zit dat 'm in?

Hangt ervan af welke 595. Een HC595 kan net niet, een HCT595 moet geen probleem zijn.

Schakelpunten voor HCT zijn:
- < 0.8 is Low
- > 2.0 is High
Dus geen probleem voor een ESP32.

Als ik naar deze datasheet kijk https://www.ti.com/lit/ds/symlink/sn74hc595.pdf dan is de input high voltage bij een voedingsspanning van 4,5V 3,15V. Bij een voedingsspanning van 5V wordt dat 3,5V naar mijn vrije extrapolatie.
Zelf zeg je dat het werkt, maar je zit echt op de grenzen van de spec.
In het Fries is 'Het ken net' Het kan niet.
In het Hollands is 'Het ken net' Het kan wel.
Mooi dat het werkt.

Klopt, maar dat is dan ook een HC versie. De HCT versie heeft heel andere spanningen.

De andere kant op (5V naar 3V3) kun je voor niet super snelle signalen vaak nog wegkomen met een enkele serieweerstand van 4k7 tot 100k: de input clamp dioden in het 3V3 circuit houden de spanning in toom, de weerstand de stroom.
Niet heel netjes (een 'echte' spanningsdeler is netter) maar wel heel betrouwbaar; werkt probleemloos met 115k2 seriele data :7 .
Desgewenst ff checken met de datasheet voor de maximale clamp stroom en de weerstand daarop aanpassen.

De 74LVC595 is tot 5.5v tolerant op zijn inputs, ook bij 3.3v voeding...

Gewoon voor thuis:

een 74HC595 gevoed met 5.0V herkent minder dan 1.5V officieel als 0: Gaat prima. Meer dan 3.5V herkent ie gegarandeerd als 1, dat gaat officieel net niet.

In de praktijk ligt het omslagpunt tussen 0 en 1 echter rond de 2.5V, zeg tussen de 2.3 en de 2.7V. Dus 3.3V ziet ie heus wel als "1". Bedenk dat het een digitale chip is. Intern "ziet" ie altijd OF een nul OF een één. Nooit "niet gedefinieerd, ik doe maar alsof ie niet veranderd is" of zoiets. Er is altijd een omslagpunt, maar officieel ligt dat punt dus tussen de 1.5 en de 3.5 (i.e. 1.51 of 3.49 zou allebij kunnen, dan voldoet de chip aan de specs), maar in de praktijk vrijwel altijd VEEL dichter bij het midden van de 1.5-3.5 range.

Die 3.5 en 1.5V grenzen zijn officieel 30 en 70% van de VCC. Dus voed je met een 5.3V (veel USB chargers mikken op 5.3 onbelast), dan zit je al weer trickier.

Maar goed. Als je een 74HCT595 neemt, dan hebben ze een beetje zitten truken om het omslagpunt ruimschoots onder de 2V te krijgen en dan werkt het gewoon gegarandeerd.

Als je aan het vragen bent naar "officieel"... Dan kan je met een 595 niet of nauwelijks een ledje sturen. Dit vooral als je uitgaat van 20mA per ledje. Als je ledjes (veel) minder nodig hebben dan kan het wel.

Hmm. Ik lijk weer te zijn gaan typen voorat ik goed gelezen had....

Een input van een 5V chip kan NIET de output beschadigen ook al is dat een 3.3V chip.

Als je leds het op 3.3V doen, dan is inderdaad een 595 die op 3.3V draait de allermakkelijkste oplossing. Omdat WIFI-chips vaak nogal powerhungry zijn, zijn de 3.3V voedingen op de bordjes vaak ruimschoots overbemeten. Dus zoals je al zelf ziet: aansluiten op de 3.3V out van het bordje zal geen probleem zijn.

[Bericht gewijzigd door rew op (16%)]

"Inofficieel" kun je een ESP32 op de GPIO's 5V aanbieden. Zie bv. hier: https://hackaday.com/2016/07/28/ask-hackaday-is-the-esp8266-5v-toleran…
De datasheet vermeldt dit niet, maar blijkbaar is er bij Espressif wel degelijk rekening gehouden met 'ongelukjes' in ontwerp.

De nette aanpak is natuurlijk om gewoon alles binnen Vcc + 0.3V te houden.

PS: echt geen plek voor een paar SMD weerstandjes hier en daar? Die zijn vaak nog wel op een bestaande print te proppen.

Dank allen voor de uitgebreide toelichtingen uit ervaring dan wel van theoretische aard!

Ik had specifieker moeten zijn. Het betreft een 74HC595

Op 3 januari 2024 23:30:59 schreef ohm pi:
...3,15V. Bij een voedingsspanning van 5V wordt dat 3,5V naar mijn vrije extrapolatie.
Zelf zeg je dat het werkt, maar je zit echt op de grenzen van de spec.

Zelf was ik op 3,15V blijven steken, maar je hebt natuurlijk gelijk! Dit wordt meer dan 3,3V.

Mooi dat het werkt.

Ik zit puur in de ontwerp fase. Ik ga pas bouwen als ik alles rond heb, dus ik kan ook nog alle kanten op. Ik had het theoretisch benaderd.


Op 4 januari 2024 09:31:24 schreef rew:
Gewoon voor thuis:

een 74HC595 gevoed met 5.0V herkent minder dan 1.5V officieel als 0: Gaat prima. Meer dan 3.5V herkent ie gegarandeerd als 1, dat gaat officieel net niet.

In de praktijk ligt het omslagpunt tussen 0 en 1 echter rond de 2.5V, zeg tussen de 2.3 en de 2.7V. Dus 3.3V ziet ie heus wel als "1". Bedenk dat het een digitale chip is. Intern "ziet" ie altijd OF een nul OF een één. Nooit "niet gedefinieerd, ik doe maar alsof ie niet veranderd is" of zoiets. Er is altijd een omslagpunt, maar officieel ligt dat punt dus tussen de 1.5 en de 3.5 (i.e. 1.51 of 3.49 zou allebij kunnen, dan voldoet de chip aan de specs), maar in de praktijk vrijwel altijd VEEL dichter bij het midden van de 1.5-3.5 range.

Die 3.5 en 1.5V grenzen zijn officieel 30 en 70% van de VCC. Dus voed je met een 5.3V (veel USB chargers mikken op 5.3 onbelast), dan zit je al weer trickier.

Maar goed. Als je een 74HCT595 neemt, dan hebben ze een beetje zitten truken om het omslagpunt ruimschoots onder de 2V te krijgen en dan werkt het gewoon gegarandeerd.

Dank voor deze prachtige uitleg! Het staat mijn 'fout', om bij 3,15V te blijven hangen wat een '1' wordt, bij. Een omslagpunt rond de 2,5V is zomaar zo'n 'gevoelswaarde'. Als het er maar goed boven de helft zit, zal ie het wel als 1 zien. Ik ben blij verrast dat je mijn gevoel kan bevestigen met een goede onderbouwing! Dank :)

Als je aan het vragen bent naar "officieel"... Dan kan je met een 595 niet of nauwelijks een ledje sturen. Dit vooral als je uitgaat van 20mA per ledje. Als je ledjes (veel) minder nodig hebben dan kan het wel.

Daar kwam ik ook achter. In eerste instantie 6mA volgens de datasheet. Of dat zowel bij 5V als 3V3 is, moest ik nog naar kijken. Mijn vermoedde is bij de hoogste voedingsspanning 1,33mA per Volt voedingsspanning. Dus een reden om toch aan 5V te gaan denken.

Hmm. Ik lijk weer te zijn gaan typen voordat ik goed gelezen had....

Een input van een 5V chip kan NIET de output beschadigen ook al is dat een 3.3V chip.

Nice! Goed om te weten.

Als je leds het op 3.3V doen, dan is inderdaad een 595 die op 3.3V draait de allermakkelijkste oplossing. Omdat WIFI-chips vaak nogal powerhungry zijn, zijn de 3.3V voedingen op de bordjes vaak ruimschoots overbemeten. Dus zoals je al zelf ziet: aansluiten op de 3.3V out van het bordje zal geen probleem zijn.

Ja, er zit een regulator aan boord van 2A continu. Echter is er een spoel zonder type te noemen in de uitgang opgenomen die op de print een 0603 afmeting lijkt te hebben. Vergelijkbare spoelen van 2.2uH kunnen een stroom van 750mA leveren. 500mA aanhouden is dan veilig naar mijn idee. Echter, het display wat 16 LED's telt, op 6mA per LED, blijft aanzienlijk onder de 500mA :)


@knutselding
Dank voor de link. Het oogt tricky maar ook interessant om gewoon eens ter kennis te nemen.

Helaas is er geen ruimte voor een paar weerstandjes. De weerstandjes zelf zijn dan nog niet het probleem, maar wel de sporen die daar heen moeten op een andere manier die wel meer ruimte innemen.

Op 4 januari 2024 20:49:49 schreef OPTOdesign:

Helaas is er geen ruimte voor een paar weerstandjes. De weerstandjes zelf zijn dan nog niet het probleem, maar wel de sporen die daar heen moeten op een andere manier die wel meer ruimte innemen.

Ook geen SMD'tjes meteen naast de IC of connector pootjes ?

Meestal is er nog wel ruimte te vinden voor een weerstandje hier of daar. Echter is dit een speciaal geval. Eigenlijk is de behuizing te klein, en daarmee de print. Maar het oog wil ook wat.

Op 4 januari 2024 20:03:19 schreef knutselding:
"Inofficieel" kun je een ESP32 op de GPIO's 5V aanbieden. Zie bv. hier: https://hackaday.com/2016/07/28/ask-hackaday-is-the-esp8266-5v-toleran…
De datasheet vermeldt dit niet, maar blijkbaar is er bij Espressif wel degelijk rekening gehouden met 'ongelukjes' in ontwerp.

Dat zegt mij genoeg.
Als die ESP echt tegen 5V kan, dan had de fabrikant dat zeker vermeld. Zijn potentiële markt wordt dan immers een stuk groter, dus ga niet knoeien door die ESP op 5V te zetten.

Daar kwam ik ook achter. In eerste instantie 6mA volgens de datasheet. Of dat zowel bij 5V als 3V3 is, moest ik nog naar kijken. Mijn vermoedde is bij de hoogste voedingsspanning 1,33mA per Volt voedingsspanning. Dus een reden om toch aan 5V te gaan denken.

Die 1,33mA/V kon ik niet in de spec terugvinden. Ik weet niet hoe je daar aan komt. Ik kon wel terugvinden dat door de Vcc- of Vgnd-pin maximaal 70mA mag lopen. Als alle ledjes tegelijk aan kunnen zijn dan mag er maximaal 8,75mA per ledje lopen en dan ga ik er stiekem van uit dat de 595 zelf niks nodig heeft. Ik weet niet of je stroombegrenzingsweerstanden nodig hebt, maar bij 3,3V zijn deze uiteraard vrij laag. Een witte led doet het niet op 3,3V

[Bericht gewijzigd door ohm pi op (38%)]

Ik snap dat het onduidelijk is. Die 1,33mA is grofweg de uitkomst als je een willekeurige maximale belasting deelt door de bijbehorende voedingsspanning in de tabel.

Stroombegrenzingsweerstanden zijn nodig. Gezien zelden alle LEDs tegelijk zullen branden, zit ik met 1,33mA/1V wel save vind ik. Misschien ter volledigheid: Ik had verwacht dat het schuifregister meer stroom kon leveren gezien de toepassingen vooral voor aansturing in grotere (professionele) displays waarbij de stroom - ik weet het bijna zeker - niet op 6mA wordt begrensd.

PS: Vertel mij iets over 'optoelectronics', maar dat terzijde. Het betreffen rode LED's.

Op 4 januari 2024 20:03:19 schreef knutselding:
"Inofficieel" kun je een ESP32 op de GPIO's 5V aanbieden. Zie bv. hier: https://hackaday.com/2016/07/28/ask-hackaday-is-the-esp8266-5v-toleran…
De datasheet vermeldt dit niet, maar blijkbaar is er bij Espressif wel degelijk rekening gehouden met 'ongelukjes' in ontwerp.
[...]

Dan is het ESP standpunt toch net wat anders. Lees hier wat ESP_sprite daarover zegt.

Uiteraard zijn de waardes in de datasheet vrij conservatief. Staat er 3.9V als absolute max, dan zullen ze dat allemaal wel overleven. 4V gaat dan ook nog in het gros van de gevallen goed. Maar er zullen er mogelijk toch al sneuvelen. Heb je nu net 1 die aan de goede kant zit, dan is 4,2 of zelfs 4,5V mogelijk te overleven. Maar niet kwaad zijn als het niet zo is.

Op 4 januari 2024 23:16:52 schreef OPTOdesign:
[...]
Stroombegrenzingsweerstanden zijn nodig. Gezien zelden alle LEDs tegelijk zullen branden, zit ik met 1,33mA/1V wel save vind ik. Misschien ter volledigheid: Ik had verwacht dat het schuifregister meer stroom kon leveren gezien de toepassingen vooral voor aansturing in grotere (professionele) displays waarbij de stroom - ik weet het bijna zeker - niet op 6mA wordt begrensd.
[...]

Wat zit er dan na dat schuifregister? Een ULN2803 of MIC2981? Of enkele kleine MOSFET of transistor? Een MAX7219(5V)/MAX3951(3V) is ook een schuifregister en kan 100mA sourcen en 500mA sinken.

Ik kan het niet meer volgen :) .

Als je een 5V 595 aan wilt sturen met een 3V3 processor dan zou ik niet weten hoe je daar met weerstanden iets aan kunt verbeteren. Weerstanden helpen alleen als je 5V uitgangen aan 3V3 ingangen koppelt maar dat is hier toch niet de bedoeling?

En je zit nog in de ontwerp fase en toch vast aan een HC595? Kun je dan geen andere chips meer aanschaffen? Met een HCT595 heb je dezelfde functie en geen probleem met de koppeling.

Dank allen!
Dat er zoveel verschillen tussen de HC en HCT versie zitten (op meerdere vlakken) zie ik in. Dank daarvoor! Het is weer een tijd geleden dat ik op component niveau heb zitten puzzelen. Het is allemaal wat weggezakt :)
De HC heb ik liggen, de HCT niet. Ik hou te veel vast aan wat ik heb liggen. Ik ga de HCT overwegen.

@buckfast_beekeeper
Eens.
Er zit niks na - enkel de LED's.
De Max - en allerlei andere - varianten zijn mij bekend. Echter zijn dit multiplexers en geen schuifregisters zoals de 595. Multiplexers moeten constant aangestuurd worden, schuifregisters hebben het voordeel dat ze stilgezet kunnen worden en uit stilstand het display kunnen aansturen. Deze methode word niet tot zelden gebruikt, maar het bied voor mij enkele belangrijke voordelen zoals een gegarandeerd flikkervrij display en een simpelere software aansturing.

De MAX7219 hoeft niet aangestuurd te blijven, het multiplexen doet het ic zelfstandig. (met de laatst ingegeven waardes)

Aha, dankzij het 8x8 SRAM. Dank! Ik ga het allemaal even bestuderen :)

Ik heb net ruim een uur zitten klooien om de karakteristiek van de INPUT van een RP2040 (een 3.3V chip) te meten.

AARGH! Ik heb een pin-met-4k7 pullup-naar 3.3V (op de print die ik voor dit experiment misbruik). Ik vond de stromen al belachelijk hoog.

Ik begin opnieuw...


instelling   meetwaarde    spanning op pin
1	-0.038		0.962
2	-0.055		1.945
3	-0.057		2.943
4	-0.06		3.940
5	-0.06		4.940
6	-0.065		5.935
6.5	-0.166		6.334
7	-0.592		6.408
7.5	-1.076		6.424
8	-1.556		6.444

Meetwaarde is ook pin-stroom in mA.

De pin stond op "NOTHING" (*). De input-buffer staat dan wel gewoon aan. Het omslagpunt ligt rond 1.5V. Met 1.4 krijg ik altijd een "low" en met 1.6 krijgt ik altijd een "high" en met 1.5 hou ik de laatste waarde. (Hysterese is dat).

De RP2040 heeft dus een 6.5V zener op deze pin (23) en geen diode-naar-VCC. Ik kan morgen/zo/ma, pin 28-29 een keer proberen, ik verwacht daar wel die diode.

(*) Had hem op input willen zetten (software voor aangepast!) maar ben toen het puntje bij het paaltje kwam... dat vergeten. Zucht.

Op 5 januari 2024 12:22:07 schreef OPTOdesign:
De HC heb ik liggen, de HCT niet.

De Vcc van de HC mag tussen 2V en 6V zitten (CMOS) en de Vcc van de HCT moet tussen 4,5V en 5,5V zitten (TTL).
In jouw situatie zou mijn voorkeur zijn alles op 3,3V te laten werken en een HC595 nemen.
Omdat je een HC595 hebt liggen zou ik eerst testen of deze in staat is genoeg stroom aan je ledjes te kunnen leveren. Lukt dat niet, dan kan je een driver daarachter zetten of als je er geen ruimte voor hebt, dan moet je uitzien naar andere oplossingen.

Op 5 januari 2024 18:13:53 schreef rew:
Ik heb net ruim een uur zitten klooien om de karakteristiek van de INPUT van een RP2040 (een 3.3V chip) te meten.

Je hebt gemeten welke stroom er gaat lopen als je een bepaalde spanning op een 3v3 pin (ingang/uitgang) zet. Welke conclusie kan jij hieruit trekken?
Ik zie enkel dat de stroom (negatief) oploopt. En wat is 'de instelling' (grootheid/eenheid)?

Dit is wat rew doet:

                   meetwaarde
             ____   (in mA)
+   0-------|____|-->--------> (ingangs-)pin RP2040
      ^       1k        ^
      |                 |
      |  instelling     | spanning op pin
      |   (in Volt)     |  (in Volt)
      |                 |
gnd 0------------------------> gnd van RP2040

Rew gebruikt een instelbare spanningsbron en de uitgangsspanning van die spanningsbron sluit hij via een 1kΩ weerstand aan op een ingangspen van een RP2040. De RP2040 wordt gevoed vanuit een 3.3V voeding.
Bij de 10 ingestelde spanningen van de voedingsbron meet rew de spanning op de ingangspin.
Aan de hand van deze meetresultaten kan je opmaken dat de ingangspin beveiligd is met een zenerdiode van 6,5V. Ikzelf hou het op een zenerspanning van 6,4V, maar een kniesoor die daar op let.
En wil je het precies weten, teken dan de grafiek met de meetresultaten van rew.

IK vraag me of het wel een zenerdiode is, is het niet gewoon een fetje die langzaam aan het doorslaan is maar omdat er een 1k ohm weerstand ervoor zit die net goed gaat.