|
|
-
- \documentclass[11pt]{article}
- %Gummi|065|=)
- \usepackage{graphicx}
- \usepackage{caption}
- \usepackage{xcolor}
- \usepackage[vcentering,dvips]{geometry}
- \geometry{papersize={6in,9in},total={4.5in,6.8in}}
- \title{\textbf{}}
- \author{Steak Electronics}
- \date{}
- \begin{document}
-
- %\maketitle
-
- \tableofcontents
- \textcolor{green!60!blue!70}{
- \section{60Hz Divider}}
-
-
- \subsection{Overview}
- Let's count. There is a schematic in Practical Electronics For Beginners 4th edition. I've built that up, and will add some CPLD counter logic, along with a micro to output the SPI to a 7seg counter module.
-
- The goal is relative accuracy. Not absolute. No GPS here. I'm going from 60 to 6,000 cycles.\footnote{Due to limitations of CPLD} This is just meant to be fun.
- \subsection{Initial Notes: Counting the Hz}
- pseudo code goal:
- \begin{verbatim}
- Using 1Hz signal
- Start counting 1MHz every 1Hz
- when next cycle is received,
- display count
- start counting again
- \end{verbatim}
- That's all the objective is here. Easy with a micro, but goal is to complete using cmos or 74 logic.
-
- 4553 x 5
- 74hct132
- 1MHz clock (or 6MHz clock), or some variation thereof
- jk flip flop
- 74376 - quad jk flip flop
- 7476 - jk flip flop
- 1mhz clk will be main counter,
- 6 hz or 1 hz will be latch / reset
-
- I ended up skipping the 74 CMOS, in favor of a CPLD. Practical Electronics also mentions this approach as favored. Even a micro alone could be used. Schematic entry in the CPLD could also be used.
-
- \subsection{MAX7219 8 digit 7 LED segment Display Driver}
- Basic code tested with this was the LedControl arduino library.
-
- \begin{verbatim}
- /*
- Now we need a LedControl to work with.
- ***** These pin numbers will probably not work with your hardware *****
- pin 12 is connected to the DataIn
- pin 11 is connected to the CLK
- pin 10 is connected to LOAD
- We have only a single MAX72XX.
- */
- \end{verbatim}
- Some of the lines have to be edited to allow for all digits to be read, and
- also to lower intensity of display. I think also a component package (dark
- grey clear plastic bag) in front of the leds with intensity 1 is about right.
-
-
- \subsection{CPLD Programming}
- Using the XC9500XL series. This chip has some limitations - which are good.
-
- As you get faster clocks, you need bigger registers to handle parsing the clocks. Bigger registers, use more power. Maybe this is one reason why high clock speeds mean more power.
-
- \subsubsection{6KHz clock}
- Due to limitations of the XC9500XL FPGA logic blocks, I ended up limiting the counter registers to 12+1 bits\footnote{Possibly I could use multiple smaller registers in a type of cascade, but let's not bother with that for now. I had 600KHz resolution, until I added the UART out/}, so I have around 6,000 (assuming 60Hz), resolution. With this, I need a 6KHz clock. I could do this with the uno, but let's throw an attiny in there because it's a good tool for this kind of purpose and resolution. It should be able to function as a rough 6KHz timer, easily.
-
-
-
-
-
-
-
-
-
-
-
- \end{document}
-
|