Freq counter met 8051 ...

S

sadashiv_sm

Guest
Hoi
Ik wil buid een frequentie teller met behulp van 8051 ...
wat is de max freq we kunnen rekenen met behulp van 8051 ...
Ik heb gezien PIC gebaseerde projecten, maar niet om 8051 gebaseerd app note ...

Mijn freq requairement is 40MHz ...
Eventuele lichaam heeft enkele aantekeningen met betrekking tot dit vooruit mij of geef mr rep ...

Bedankt

Sadashiv

 
Hoi,
zijn zeer moeilijk te tellen 40 MHz met een 8051-chip.Zoals onze traditionele 8051 werkt op 32MHz dat om het intern verdeeld is door 12.En ook u hebt om te schrijven timer overflow routine.Maar ik weet niet of het uw doel van 40 MHz kan dienen.

 
40MHZ?!Ik denk niet dat het eventueel mogelijk is met 8051 alleen, je moet een soort van prescaler (divider) te gebruiken om het te krijgen op sub-megahertz regio, omdat de machine-cyclus op de standaard 8051 kern 1usec, op de 24MHz atmel's versies, krijgt het aan 500nsec ...

 
Ja we kunnen doen.Alleen het configureren van de 16 bit teller te tellen externe pulsen.voeden de inkomende frequentie na waveshaping aan de graaf input pin.Nu, een timer instellen voor sommige 100ms of zo en beginnen beide tegelijk.Als je Precission meting voeg de berekende waardoor vertraging tussen hen beiden.Nu behandelen de teller zorgvuldig te onderbreken, moet elke rollover aanwas een andere variabele in het RAM.Tot slot, wanneer de timer van 100ms verstrijkt, stopt de teller en lees de waarde van de teller en toe te voegen aan de som van de (total_rollover_cycles * rollover_value_of_the_counter) laatste tellerstand.Nu, de waarde vermenigvuldigd met de 10 (sinds 100ms timeconstant is), geeft u de frequentie in Hz.Hoe langer de tijd constant de precieze wordt de meting.Maar, vergeet niet ter compensatie van de uitvoering vertragingen.Wilt u meer informatie contact met mij op just_srinu (at) yahoo.com.Ik zal proberen om een sample schema's & code post voor 89c52 LC.Ik deed dit een lange tijd terug als sommige demonstratieproject, maar het is natuurlijk 10MHz Max.De enige overweging is de voortplantingsvertragingstijd & Wire vertragingen van de teller op de chip mag niet leiden tot de input cycli verloren voordat tellen.Hoop dat dit helpt ...

 
Hi Guttina

De informatie is erg nuttig voor mij en ik ben van plan om dit te implementeren in PIC16f72.
Wat u think PIC is beter of Atmel is beter in deze context?

Groeten
Gopi

 
Je kunt niet doen met een 8051, omdat de tellers worden gesynchroniseerd met de interne klok en de maximale frequentie is beperkt tot 1 / 24 van het kristal klok (of 1 / 2 van de kern klok).Dat betekent dat voor een typische 12MHz kristal, de maximale frequentie die u kunt meten is 0.5MHz.

Prescaler De PIC is strikt hardware en het kan wel tellen tot 50MHz.
Er is ook een appnote van Microchip over hoe je een frequecy teller bouwen.Het is een goed uitgangspunt, hoewel ik waarschijnlijk een paar dingen anders doen.www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011033

 
Ik denk dat de beste manier om met behulp freq AT89C51 maatregel is prescaler voeding gebruiken voordat je pols te MCU pinnen.

Voor ex.indien frequentie bereik is 1kHz tot 40Mhz, kunt u verdelen voor 1000, zodat uw bereik is slechts 1Hz tot 40kHz.Het is gemakkelijk om deze reeks te meten met behulp 89C51 (Natuurlijk, je prescaler blok is niet eenvoudig).

Het laatste wat je moet doen is het weergeven van je frequentie!

 
hallo guttinasrinivas het is een zeer goede techniek, kunt u na broncode kunt u aan mij, of je kan het naar mij te sturen via e-mail
ashafee (at) ieee.org
bedankt

 
Ja, als ik me niet vergis, kon men alleen gebruik maken van 8051 teller pin voor frequentie beneden de 1 Mhz.Omdat het gebruik bemonsteringswijze op verhoging van de interne teller registreren.Ik heb gedaan dit project frequentie teller voor, op mijn job training.
Gebruik ik ook techniek guttinasrinivas's ook voor het project, maar in plaats van 100ms timeconstants, ik gebruik 1 s timeconstants.
Ja, als u wilt de 8051 teller gebruiken voor 40 MHz, moet u gebruik maken van een prescaler.Voor mijn vorige project, gebruik ik de goedkope 4-bits updown teller als prescaler, en mijn begeleider leer mij een zeer moeilijke techniek om de teller te gebruiken voor ongeveer 15-16 prescaler constanten.
Als u wilt weten, dan stuur ik je het schema, maar ik moet mijn eerste verslag

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Groeten,

Leo

 
VVV
Het idee is om de timer / teller gebruiken in externe teller modus.Niet bemonstering.Hoop dat het duidelijk maakt.

Shafee001
Ik stuur u de binnenkort code.Zeer recente tijd, mijn desktop harde schijf gecrasht & vandaar mijn machine is out of order voor een tijdje.Geef me wat tijd, ik moet ze herstellen van back-up.

Bedankt
SrinuToegevoegd na 2 uur 8 minuten:Oeps!Ik zag de datasheet van Atmel 89C51.Het bepaalt de graaf ingang is ondervraagden een keer per machine cyclus.Sorry voor dit te zeggen, maar de methode die ik noemde niet kon worden gebruikt met Atmel controllers.

Als alternatief, als de anderen suggereren, gebruik dan een prescalar teller, voor deviding de input frequentie en sluit het uitvoeren van de teller naar de externe interrupt input.Wanneer de teller rolt, genereert het een interrupt en tellen alle interrupts.Tot slot, wanneer de tijdbasis periode afloopt, lees de waarde die nog in de teller door enkele poort en het resultaat is:

Frequentie = (1/time_base) * ((total_interrupts_counted * (2 ^ bit_length_of_counter)) remaining_value_in_counter)

Laat me weten al mijn project details keer, herstellen ik mijn back-up.Ik zal het uploaden van de schema's en code ook.

Srinu

 
http://personal-www.kirov.ru/ ~ ra4nalr (at) write.kirov.ru/main/ch2.html

 

Welcome to EDABoard.com

Sponsor

Back
Top