This is a basic high side current monitor using the LTC6101. The selection of RIN and ROUT establishes the desired gain of this circuit, powered directly from the battery bus. The current output of the LTC6101 allows it to be located remotely to ROUT. Thus, the amplifier can be placed directly at the shunt, while ROUT is placed near the monitoring electronics without ground drop errors. This circuit has a fast 1µs response time that makes it ideal for providing MOSFET load switch protection. The switch element may be the high side type connected between the sense resistor and the load, a low side type between the load and ground or an H-bridge. The circuit is programmable to produce up to 1mA of full-scale output current into ROUT, yet draws a mere 250µA supply current when the load is off.
MATH MAKES SENSE 3.pdf serial transformers
The LT1966 is a true RMS-to-DC converter that takes a single-ended or differential input signal with rail-to-rail range. The output of a PCB mounted current sense transformer can be connected directly to the converter. Up to 75A of AC current is measurable without breaking the signal path from a power source to a load. The accurate operating range of the circuit is determined by the selection of the transformer termination resistor. All of the math is built in to the LTC1966 to provide a DC output voltage that is proportional to the true RMS value of the current. This is valuable in determining the power/energy consumption of AC-powered appliances.
You may have heard "monad" for the first time only from looking at Haskell. The history of the word won't exactly relieve your confusion. "Monad" enters English from ancient Greek philosophy, where it could mean "almost everything". But then it comes in again later from the philosopher Leibniz, for whom it meant "almost nothing" -- an irreducible particle of perceptual reality. Can't philosophy make up its mind? (No. Has it ever?) Neither philosophical sense will help you understand the role of monads in Haskell. Nor are mathematicians riding to your rescue. Consider the introduction to the definition of "monad" in category theory. It could pound the last nail in the coffin of your ambitions to understand what "monad" means in Haskell. A monad is "an endofunctor (a functor mapping a category to itself), together with two natural transformations required to fulfill certain coherence conditions." (Wikipedia) Admit it: unless you're fresh from studying abstract algebra, you just died a little inside.
But what does it even mean? "Monad" sounds forbiddingly mathematico-philosophical. Perhaps one of the most helpful glosses of "monad" in Haskell's sense comes from Simon Peyton-Jones. He pointed out that in F#, they are called "workflows", a term he deemed very sensible. It's a way to describe how to get things done. Admittedly, some very simple monads like Maybe don't have much work to flow in the first place. (A mathematician might say it's a degenerate case.) But monads like List have a little more. As do most other monads predefined for you.
As much as anything, monads are strategies for solving coding problems that recur often, regardless of what you're writing. In this sense, the concept of the monad resembles what's been called "cross-cutting concerns" in software engineering. The List solves a common problem: you need a very basic collection of items of the same type, with some easy-to-understand behavior and performance characteristics. And then there's the Maybe type, which rescues you from having to write lots of null pointer checks -- or else debug code that doesn't have enough of them. And I/O makes it possible to interact with a program at all.
In addition to the return and >>= functions provided by Monad, the MonadFail class defines another function, fail. The fail function is not a technical requirement for inclusion as a monad, but it is often useful in practice. So one can define a MonadFail instance if failure makes sense. 2ff7e9595c
Comments