Hoe het beste een puls maken


Shiptronic

Golden Member

Op 1 juli 2020 16:30:54 schreef Peter R.:

Ik heb namelijk een puls nodig die 325ns breed is 12v top met een freq. Van 200Hz.

Kan je uitleggen wat je hier mee bedoeld? een puls van 200 Hz?

Wie de vraag stelt, zal met het antwoord moeten leren leven.

een puls van 200 Hz?

Dat is niet wat TS zegt. Het staar er toch goed puls van 325nS en 200Hz. De 200Hz is de herhalingsfrequentie. Wat dan weer dubbelop is want een periodetijd dus frequentie duid altijd op herhaling.

Shiptronic

Golden Member

Dan is het bij mij geen puls :) (eenmalig) , maar ik begrijp nu de intentie (PWM/Duty-cycle)

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Een duty cycle van 0,0065% voelt voor mij als een puls. - Maar het is hetzelfde, uiteraard.

Ha Peter R. ,

Ik heb een schetsje gemaakt getallen zijn duidelijk maar of beide pulsen uit 1 uitgang moeten komen :?

Nu ligt het aan de eigenschappen van de onderlingen relatie tussen de pulsen.
Als het qua timing niet zo krap kom valt het wel mee 10 % geef je aan als marge maar welke marge is dit ?
De pulsen onderling of de plaats in het tijd frame !!

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Op 1 juli 2020 20:11:27 schreef Shiptronic:
Dan is het bij mij geen puls :) (eenmalig)

Dat is grappig, want de essentie van een 'pulse' (letterlijk: polsslag) is juist de herhaling. Denk ook aan pulseren (regelmatig kloppen), en aan dingen als pulscodemodulatie, pulsbreedtesturing, muziek met een sterke puls (zeer ritmisch), etc.
Misschien denk je aan een impuls.

Keramisch, kalibratie, parasitair: woordenlijst.org

Hallo,

Dank voor de reacties,

@ship

Ja oké het net hoe je het interpreteert, het een puls die herhaald word.

@lambiek

Grappige samenvatting van de 555

@F.E.T

Inderdaad, ik houd zal maar zeggen ook een voorbeeld een radar aan:PRF

@andere

Zal proberen een iets wat diepere uitleg te geven.

Uitgang 1: een puls die 12v top is, met een breedte van 325ns die elke 5ms herhaald word.

Uitgang 2: een puls die gestart word tussen de 1 en 3 microseconden (instelbaar) nadat de eerste gestart is met een breedte die ook instelbaar is tussen de 1 en 2 microseconden met een top van 350mV met de zelfde freq.

En dit alles zou alleen weergeven worden op een scope.

Het is namelijk de bedoeling dat leerlingen wegwijs gemaakt worden met bepaalde procedures en omgang meet apparatuur ipv direct op systemen die in gebruik zijn.

Vandaar dat ik een marge van 10% aanhoud.

duck-tape does miracles...so do I

Maar moet het dan perse 12V zijn? Met een Arduino kun je triviaal een pulsje van 5V maken, en lager kan met een spanningsdeler, maar die 12V maakt het lastiger, daarvoor heb je weer een extra voeding nodig, een buffertje, die moet op een printje, ontkoppel condensator erbij, etc., en een serieweerstand lijkt me ook handig, want er gaat natuurlijk kortsluiting gemaakt worden.

Waarom wil je het instelbaar hebben, en hoe wil je dat instellen doen? Is het genoeg als je die instellingen bij het laden van de software moet invullen? Op die manier kun je verschillende Arduinos hebben met verschillende instellingen, en met de weerstanden kun je de uitgangsspanningen ook nog varieren, zodat ze niet bij elkaar af kunnen kijken.

Als het voor een practicum is dat je wilt kunnen controleren, lijkt het me niet essentieel dat je het nauwkeurig kunt instellen, zolang jij maar weet wat de werkelijke getallen zijn. Je kunt dan ook een schakeling maken van een paar comparators met een handjevol weerstanden en condensators, en éénmalig zelf meten wat de tijden en spanningen zijn.

