io port beschermen

Hallo,

ik heb een vraagje hoe ik het beste mijn io pins kan beschermen op me rp2040. Ik wilde dit is uit proberen μLA: Micro Logic Analyzerhttps://github.com/dotcypress/ula. Probleem is de micro is 3.3v en als ik 5v wil meten, en dat vind de microcontroller niet fijn neem ik aan. Dus nu mijn vraag hoe zouden jullie je io pins beschermen?

ik dacht hier aan.

SparkFun Logic Level Converter - Bi-Directional
https://www.sparkfun.com/products/12009

SparkFun Level Shifter - 8 Channel
https://www.sparkfun.com/products/19626

Volgens zijn specificatie kan deze µC inderdaad geen 5 V aan.

Een level shifter is een goede oplossing, en beschermt gelijk de µC wat.
Als men daadwerkelijk snelle signalen wil meten vereist dat wel een redelijke print en doordachte verbindingen, maar tot enkele tientallen MHz zal het "met draadjes" gaan.

In een "5V" omgeving zonder grote ESD risico's, zoals de werktafel, zou ik geen extra maatregelen treffen. Voor ruigere omstandigheden hangt het van de omstandigheden af, maar het gaat invloed hebben op de te halen snelheid.

[edit]
De bi-directional level shifter is voor I2C en dergelijke trage bi-directionele zaken, en lijkt hier niet zo gepast.

