Dela med 625 med 4040

Planering och tankar kring eventuella framtida projekt.
bjornj
Inlägg: 237
Blev medlem: 7 november 2018, 11:51:47

Dela med 625 med 4040

Inlägg av bjornj »

Jag vill dela 1 MHz med 625 så att jag får ut 1600 Hz genom att använda en 4040 räknare kopplad med
5 dioder och ett pullupmotstånd så att en resetpuls uppstår när talet 625 uppträder på aktuella pinnar.
Det är väl en standardmetod.
Q1, Q5, Q6, Q7, och Q10 med Q1 som lsb skall ge talet 625 och 1600 Hz på resetpulserna.
Problemet är att jag får 500 us mellan resetpulserna, Alltså 2 KHz.
Flyttar jag Q10 till tex. Q8 blir det talet 241 och 4149 Hz mellan pulserna vilket är rätt.
Tänker jag fel eller finns den någon annan förklaring till att det inte blir rätt utsignal?
guckrum
Inlägg: 2041
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Dela med 625 med 4040

Inlägg av guckrum »

4040 är en asynkron räknare på två olika sätt, dels för att det inte finns en gemensam klocka, och dels för att reseten är asynkron (krävs ingen klockflank för reset). Hur ser ditt diod-motståndsnät ut, det är inte så att du får ut glitchar på resetsignalen (pga den första asynkroniteten) som resetar kretsen (pga den andra asynkroniteten)?
bjornj
Inlägg: 237
Blev medlem: 7 november 2018, 11:51:47

Re: Dela med 625 med 4040

Inlägg av bjornj »

Dioderna är kopplade så att katoderna är anslutna till respektive Qpinne.
Anoderna är ihopkopplade och kopplade till ett pullupmotstånd på 8k2 anslutet till +5V
och reset.
Så länge någon pinne är låg så så är reset låg. När alla är höga kommer resetpulsen som blir ca 1 us lång.
reset_1.jpg
Pulsen är på Q10
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
guckrum
Inlägg: 2041
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Dela med 625 med 4040

Inlägg av guckrum »

Q10 borde ju ha en periodtid på 2^10 * 1/1MHz = 1024us. Alltså skall den gå hög 512us efter reset. I din bild går den hög efter ca 380us, om jag ser rätt. Kan det vara så att inte alla vipporna nollställs av reseten? Fint att du har ett oscilloscope, du kan ju kolla de andra utsignalerna och se om de "startar på noll" efter reset. Och du är säker på att insignalen är 1MHz?
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1366
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: Dela med 625 med 4040

Inlägg av baron3d »

Eftersom 4040 är en asynkron räknare så blir det c:a 1,5 µs fördröjning till att Q10 slår om.
74HC4040 är betydligt snabbare. En synkron räknare är bättre för detta.
guckrum
Inlägg: 2041
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Dela med 625 med 4040

Inlägg av guckrum »

Min favorit när det begav sig var 74x163. Den är helt synkron. Den kan också ladda ett starttillstånd så att du inte behöver något diod/pullupnät. Nackdelen är att du behöver tre. Men det finns säkert andra också.
E Kafeman
Inlägg: 3933
Blev medlem: 29 april 2012, 18:06:22

Re: Dela med 625 med 4040

Inlägg av E Kafeman »

Antar att dioderna är rätt kopplade och att det är kollar med summer/Ohm-mätare att det inte glappar i ett eventuellt experimentkort. Det är inte helt ovanligt och om man använder 4041 som diod är dessa ben lite tunnare och har ofta tejpremsa med klister i ändarna vilket bägge kan ge sämre kontakt i platta vars kontakter kanske blivit uttöjda av grövre komponentben.