Het klinkt allemaal een beetje raar als practicum opdracht, zeker met die seer specifieke getallen en zo.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Shiptronic

Golden Member

Op 1 juli 2020 21:16:39 schreef Frederick E. Terman:
[...]Dat is grappig, want de essentie van een 'pulse' (letterlijk: polsslag) is juist de herhaling. Denk ook aan pulseren (regelmatig kloppen), en aan dingen als pulscodemodulatie, pulsbreedtesturing, muziek met een sterke puls (zeer ritmisch), etc.
Misschien denk je aan een impuls.

Jullie hebben gelijk, ik denk te veel in one shot.

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Op 1 juli 2020 21:16:39 schreef Frederick E. Terman:
[...]Dat is grappig, want de essentie van een 'pulse' (letterlijk: polsslag) is juist de herhaling. Denk ook aan pulseren (regelmatig kloppen), en aan dingen als pulscodemodulatie, pulsbreedtesturing, muziek met een sterke puls (zeer ritmisch), etc.
Misschien denk je aan een impuls.

Het Engelse pulse is echter niet hetzelfde in betekenis as het Nederlandse puls. Puls in het nederlands heeft ook de betekenis 'stoot', waarmee je weer heel dicht bij impuls komt.

Uiteindelijk is het belangrijk alle details te specificieren:
Een puls met pulslengte 325ns, amplitude 12V, herhalingsfrequentie 200Hz. Stijg en daal-tijd ontbreken nog. Belasting 1MOhm/15pf (standaard scope-probe).

Arduino op 16MHz kan wel, maar kost wat moeite: 325ns is 5,2 klokperioden dus komt net niet uit (je puls wordt 312,5 of 375 ns), alhoewel je buffer naar 12V waarschijnlijk genoeg vervorming bied om dat recht te trekken.

Tweede detail is dat de meest straight-forward oplossing (een 16 bit timer in PWM mode) niet werkt omdat 16MHz/216 244Hz geeft. M.a.w. je haalt de 200Hz niet zonder prescaling, maar met prescaling kun je geen pulsbreedte van 5 klokken maken.

Dus je moet iets maken met een interrupt die door de timer elke 5ms wordt aangeroepen, en dan met wat assembly een puls maakt van precies 5 klokken.

En dan een tweede timer die 1-3us later afgaat, en de tweede puls maakt. Dat kan dan waarschijnlijk wel met een simpele 8 bit timer, aangenomen dat die tijden niet op 100ns nauwkeurig hoeven te zijn.

Al met al kun je daar wel een paar avonden mee zoet zijn als arduino-beginner.

Die 12V generen vereist dan ook nog een leuke buffer; als je een beetje redelijke stijg en daaltijden wil hebben (bijv 10ns) heb je toch al snel een 100MHz buffer nodig, die bovendien zover in spanning kan. Een 24V voeding kan dan helpen, dan houd je versterker headroom over.

Als de pulsvorm niet belangrijk is:
Laat de arduino gewoon een 200Hz blok maken (dus 2.5ms hoog, 2.5ms laag) en koppen die met een RC hoogdoorlaat filter aan een tor die de 12V schakelt.
Voeg een diode toe om alleen bij de opgaande flank van de blok te reageren. Tune de pulse-lengte met de C.

Waardes bij benadering...

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

Op 1 juli 2020 21:37:47 schreef SparkyGSX:
Maar moet het dan perse 12V zijn? .....
en een serieweerstand lijkt me ook handig, want er gaat natuurlijk kortsluiting gemaakt worden.

Waarom wil je het instelbaar hebben, en hoe wil je dat instellen doen? Is het genoeg als je die instellingen