[Bericht gewijzigd door Aart op donderdag 25 juli 2024 19:21:47 (10%)

benleentje

Golden Member

Als je alleen maar 5V wilt meten en het dus enkel om een ingang gaat dan kan je ook 2 weerstanden gebruikten.

Vanaf de ingang een 3k3 weerstand naar de gnd. Vanaf de te meten 5V een 1k7 weerstand naar de ingang. Voor de de 1k& weerstand mag je ook een meer gangbare 1k8 gebruiken.

Ik dacht er een pintje voor te maken, leuke oefening.

specs van de firmware zijn :

16 channels
100 MHz sampling rate, 1 sample per sys tick
200 KB sample memory
Fast triggers using PIO
Input channels mapped to GPIO 0-15

ic: The TXS0108E can transmit data between ports at max speeds of 110Mbps (push/pull) or 1.2Mbps (open drain)

Dus qua snelheid moet dat geen probleem zijn, maar ik moet dan wel opletten op me traces? Moeten ze dan allemaal even lang zijn of zo met zoon golf er in?
Als ik 1.8v of 5v wil meten hoe denk jij dat ik dat heet beste kan wisselen? een schuif knopje met verschilende voedingen op de print hebben of de voeding van de printje halen? Hoe doen ze dat op Logic Analyzer die je koopt?

benleentje : ik wil proberen te maken voor verschilende voltages.

benleentje

Golden Member

IN die logic level converter zit een fetje en die gaat niet veel lager dan 3V. IK heb ook geen idee of die fet wel 100Mhz haalt.

IK zou dan via een transistor werken. Het insturen van de basis en dus de basis stroom luister niet zo nauw en dat kan prima met verschillende spanningen.

Als je echt verschillende schakeldrempels volgens de specificaties voor 1,8, 2,5, 3,3V en 5V wilt kunnen instellen word het wat lastiger.

benleentje: mischien en dom idee maar zou ik niet een digitale potentiometer kunnen gebruiken in een regulator.
https://www.edn.com/wp-content/uploads/Voltage_regulator_digital_F1.png?resize=770%2C486?w=770

zo kan ik de voltage aanpassen en de TXS0108E schalelt automatish staaat er. ik ga wel even knutselen en een schema maken.

benleentje

Golden Member

Als je maar 3 of 4 verschillende vaste spanningen nodig hebt zou ik dat met een aantal vaste weerstanden schakelen.

Digitale potmeter zijn maar heel weinig belastbaar en kunnen heel weinig stroom aan. En ze kunnen niet zoveel spanning verdragen. Maar als die het aankunnen zou dat wel moeten kunnen.

Voor een klok van maximaal 100 MHz is het denk ik goed te doen met enkel serie terminatie aan de probe kant i.c.m. transmissielijnen (dunne coax, flatcable met de helft aan GND, goede twisted pairs.. ) en hoeft er nog niet aangepast te worden aan de kant van het IC. Wat overigens neer kan komen op het vaststellen van een klein serie-spoeltje om de ingangscapaciteit te compenseren. Dat gaat nog op een Smith chart.
Hierbij gok ik dat de te bemeten schakeling voldoende signaal levert en belast mag worden.

Moet een blokgolf van 100 MHz er na tientallen cm transmissielijn op de pin nog als een blokgolf uit zien dat wordt het snel lastiger. Zo een erg breedbandig signaal vereist een specifiek soort HF kennis, mogelijk simulaties en metingen om het resultaat te controleren.
Interessante materie, maar dit lijkt mij niet het project daarvoor.

Het heeft m.i. geen zin voorzieningen te treffen als je niet weet wat je doet. Ruw evenveel kans dat het de verkeerde kant op helpt.
Zelfs eenvoudige microstrips zullen lastig zijn, want al snel te groot in verhouding tot de componenten. Een strategie is alles klein te houden in verhouding tot de golflengtes en overal een nette HF GND te verzorgen, bijvoorbeeld als doorlopend plane in de print.

[edit]
Mijn eigen ervaring gaat overigens niet verder dan het op print zetten van een RMII interface (Ethernet aan ESP32) die op 50 MHz liep, en die verbindingen waren slechts enkele cm.
Houd in gedachten dat je hier op een terrein komt waar niet veel hobbyisten zich wagen. Als het snel digitaal is beperkt men zich vaak tot een kleine meerlaags print en standaard interfaces. Een universele 16 ch. meetprobe voor die snelheden is een heel ander beest. Op 5V zal men die snelheden ook niet vaak (meer) tegenkomen, maar dat is maar net waar het om gaat.

Arco

Special Member

Digitale potmeters zijn niet voor regelen van spanning maar voor audiosignalen.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op donderdag 25 juli 2024 18:22:22 schreef Precious roy:
Hallo,

ik heb een vraagje hoe ik het beste mijn io pins kan beschermen op me rp2040. Ik wilde dit is uit proberen μLA: Micro Logic Analyzerhttps://github.com/dotcypress/ula. Probleem is de micro is 3.3v en als ik 5v wil meten, en dat vind de microcontroller niet fijn neem ik aan. Dus nu mijn vraag hoe zouden jullie je io pins beschermen?

ik dacht hier aan.

SparkFun Logic Level Converter - Bi-Directional
https://www.sparkfun.com/products/12009

SparkFun Level Shifter - 8 Channel
https://www.sparkfun.com/products/19626

Even terugkomend op je vraagstelling:

Eigenlijk heb je het over twee problemen.

Je het spanningsniveau van een te meten meetsignaal naar een waarde brengen die binnen het bereik van je meetapparaat ligt. Je meetapparaat is in dit geval je CPU.

Het andere probleem is het beveiligen van de ingangen van je meetapparaat (in jouw geval die cpu dus) beschermen tegen ongewenste hoge (piek)spanningen.

Dit zijn twee behoorlijk verschillende dingen waarvoor ook
verschillende technische oplossingen mogelijk zijn.

Uit jouw vraagstelling kan ik niet opmaken voor welke van de twee vragen je een oplossing zoekt. Of zoek je misschien een oplossing op beide vragen?

Voor de eerste vraag had je zelf al een oplossing gevonden in de vorm van een lever shifter. Nu is dat een oplossing maar niet de handigste. Die levelshifters met een fetje van ome Ali zijn eigenlijk ook voor een ander doel gemaakt. In meetapparaten zijn de beste levelshifters gewoon ohms. De ingangsverzwakkers van een scoop zijn gewoon een bergje weerstanden op een dusdanige manier aan elkaar geknoopt dat de ingangs- en uitgangs-impedantie gelijk blijft bij elke stand van de verzwakker. Omdat er helaas geen uitsluitend ohmse componenten bestaan en er altijd wel een beetje parasitaire inducties en capaciteiten in een componentje en de printjes zitten zul je als je een scoop open sloopt wel degelijk wat spoeltjes en condensatortjes in de verzwakker gaan vinden. Maar deze zijn om die parasitaire narigheid te compenseren.

Ik denk dat je het beste met twee weerstandjes voor elk ingansspanningsniveau een spanningsdeler kan maken dat bijvoorbeels een logisch niveau van 15 volt aanpast naar die 3,3 volt.
Als je universeler wilt zijn zou je misschien iets kunnen doen met een snelle opamp die je laat clippen tegen een 3,3 volt voeding.

Als je wilt beveiligen tegen spanningspieken moet je het iets anders doen. Je zou dan misschien iets kunnen gebruiken als zeners, vdr's of een LRC netwerkje. Je zou misschien ook iets kunnen doen met een opamp die je laat clippen. Al deze dingen hebben echter wel invloed op het te meten signaal. Dat kan vervormen, trager worden of reflecteren. Maar de snelheden waar jij mee wilt werken zal dat allemaal wel meevallen.

fatbeard

Honourable Member

Let wel op: VDR en TVS hebben een soms aanzienlijke parasitaire capaciteit, wat de maximaal haalbare snelheid flink omlaag kan halen.
Neem typen die voor hoge snelheden geschikt zijn.

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
maartenbakker

Golden Member

Hoe hoog is de stroom die de ingangspennen mogen sinken? Hoewel het slordig staat, zou je misschien met een serieweerstandje per pen kunnen volstaan...

www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."

Op vrijdag 26 juli 2024 00:17:53 schreef maartenbakker:
Hoe hoog is de stroom die de ingangspennen mogen sinken? Hoewel het slordig staat, zou je misschien met een serieweerstandje per pen kunnen volstaan...

Dan ga je wel je meetpunt belasten. Maar misschien lukt het.

maartenbakker

Golden Member

Het gaat dan denk ik om fracties van milliamperes. Als je klemdiodes niet te zwaar belast worden dan worden je meetpunten misschien ook niet te zwaar belast.

Je 3,3V voedingslijn zelf moet dan wel zwaar genoeg belast worden om niet op te stijgen, maar als dat al niet het geval is kun je met een LED'je volstaan denk ik.

www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."

Die levelconverter werkt met pullups. is bedoeld voor I2C op 100kHz. Dat scheelt een factor duizend met wat "eigenlijk wel handig" zou zijn als het zou werken. (alsin de firmware kan het,

Ik gebruik 74HCT245 chips om te levelshiften...

Die voed ik dan met 5V en de "T" in het typenummer betekent dat ie aan de ingang prima overweg kan met 3.3V signalen.

Maar dat is dan de andere kant op. Er zijn ook echte levelshift chips, en ik zou dan zoeentje zoeken. Of je doet bijvoorbeeld een 1k weerstaand naar een diode naar een 2.5V zener. Hmm.. Dat moet dan voor iedere input een eigen zener worden, dus 2 onderdelen per kanaal. Dan misschien maar toch een 8 kanaals levelshifter chipje kopen.

1k met 10pF aan input capacitance zou een RC tijd van 10ns geven. Dus dan beperk je de 100MHz net wel/niet.

@maartenbakker: Maar dus 16 van die 1k weerstanden levert 1.7mA per kanaal, samen 25mA. Dat is toch wel iets waar je even over moet nadenken wat je met die 25mA doet. Een eigen diode naar een eigen zener lijkt me betrouwbaarder. (en zuiniger: wordt alleen gedissipieerd indien nodig.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

Voor enkele lijnen gebruik ik de SN74LVC1G07 (OD) of SN74LVC1G34 (PP) (voor I2C moet je de OD versie hebben)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
KGE

Golden Member

De LVTH ttl series buffers voedt je met 3,3 Volt maar kunnen op de ingang 5 Volt aan. Propagation delay is 5.1 ns
Zijn er ook in verschillende groottes.

er is zo veel gezegd en een hoop gaat over me hoofd maar dit is waar ik tot nu toe oep uit ben gekomen.

wat denken jullie er van?

nu weer ik niet of ik de pot goed heb gebruikt pin 5 en 6 dus dat zal ik nog even bekijken.

en de headers zal ik nog wel gaan verschuiven, ik wil nog een een magneet connector maaken met pogo pins maar ik weet nog niet hoe die er uit komt te zien.

fatbeard

Honourable Member

De aansluitingen van de pot zijn ERG verkeerd: VDD is de voedingsspanning, VSS de GND van die chip...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.

Op zondag 28 juli 2024 09:13:50 schreef fatbeard:
De aansluitingen van de pot zijn ERG verkeerd: VDD is de voedingsspanning, VSS de GND van die chip...

Yep, heel erg verkeerd en wat ga je doen met de sda en de scl ingangen van de chip?

Ik zou hier nooit een digitale potmeter voor inzetten. Zo'n pot is veel te kwetsbaar en eigenlijk ongeschikt. Het beveiligt ook in het geheel niet. Het is echter wel mogelijk om het zo'n potmeter een spanningsdeler te maken. Net zo als het mogelijk is om een 10 liter V8 diesel motor in te bouwen op je kreidler bromfiets.

Je moet even de datasheet lezen van die potmeter. Blijkbaar heb je geen idee hoe zo'n potmeter werkt. Veel van deze potmeters hebben maximale ingangsspanning die niet boven de voedingsspanning uit mag komen. In jou schema lijkt de voedingsspanning 3,3 volt. De te meten spanning mag dus ook nooit hoger dan die 3,3V worden. Of te wel als je de pot goed zou hebben aangesloten schiet je er nog niets mee op. De ingangsspanning blijft 3,3 volt en mag niet hoger.

In je tekening ben je vergeten de type nummers van de IC's te vermelden. Wij kunnen dus niet zien wat die IC's zijn met die A-tjes en B-tjes. En we kunnen ook gaan datasheet gaan zoeken van die potmeter. Want welke is het? Normaal gesproken is de Vdd ingang de voedingsspanning voor het IC. De Vss de massa, aarde, GND, of min aansluiting. Hier heel goed kijken welk van toepassing is. Wat voor massa of min heb jij in je schakeling? Doe je dit fout dan gaat het stuk. De W is de loper(of wiper) van de potmeter. En de A(pen 6) is de hoge kant van de potmeter. Dat zou je meetingang moeten worden. En zeer waarschijnlijk mag die nooit hoger worden dan de voedingsspanning. Bij jouw dus die 3,3V Maar dat staat ergens in de datasheet. Die SDA en SCL ingangen vormen een I2C bus en moet je dus aansturen met je cpu.

Zet er nu gewoon twee smd weerstandjes geschakeld als spanningsdeler in dan ben je klaar

[Bericht gewijzigd door Ex-fietser op zondag 28 juli 2024 10:10:25 (52%)

Het zij opgemerkt dat de spanning over de pot niet hoger wordt dan de referentie spanning van de MPM3632, 800 mV.
Mijn persoonlijke oplossing voor een op deze wijze op enige vaste spanningen omschakelbare voeding zouden een paar BS170's met weerstanden zijn, parallel aan een vaste weerstand voor de laagst in te stellen spanning.

Printontwerp niet bestudeerd. Dit topic waaierd wat veel uit.

Voor i2C is voor spanningstranslatie JUIST (het schema van) de adafruit levelshifter geschikt. Het komt uit een Philips datasheet.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

Waarom wil je expliciet een onderdeel gebruiken waar het niet voor gemaakt is?

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

TS noemde in zijn openingspost twee levelshifters;
1 bedoeld voor I2C met de bekende oplossing met de FET, de tweede een normale op basis van de TXS0108E.

De I2C levelshifter werkt uitstekend, maar is voor zover ik kan overzien verder niet relevant in deze discussie.

ik denk ik geef wat meer uitleg waarom ik voor de de bepaalde onderdelen heb gekozen.

"TXS0108E 8-Bit Bi-directional, Level-Shifting, Voltage Translator
for Open-Drain and Push-Pull Applications"

deze beschemt dus me micro tegen 3.3v en hoger tot 5v. Ook is hij klein en sneller dan dat ik nodig heb.
https://cdn.sparkfun.com/assets/1/8/1/e/2/txs0108e.pdf

Ik heb een referentie voltage nodig als input "VccB" voor de TXS0108E dus heb ik voor de MPM3632C gekozen. deze gebruik ik op een andere print en werkt prima en ik heb er genoeg van.
https://www.monolithicpower.com/en/documentview/productdocument/index/…

om de verschillende voltages te maken dacht ik, als ik r2 vervangen met een digitale pot dan kan ik in software de referentie voltage veranderen. Dus heb ik de MCP4018 uitgekozen omdat ik die via i2c kan aanspreken. De resistors die ik wil gebruiken zijn 402 1/16w dus niet bepaald zwaar heel veel van jullie zeggen dat de digitale pot dat niet aan zou kunnen? gebruit/trekt r2 dan zo veel?

https://nl.mouser.com/datasheet/2/268/22147a-3443488.pdf

ik zie vaker dat er pots word gebruikt in andere regulators waarom zou het niet digitaal kunnen.

fatbeard : idd ik heb niet goed geken