Omslag sker då Q10 växlar status om utsignalen blir 2 kHz enligt beskrivningen.
Därmed hålls resetsignalen inte tillräckligt låg av resterande räknar-pinnar.
Om det inte är ett problem med dioderna, det som händer när Q10 går hög är att interna strömförbrukningen i CD4040 plötsligt ändras.
Om inkommande drivspänning inte är bra avkopplad med kondensator kan mycket väl reset-pinnen falsktriggas.
Det viktigaste för stabil funktion när man jobbar med digitala kretsar är att se till att ha bra avkoppling.
Är det på experimentplatta så får man görs så gott det går med en keramiska kondensator på ca 100nF kopplad med så korta ben som möjligt mellan IC-kretsens Vcc och Gnd. Det brukar gå att diagonala över kretsen.
CD4000 decoupling.png
En variant är att använda ic-hållare med kondensator inbyggd på diagonalen för kortast möjliga strömloop.
IC decoupling.png
Oavsett om det är aldrig så trötta och långsamma digitala kretsar så är bra avkopplingskondensator ett bra sätt att få tillförlitligare funktion och används alltid av de som vill ha stabila byggen. Man sätter dit kondensatorn utan att ens ifrågasätta om kretsen kanske kan klara sej utan avkoppling. Det är risktagande som inte är värt krånglet.
På gamla logikbord med DIL-kretsar var det närmast en regel att en avkopplingskondensator placerades nära Vcc och ner till jord trots att man redan monterat 100 sådana kondensatorer runt om på kretskortet. De 100 övriga kondensatorerna ger för stora strömloopar för att vara effektiva varför det behövs kondensatorer som sitter nära.
IC decoupling_2.png
Om man jobbar med experimentplatta är det även viktigt att ha avkopplingskondensator där spänningen inkommer då meterlånga kablar från spänningsaggregatet ger ostabil spänning.

>Det är väl en standardmetod.
Nja det är det nog mest i hobby-kretsar det är ok att använda dioder på detta sätt. Mer sällan om man kräver tillförlitlighet i kommersiella konstruktioner. Där låter man det kosta lämpligt antal kretsar för att uppnå lämplig funktion. Dioder ersätts t.ex. av lämplig and-krets med passande antal ingångar som ersättning för dioder eller ett antal CD4093 om man vill ha väl definierade reset-pulser. Denna kretsen gör det även enkelt kunna definiera divisor t.ex. via dipswitchar på stabilt sätt.

Vad gäller olika typer av sätt att dividera ner en signal, om man vill ha analog flexibilitet i delningstalet, dvs kunna justera värdet med en pot så fungerar t.ex. pll CD4046 utmärkt men kräver stabilt pcb och väl genomtänkta komponentvärden.
Sådan lösning fungerar dåligt på experimentplatta om man ska kunna dela med större divisor på stabilt sätt.
Har själv använt den för en kommersiell produkt som delade med 350-400.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4777
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Dela med 625 med 4040

Inlägg av Swech »

Annars är det ju klart mycket enklare att klämma in en 6 pinnars processor t.ex ATTINY10-TSHR
Klocka dess interna timer med den externa signalen, dela med valfritt 2-65000 och styr ut en pinne

Swech
Användarvisningsbild
4kTRB
Inlägg: 22216
Blev medlem: 16 augusti 2009, 19:04:48

Re: Dela med 625 med 4040

Inlägg av 4kTRB »

Så här läste jag att man kan göra...
Reset Logic:Connect Q5, Q6, Q7, Q9 to a 4-input AND gate (e.g., CD4082).Connect the output of the AND gate to Pin 11 (Reset) of the CD4040.Grounding: Ensure unused inputs are connected to ground if necessary.When the counter hits 624, all those outputs go high, causing the AND gate to send a signal to the Reset pin, immediately returning the count to zero.
guckrum
Inlägg: 2041
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Dela med 625 med 4040

Inlägg av guckrum »

Kollade i ett datablad. Nu vet jag inte exakt vilken familj din krets tillhör, men där jag tittade var typvärdet för omslag från en utgång till nästa 100ns vid 5V. Typvärde alltså.
Så hypotesen för första svaret (och som baron3d också påpekade) så är det troligt att problemet relaterar till asynkroniteten. (Jag har förutsatt bra avkoppling.)

Såhär: Det är rejäla tidsskillnader mellan utgångarna. Typisk 1us (!) mellan Q1 och Q10. Detta är alltså problemet med asynkron klocka, din skapade resetsignal kommer att ha glitchar lite beroende på hur du realiserar logiken. (Man kan bygga glitchfria nät, men det är en annan historia.)
Att ha glitchar är helt naturligt, MEN, när den glitchande signalen går in på en ASYNKRON reset kommer kretsen att reseta om pulsen bara är tillräckligt lång. Det är nog det som händer här.
E Kafeman
Inlägg: 3933
Blev medlem: 29 april 2012, 18:06:22

Re: Dela med 625 med 4040

Inlägg av E Kafeman »