Als het voor een practicum is dat je wilt kunnen controleren, lijkt het me niet essentieel dat je het nauwkeurig kunt instellen, zolang jij maar weet wat de werkelijke getallen zijn.

Het klinkt allemaal een beetje raar als practicum opdracht, zeker met die seer specifieke getallen en zo.

Deze eisen van waardes heb ik overgenomen van het systeem wat deze genereerd. dus ja 12v.

en kortsluiting? als het goed is niet haha word alleen op de scope aangesloten en qua leeftijd/gedrag mag ik hopen van dat +/- 40 jaar wel een dusdanige leeftijd is om niet zomaar bnc bussen kort te sluiten :P

Het instelbaar maken is er juist voor dat mensen de procedure goed volgen en de timing kunnen instellen.
Deze af lezen van de scope en daarbij evt een computer programma die zegt dat de timing goed is of niet.

oke arduino zal hem dan even niet worden, ik had het ook maar even als voorbeeld genoemd :)

zelf had ik ook al een beetje zitten spelen met een 555 (200Hz clock/blok) 7404 en 7408 echter kreeg ik die niet stabiel en/of een mooie wat op een puls moet lijken eruit.

@arco

Is dit parate kennis of heb je iets van simulatie/berekenings programma?

duck-tape does miracles...so do I

Die schudt 'ie zo uit z'n mouw. Ik sta telkens weer versteld van z'n oplossingen zónder microcontrollers.

En kijk eens naar het tijdstip van z'n post... :)

Leuk vanuit de lucht: https://youtu.be/DrnBaUXwbFA

.. Maar ik vraag mij af of het zou werken. De 40106 kan maar een paar mA leveren en heeft 100 ns transitie tijd, dat lijkt vrij sloom bij een puls van 325 ns.

Ik ga met Shiptronic mee, puls is enkelvoud pulsen meervoud en pulstrein bv impliciete meervoud.

Ik kon het niet laten en ben even in Arduino bezig geweest.

c code:


#define NOP __asm__("nop\n\t") // asm Nop instructie, duurt 65,2 ns op 16 MHz

void setup() {
  pinMode(2, OUTPUT); 
  // Pin 2 is bit 1 van poort D op de Pro Micro (Atmega 32U4)
}

/*
void loop() { // Geeft 141,2 kHz
  digitalWrite(2, HIGH); 
  digitalWrite(2, LOW); 
}
*/ 

/*
void loop() { // Geeft 1977 kHz met 100 ns hoog. 
  PORTD |= (1<<1); // Pin 2 is bit 1 van poort D
  PORTD &= (0<<1);
}
*/

void loop() { // Geeft 200 Hz met 300 ns hoog. Niet meer goed te zien op de analoge scope. 
  PORTD |= (1<<1); // Arduino pin 2 is bit 1 van poort D
  NOP;
  NOP;
  NOP;
  PORTD &= (0<<1);
  delay(5); 
}

Op een wat snellere chip moeten de precieze wensen vrij comfortabel te halen zijn, maar op b.v. de ESP ben ik niet bekend met het direct schrijven naar registers.
In de lange 5 ms pauze is er veel tijd om potmeters in te lezen etc. In het gebruik van timers voor de snelle pulsen zie ik niet zo veel voordeel.

Scope plaatje van de 100 ns pulsjes. Bovenste trace 100 ns/ , onderste 20 ns/ Dit is met een 1:10 probe op 1:1, zonder terminatie e.d. Oogt beschaafd, iets van 20 ns stijgtijd.

Een snelle versterker naar 12V is een ander onderwerp. Ik denk dat ik naar een discrete schakeling zou neigen, maar dat is ook uit onbekendheid met moderne ic's op dit gebied.
20 ns gaat zo richting de 25 MHz .. ?

[edit] De 100 ns pulsjes drukken hier op een paar meter afstand de FM radio volledig weg :+ niet helemaal EMC zo vermoed ik.. 200 Hz is dan inderdaad een goed idee, dan gebeurd het niet, maar ik zou het ook netjes dicht opbouwen.

