Forum: FPGA, VHDL & Verilog Need help with VHDL code for metal detector

Author: Roel st (roelst)
Posted on:

Rate this post
0 useful
not useful
I am working on a metal detector at the moment but cant figure out how 
to implement it my VHDL code.
ENTITY sensor IS
     port ( metaldetector : in std_logic;
            metal : out std_logic;
END ENTITY sensor;
As long as there isnt any metal close to the sensor 'metaldetector' gets 
pulses on a 6.1kHz frequency. So as long as the 'metaldetector' keeps 
getting pulses the out port 'metal' should be '0'.

When there is a pulse missing (or multiple pulses) 'metal' should become 
'1' until the next pulse.

It shouldnt be that hard to make a code that can do that, but i just 
cant figure it out. Any help would realy be great!

Author: P. K. (pek)
Posted on:

Rate this post
0 useful
not useful
You need a reference clock of some kind.

Then, implement a watchdog counter. If the counter is bigger than the 
required trigger value, stop counting and set metal = '1'. Restart the 
counter and set metal = '0' with each pulse you get.

As the reference clock is asynchronous (most probably) don't forget 
proper synchronisation.

Author: Roel st (roelst)
Posted on:

Rate this post
0 useful
not useful
tell me about this watchdog counter (could you give me an example?). 
Google isnt helping me out here :/


Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]

Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.