Antag 100nS delay mellan varje led för enkelhets skull.
När Q10 går hög 1 uS (10x100nS) efter att räknar-ingången triggats för 512:e gången händer ingen reset då Q7 gick låg 300nS tidigare, då den ligger 3 led före Q10.
Q7 håller ned reseten med början 300nS innan Q10 går hög vilket är ett bra sätt att undvika glitch.
Q7 kommer fortsätta ligga låg ytterligare 64 uS.

Det kan inträffa glitchar i 4040 men aktuellt exempel ser jag inga problem med. Q1 relativt Q10 ligger inom säkra delayer relativt räknarfrekvensen.

Missar jag något? Förklara gärna varifrån glitchen skulle komma.
guckrum
Inlägg: 2041
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Dela med 625 med 4040

Inlägg av guckrum »

Det beror ju som sagt på realiseringen, och iaf jag har inte suttit och gått igenom alla möjligheterna.

Men jag inser att min kommentar från igår kväll glömdes bort (av mig också):
Q10 borde ju ha en periodtid på 2^10 * 1/1MHz = 1024us. Alltså skall den gå hög 512us efter reset. I din bild går den hög efter ca 380us, om jag ser rätt. Kan det vara så att inte alla vipporna nollställs av reseten? Fint att du har ett oscilloscope, du kan ju kolla de andra utsignalerna och se om de "startar på noll" efter reset. Och du är säker på att insignalen är 1MHz?
Så det är ju något annat. Avkoppling som du tog upp är absolut en möjlighet. En annan är att kretsen inte resetar ordentligt. En tredje är att något/några steg resetar av en kort puls på reset.

Länge sedan jag använde ett sådant Tek-scope, men visst kan man sätta den på någon form av "peak detekt", så att den samplar i full hastighet för att visualisera korta spikar?
Nerre
Inlägg: 27492
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Dela med 625 med 4040

Inlägg av Nerre »

Borde inte resetpulsen kunna förlängas mha en kondensator? Och eventuellt seriemotstånd med dioderna (den behöver väl se till att de inte drar ner för snabbt).
guckrum
Inlägg: 2041
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Dela med 625 med 4040

Inlägg av guckrum »

Jo antagligen, men man ska generellt undvika asynkron logik om man inte måste och har väldigt bra koll på vad man gör. Tex om RC-filtret gör flankerna för långa kan delar av den interna kretsen börja oscillera. Nu påstår iofs databladet att man kan ha oändliga flanker, men jag skulle ändå vara försiktig. Bättre köra synkront.

Men kolla på bilden. OM kretsen matas med 1MHz skall Q10 vara låg i 500us och därefter hög i 500us osv om den inte resetas. Bilden visar att Q10 går låg direkt vid reset, men sedan går den hög långt innan 500us. Skumt.

[edit: enheter]
E Kafeman
Inlägg: 3933
Blev medlem: 29 april 2012, 18:06:22

Re: Dela med 625 med 4040

Inlägg av E Kafeman »

Reset har sin egna självföregling. Reseten avslutas inte om räknarna med hög nivå inte återställts i räknarsteget. Tillkommer ca 20-50 nS extra marginal innan innan reset-signalen avslutas pga av ingångsdelayen genom två inverterare.

Det är en väldigt vältänkt klassisk krets-logik som de flesta större IC-tillverkare inte funnit skäl att förbättra genom åren förutom att de fått allt snabbare efterföljare jämfört med de första rörbyggda asynkronräknarna.
Det var just rörstegen som gjorde asynkronräknare ett bättre val än synkronräknare då det gick åt färre rör=> lägre kostnad och färre steg som skulle skifta status vilket även gav lägre värmeutveckling och mindre strömförbrukning.
Det är fortfarande viktiga parametrar.

Ska man jaga felorskaer pga av timingen enligt oscilloskop-bild är det troligaste att den förmodade Q10 inte är Q10. Det har jag själv missat på ibland pga av ologiska ordningen på kapselns pinnar.
Om oscilloskopbilden verkligen är Q10 är det ett av de mera märkliga felen jag sett på cd40xx.
Q10 har triggats alldeles för tidigt enligt bild, som om den inte vore 512 steg och reseten sker först där Q10 borde gå hög, efter 500uS, så på något sätt hittar Q10 ändå fram till reseten med förväntad korrekt delay.
Det går inte få ihop den logiken varför problemet snarast ligger utanför kapseln.

Alternativt möjligt fel är att kapseln inte är en CD4040 utan kommer från en kinesiska källarfirma som märker alla återvunna begagnade IC med beteckningen CD4040 innan de säljer dom på AliX.
Sådant är inte helt ovanligt.
Skriv svar