Ja Aart, die arduino z'n flanken zijn niet zo steil. Maar als je er een snelle comparator achter plaatst met 12V voeding moet je er wel kunnen komen.

@Arco: ik zou D2 een serieweerstandje geven om de uitgang van IC1B niet te zwaar te mishandelen, C4 een serieweerstandje en R4 een anti-parallelle diode zodat de ingang van IC1D niet te hard negatief gaat.

Eventueel zou D3 vervangen kunnen worden door een weerstand als de uitgang niet belast wordt, maar de TS de uitgangsspanning wel wil kunnen instellen.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Ha Arco,

Ik ben bang dat je een instabiele situatie krijg als je de puls langer wil verlengen als de vertraging is !
Verder zoals je al aangaf de waarden wel aan de praktijk aanpassen ;)
De condensatoren zijn naar ik kan inschatten een factor 10 of meer te groot en R1 een 10 keer te laag :S
Verder moet het kunnen werken met de juiste instel combinatie.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Het is al eerder gezegd, voor de 12V lijkt mij een Gate driver zoals TC427 tamelijk ideaal.

@electron920: De waarde van R1 is moeilijk te 'voorspellen', doordat de hysteresis per 40106 kan verschillen (ergens tussen 2.5 en 4 volt bij 12V voeding)

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

Ha Arco,

Dat is zo ik kan ook geen waarde geven maar jou ingeschatte waarde is nogal uit de richting ik denk voor R1 eerder aan 1.5MΩ :o
Maar belangrijker (ik zou even moeten rekenen) als ik 1 µs vertraging instel en 2 µs wil verlengen of dit wel goed gaat.

De stabiliteit lijkt voor de toepassing prima zeker net zo goed als met een NE555 want ook daar is het een uitdaging om een puls van 235 ns er uit te persen :(
Voor een iets betere uitvoering misschien een klok 4 MHz en een paar counters en als vertragingslijn een data FF ;)
Voor de uitgangs driver heeft @deKees een mooie ik gebruik deze om een mosfet aan te sturen puls uit 60 ns 400 V 50 Ω :P
Ik geloof alleen niet dat dit voor @TS nodig is als het plaatje alleen op de scope zichtbaar moet zijn.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Dus als ik het goed begrijp, om de instabiliteit niet te krijgen zou ipv smal naar breed, breed naar smal moeten gaan.

Dus een brede 200hz clock 50/50 denk ik? En vanuit daar die ene smalle van 325ns en met vertraging de 1,2us?

duck-tape does miracles...so do I

Ha Peter R. ,

Dat zou kunnen ik heb nog een experiment gedaan met een nieuwe LM555 om die puls van 235 ns er uit te persen :D
Deze is revisie D van Ti nu weet ik bij voorbaat dat dit niet gaat lukken maar eens kijken waar we komen.
Nee dus de LM555 haalt 2 MHz dat is al knap maar de mark/space verhouding houd echt op bij 15 % en aan de andere kant 90 % en veel heel veel jitter |:( dat gaat hem niet worden.

Nu kan je drie kanten op of gebruik maken van een analoog systeem dit is het meest flexibel.
Dus een LM555 met een 5 ms blokgolf aan de uitgang waarna een vertraging volgt van 235 ns en een set/reset die de uiteindelijke 235 ns puls levert naar de directe uitgang.
Een regelbare Pulse Stretcher voor de tweede uitgang.

Of een 4 tal ic gebruiken simpele tellers en een data flip flop met als oscillator een 4 MHz kant en klaar module je blijft dan ruim binnen de gestelde 10 % tolerantie!
De tijd instelling zou in stappen van 1 / 4 MHz = 200 ns kunnen plaats vinden.

Of gebruik maken van een controller dat betekend software en ook deze oplossing kan net als nummer twee qua bediening lastiger zijn.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.