Exact match. Not showing close matches.
PICList
Thread
'[EE] AND-OR-AND - simplest implementation?'
2004\10\14@160757
by
Denny Esterline
|
I need a simple logic function, a two input AND feeding a two input OR
feeding another two input AND [see picture]. Since I don't need any other
logic in the project I hate waste the space and use two chips, is anyone
else's Boolean algebra less rusty that mine? Is there a one part
implementation (other than a PAL or CPLD)?
Thanks
-Denny
begin 666 And-Or-And.gif
M1TE&.#=AG@`R`/<```````$!`0("`@,#`P0$! 4%!08&!@<'!P@(" D)"0H*
M"@L+"PP,# T-#0X.#@\/#Q 0$!$1$1(2$A,3$Q04%!45%186%A<7%Q@8&!D9
M&1H:&AL;&QP<'!T='1X>'A\?'R @("$A(2(B(B,C(R0D)"4E)28F)B<G)R@H
M*"DI*2HJ*BLK*RPL+"TM+2XN+B\O+S P,#$Q,3(R,C,S,S0T-#4U-38V-C<W
M-S@X.#DY.3HZ.CL[.SP\/#T]/3X^/C\_/T! 0$%!04)"0D-#0T1$1$5%149&
M1D='1TA(2$E)24I*2DM+2TQ,3$U-34Y.3D]/3U!04%%145)24E-34U145%55
M55965E=75UA86%E965I:6EM;6UQ<7%U=75Y>7E]?7V!@8&%A86)B8F-C8V1D
M9&5E969F9F=G9VAH:&EI:6IJ:FMK:VQL;&UM;6YN;F]O;W!P<'%Q<7)R<G-S
M<W1T='5U=79V=G=W=WAX>'EY>7IZ>GM[>WQ\?'U]?7Y^?G]_?X" @(&!@8*"
M@H.#@X2$A(6%A8:&AH>'AXB(B(F)B8J*BHN+BXR,C(V-C8Z.CH^/CY"0D)&1
MD9*2DI.3DY24E)65E9:6EI>7EYB8F)F9F9J:FIN;FYR<G)V=G9Z>GI^?GZ"@
MH*&AH:*BHJ.CHZ2DI*6EI::FIJ>GIZBHJ*FIJ:JJJJNKJZRLK*VMK:ZNKJ^O
MK["PL+&QL;*RLK.SL[2TM+6UM;:VMK>WM[BXN+FYN;JZNKN[N[R\O+V]O;Z^
MOK^_O\# P,'!P<+"PL/#P\3$Q,7%Q<;&QL?'Q\C(R,G)R<K*RLO+R\S,S,W-
MS<[.SL_/S]#0T-'1T=+2TM/3T]34U-75U=;6UM?7U]C8V-G9V=K:VMO;V]S<
MW-W=W=[>WM_?W^#@X.'AX>+BXN/CX^3DY.7EY>;FYN?GY^CHZ.GIZ>KJZNOK
MZ^SL[.WM[>[N[N_O[_#P\/'Q\?+R\O/S\_3T]/7U]?;V]O?W]_CX^/GY^?KZ
M^OO[^_S\_/W]_?[^_O___R'Y! ``````+ ````">`#(`0 C_`/\)'$BPH,&#
M"!,J7,BPH<.'$"-&!"#1(,6*&#-JW,A1X$6.'T%.#-FQI,E_)!L"2'D2)4:6
M%6%"E-FRIDJ$*VFVU/F0I\V?0#7Z++@RJ-&C2),N''J0J=*G4)TJE(J385&H
M6"V*W/F2:M.,7K-N51EV:<FR8M.^'*NVK5NL.>/*G7OUK5V3=.-N1'NW;U6V
M8//6]:N4[T#!B 7W-$SX[UZN$AE[3)PW*%K)6@-3IORX\4FJ@P&O]=QY*6;'
M>Q&37DVTXVG68B_#GDV[MNW;N&M[#9W;MNS>MPV_!F[9-?'9DAG+S'D<[%GC
M9)O/?$[=X?#&R?'&E)Y0.>3(U6=>3%8MU&99[\Z_CP1Z'GIYO)OE(MVM731W
MCQ-K9C^N./K/_??A-]5UF=G'7W]/`1C@7>@M"!=YZ3GH5UB\26A7?/)9J.&&
*'';HX8?2!00`.P``
`
end
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@164829
by
Mauricio Jancic
2004\10\14@165557
by
Herbert Graf
On Thu, 2004-10-14 at 16:12, Denny Esterline wrote:
> I need a simple logic function, a two input AND feeding a two input OR
> feeding another two input AND [see picture]. Since I don't need any other
> logic in the project I hate waste the space and use two chips, is anyone
> else's Boolean algebra less rusty that mine? Is there a one part
> implementation (other than a PAL or CPLD)?
What about a PIC? A 12F629 could do the same. TTYL
-----------------------------
Herbert's PIC Stuff:
http://repatch.dyndns.org:8383/pic_stuff/
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@170623
by
Eisermann, Phil [Ridg/CO]
piclist-bounces@mit.edu wrote:
> I need a simple logic function, a two input AND feeding a two input OR
> feeding another two input AND [see picture]. Since I don't need any
> other logic in the project I hate waste the space and use two chips,
> is anyone else's Boolean algebra less rusty that mine? Is there a one
> part implementation (other than a PAL or CPLD)?
>
umm. a PIC <vbg>
seriously, though. I don't see anything simpler than D[AB+C] e.g. the
circuit you have shown. The only 'trick' i remember off the top of my
head would be the old 'decoder as a minterm generator', but that was
already old way back when I was young :) Do they still teach that in
school? In any case it makes no sense in this application.
Unless you can 'design-out' the need for the logic function?
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@170831
by
James Newtons Massmind
If you inputs are A, B (going to the first AND) C (additional input to the
OR) and D (additional input to the last AND) then your diagram is:
Out = ( A * B + C ) * D
Using a 4 gate NAND chip, you can get
Out = /( A * B + C ) * D
In other words, the exact same thing, but with the output inverted or you
can get
Out = ( A * B + /C ) * D
The tricks are:
- An AND gate with both inputs and the output inverted works just like an
OR.
- A NAND gate with both inputs tied together acts like an inverter.
NAND Input
Gate a b Output
---- -- -- ------
1 A B 2a
2 1o C 3a
3 2o D 4a & 4b
4 3o 3o Output = ( A * B + /C ) * D
NAND Input
Gate a b Output
---- -- -- ------
1 A B 2a
2 1o 4o 3a
3 2o D Output = /( A * B + C ) * D
4 C C 2b
Another option (if you can find the chip) is a 7456 Dual AND-OR-INVERT gate.
http://focus.ti.com/lit/ds/sdls113/sdls113.pdf
It does Out = /(a * b + c * d) and has two of them. Actually, I don't think
that can do what you need... Hummm... Well, I hope that helps.
---
James Newton: PICList webmaster/Admin
.....jamesnewtonKILLspam
@spam@piclist.com 1-619-652-0593 phone
http://www.piclist.com/member/JMN-EFP-786
PIC/PICList FAQ: http://www.piclist.com
> {Original Message removed}
2004\10\14@171419
by
Denny Esterline
> On Thu, 2004-10-14 at 16:12, Denny Esterline wrote:
> > I need a simple logic function, a two input AND feeding a two input OR
> > feeding another two input AND [see picture]. Since I don't need any
other
> > logic in the project I hate waste the space and use two chips, is
anyone
> > else's Boolean algebra less rusty that mine? Is there a one part
> > implementation (other than a PAL or CPLD)?
>
> What about a PIC? A 12F629 could do the same. TTYL
>
Sorry, I seem to have left out a crucial detail - 50MHz.
-Denny
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@172610
by
Andrew Warren
|
Denny Esterline <piclist
KILLspammit.edu> wrote:
> I need a simple logic function, a two input AND feeding a two
> input OR feeding another two input AND [see picture]. Since I don't
> need any other logic in the project I hate waste the space and use
> two chips, is anyone else's Boolean algebra less rusty that mine?
> Is there a one part implementation (other than a PAL or CPLD)?
Danny:
A PIC could do it if you don't mind a six-microsecond propagation
delay...
; Written for the 12C508A.
;
; GP0 = GND
; GP1 = A input
; GP2 = B input
; GP3 = C input
; GP4 = D input
; GP5 = OUTPUT
;
; OUTPUT = ((A and B) or C) and D
LOOP:
MOVF GPIO,W
ADDWF PCL
BCF OUTPUT ;0000 = 0
GOTO LOOP
BCF OUTPUT ;0001 = 0
GOTO LOOP
BCF OUTPUT ;0010 = 0
GOTO LOOP
BSF OUTPUT ;0011 = 1
GOTO LOOP
BCF OUTPUT ;0100 = 0
GOTO LOOP
BCF OUTPUT ;0101 = 0
GOTO LOOP
BCF OUTPUT ;0110 = 0
GOTO LOOP
BSF OUTPUT ;0111 = 1
GOTO LOOP
BCF OUTPUT ;1000 = 0
GOTO LOOP
BCF OUTPUT ;1001 = 0
GOTO LOOP
BCF OUTPUT ;1010 = 0
GOTO LOOP
BSF OUTPUT ;1011 = 1
GOTO LOOP
BCF OUTPUT ;1100 = 0
GOTO LOOP
BSF OUTPUT ;1101 = 1
GOTO LOOP
BCF OUTPUT ;1110 = 0
GOTO LOOP
BSF OUTPUT ;1111 = 1
GOTO LOOP
; A second copy, since we don't know what GP5 will be
; when we execute the MOVF GPIO,W...
BCF OUTPUT ;0000 = 0
GOTO LOOP
BCF OUTPUT ;0001 = 0
GOTO LOOP
BCF OUTPUT ;0010 = 0
GOTO LOOP
BSF OUTPUT ;0011 = 1
GOTO LOOP
BCF OUTPUT ;0100 = 0
GOTO LOOP
BCF OUTPUT ;0101 = 0
GOTO LOOP
BCF OUTPUT ;0110 = 0
GOTO LOOP
BSF OUTPUT ;0111 = 1
GOTO LOOP
BCF OUTPUT ;1000 = 0
GOTO LOOP
BCF OUTPUT ;1001 = 0
GOTO LOOP
BCF OUTPUT ;1010 = 0
GOTO LOOP
BSF OUTPUT ;1011 = 1
GOTO LOOP
BCF OUTPUT ;1100 = 0
GOTO LOOP
BSF OUTPUT ;1101 = 1
GOTO LOOP
BCF OUTPUT ;1110 = 0
GOTO LOOP
BSF OUTPUT ;1111 = 1
GOTO LOOP
-Andy
=== Andrew Warren -- .....aiwKILLspam
.....cypress.com
=== Principal Design Engineer
=== Cypress Semiconductor Corporation
===
=== Opinions expressed above do not
=== necessarily represent those of
=== Cypress Semiconductor Corporation
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@174435
by
Jinx
2004\10\14@174859
by
Jinx
> > What about a PIC? A 12F629 could do the same. TTYL
>
> Sorry, I seem to have left out a crucial detail - 50MHz.
OK, a PIC running on 100V and being threatened with a pointed
stick (dog-do optional)
An SX18 would do it, if you're geared up for Scenix that is
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@175324
by
Marcel Duchamp
|
If, as you originally posted, your main criteria is "I hate waste the space
and use two chips", waste a little more and use 3 chips. SOT package
chips. You can get single logic gates in SOT packages and I for one would
be very suprised if you can do the job in less space. Of course, your
mileage may vary, etc.
MD
At 02:18 PM 10/14/04, you wrote:
{Quote hidden}> > On Thu, 2004-10-14 at 16:12, Denny Esterline wrote:
> > > I need a simple logic function, a two input AND feeding a two input OR
> > > feeding another two input AND [see picture]. Since I don't need any
>other
> > > logic in the project I hate waste the space and use two chips, is
>anyone
> > > else's Boolean algebra less rusty that mine? Is there a one part
> > > implementation (other than a PAL or CPLD)?
> >
> > What about a PIC? A 12F629 could do the same. TTYL
> >
>
>Sorry, I seem to have left out a crucial detail - 50MHz.
>
>-Denny
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@175721
by
Denny Esterline
|
> If you inputs are A, B (going to the first AND) C (additional input to
the
> OR) and D (additional input to the last AND) then your diagram is:
>
> Out = ( A * B + C ) * D
>
> Using a 4 gate NAND chip, you can get
>
> Out = /( A * B + C ) * D
>
> In other words, the exact same thing, but with the output inverted or you
> can get
>
> Out = ( A * B + /C ) * D
>
There we go. The output was to feed a counter anyway, so an inverted output
really won't matter. Saves me a chip - I knew the piclist was good for
something other than consuming mass amounts of my time ;-)
-Denny
begin 666 And-or-and inverted.gif
M1TE&.#=A*@%H`( ``````/___R'Y! ``````+ `````J`6@`0 +_C(^IR^T/
MHYRTVHNSWKQ;P &@1Y;FB:;J.J+M"L?R3-?!>XH'#O/V#Z2)AL2B\8A,ZG)!
MA/))9#:GU*I5FEK>:KY,]TKZ3K1@KTH<0V_4-C;$?8&7Y MZG6RU4_2F)X8O
MH0581@4X6$>8\ *EY)+X& <I.4E9B6B)F:DY=;CI^0D:*CI*6LK%B)HZA&7:
MZCK3Z2#X2EN[=L9YNQ9K:]FYZLI[V4M</,;2(ARA[/0(HIK$^@.-Y%C(HDA]
MZ!=YEBS#W!IN,![24;YEW*8.]HO'/@TO/X\+KWV/GZ^_S]_O#TPOH,"!! L:
M/(@PH2UEZ!0ZQ&;MH41)#1M.O-@M2[9_1-PP>DRG,8C%CZ7*C7RP;0[)1,Q.
M@@NY,N:Z>D#<R:15<2/':'UNDLHIDN8KAC]A!O6VHTHLDT?-J,R#+*E((QJ
M<IF([<ZDOS\0=^P\0DQ?Q"M@G1KU.>Q#B'?.SIU%FQ;NGIYRW]2]6\DEWKUJ
M^?IM]S>P4L&$"QL^C#BQXL6,&SM^#-D3O\B*>;&EO+<EYL#C]&XNQO3SW:RB
MZ^8$6)JD57*I57=E#:LUJ-.7A<K.1+K)MGVW^XZ-5]5#[=[-?@,W*YRX+&FS
MC2L'N5;<6^63:^6>*O;Y2URHMT?7/CV,(B%TP3\]J[>S>?'<ASMWNY!W,-LS
MWQ<]YYD^^Z:.ND\U=UYS]L5F6WX*+#5@#[H$J-MKT-4$'W,$(K<+8.T9J%-*
MX2E8E7PLZ5=3-5Q=.*%#UVMQTDA&OXV$H2\;MI&B;RN.1F&$9(FH(A/^H65(
M&"TN$T5P+\)EB(<N`I@@CRLAF*22J@69HXV<-2:,>WC]&%!UBV&YWD!<=IDE
DF(Y]*:8\9);)SIEH&J/FFF&Y"6><<LY)9YUVWHEGG@H4```[
`
end
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@181847
by
Bob Ammerman
Try a 74xx151 multiplexer.
Naming the inputs from your original diagram:
A & B are the inputs to the left-side and gate.
C is the input to the or gate
D is the input to the right side and gate
Connect A, B and C to the A, B and C address inputs of the mux.
Connect D to mux inputs 3, 4, 5, 6 and 7
Connect the remaining mux inputs to ground.
The output will be the signal you want.
Bob Ammerman
RAm Systems
{Original Message removed}
2004\10\14@183406
by
Denny Esterline
I had forgotten that trick. Would work fine, but James pointed me to a way
to get there with four NAND gates, which will work out for me.
Thanks though,
-Denny
{Quote hidden}> Try a 74xx151 multiplexer.
>
> Naming the inputs from your original diagram:
>
> A & B are the inputs to the left-side and gate.
> C is the input to the or gate
> D is the input to the right side and gate
>
> Connect A, B and C to the A, B and C address inputs of the mux.
>
> Connect D to mux inputs 3, 4, 5, 6 and 7
>
> Connect the remaining mux inputs to ground.
>
> The output will be the signal you want.
>
> Bob Ammerman
> RAm Systems
>
>
>
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\14@221403
by
Dave Lag
two diodes and and resistor for the OR?
D
At 04:12 PM 10/14/04, you wrote:
>I need a simple logic function, a two input AND feeding a two input OR
>feeding another two input AND [see picture]. Since I don't need any other
>logic in the project I hate waste the space and use two chips, is anyone
>else's Boolean algebra less rusty that mine? Is there a one part
>implementation (other than a PAL or CPLD)?
>
>Thanks
>-Denny
>
>
>
>
>_______________________________________________
>http://www.piclist.com
>View/change your membership options at
>http://mailman.mit.edu/mailman/listinfo/piclist
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\15@002323
by
Anand Dhuru
Hi,
Your second post about the 50MHz operation would probably rule this out, but
take a look at arblogic at http://www.eclectic-web.co.uk/mike/downloads.htm
One can burn virtually any boolean equation in a atandard EPROM.
Regards,
Anand
{Original Message removed}
2004\10\15@040948
by
Morgan Olsson
Dave Lag 04:15 2004-10-15:
>two diodes and and resistor for the OR?
That is wasting an R
A ->|---,
o--- Q
B -[R]--´
____
Nice idea about the multiplexer, Bob!
/Morgan
--
Morgan Olsson, Kivik, Sweden
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\15@155934
by
Peter L. Peres
On Fri, 15 Oct 2004, Anand Dhuru wrote:
> Hi,
>
> Your second post about the 50MHz operation would probably rule this out, but
> take a look at arblogic at http://www.eclectic-web.co.uk/mike/downloads.htm
>
> One can burn virtually any boolean equation in a atandard EPROM.
A 50MHz EPROM would be 10 nsec. Not an off the shelf part. You can do that
with a fast SRAM, but it must be loaded with data during boot. That works
but it takes more than one chip and burns a lot of power.
Peter
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\15@155945
by
Peter L. Peres
|
On Thu, 14 Oct 2004, Denny Esterline wrote:
>> On Thu, 2004-10-14 at 16:12, Denny Esterline wrote:
>>> I need a simple logic function, a two input AND feeding a two input OR
>>> feeding another two input AND [see picture]. Since I don't need any
> other
>>> logic in the project I hate waste the space and use two chips, is
> anyone
>>> else's Boolean algebra less rusty that mine? Is there a one part
>>> implementation (other than a PAL or CPLD)?
>>
>> What about a PIC? A 12F629 could do the same. TTYL
>>
>
> Sorry, I seem to have left out a crucial detail - 50MHz.
Imho at 50MHz with that gate topology you are opening a can of worms
(glitches etc). Imho you should use a clocked flipflop or two to
re-register the output or there may be trouble, so there should be more
than 1 chip anyway. And the clocked flipflops have enables which you
could use creatively to implement your function.
Peter
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\15@155947
by
Peter L. Peres
On Thu, 14 Oct 2004, Denny Esterline wrote:
> I had forgotten that trick. Would work fine, but James pointed me to a way
> to get there with four NAND gates, which will work out for me.
Just in case you're building a counter using a pic, my favorite
multiplexer is a resistor:
+----prescaler clk out (RA3)
|
in (low z) --R1(330Ohms)---*----counter input (RTCC for 16C54 ;-)
In my pic based counter (long time ago), I used a single section of 74HC00
wired as inverter, as buffer to drive the low z point. The counter was
tested to beyond 28MHz and would probably work to 50MHz. When RA3 is high
Z input pulses reach RTCC via R1. When RA3 is output it both forces the
RTCC input to the desired level (H or L) and can be used to clock out the
prescaler.
Peter
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\15@180859
by
James Newtons Massmind
2004\10\15@221614
by
Bob Ammerman
|
From: "James Newtons Massmind" <jamesnewton
spam_OUTmassmind.org>
To: "'Microcontroller discussion list - Public.'" <@spam@piclistKILLspam
mit.edu>
Sent: Friday, October 15, 2004 6:08 PM
Subject: RE: [EE] AND-OR-AND - simplest implementation?
>I think I understand your suggestion, but doesn't the prescaler output
>cause
> the counter to stop counting? Is that what you ment by "clock out the
> prescaler"?
>
> ---
> James Newton: PICList webmaster/Admin
"Clocking out the prescaler" means providing enough additional input clocks
to the prescaler to cause the main counter to count once more. By counting
the number of such additional counts required you can determine what the
value of the prescaler was when you stopped the measurement, thus giving you
extra precision equal to the number of bits in the prescaler.
Bob Ammerman
RAm Systems
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\16@020909
by
James Newtons Massmind
Ok. It's only 11pm, I've read that paragraph 4 times now, and I still don't
got it.
When the prescaler output goes high, the external clocks can't be seen
anymore at the clock input and so it doesn't count any more. So the
prescaler output stays high... And we still aren't counting.
What am I missing?
---
James.
> {Original Message removed}
2004\10\16@084747
by
Peter van Hoof
|
This is how it works:
-a pic output pin gates the counter input
-input pulses increment prescaler and at prescaler rollover the counter
increments
-time is up the gate pin is deactivated and the counter is switched over to
count pulses from a pic output pin
-by pulsing this pic output pin and checking after each pulse if the main
counter rolled over yet we can determine what the count in the prescaler was
thus recovering the full accuracy of the prescaler and counter combined
Peter
----- Original Message -----
From: "James Newtons Massmind" <KILLspamjamesnewtonKILLspam
massmind.org>
To: "'Microcontroller discussion list - Public.'" <RemoveMEpiclistTakeThisOuT
mit.edu>
Sent: Saturday, October 16, 2004 2:08 AM
Subject: RE: [EE] AND-OR-AND - simplest implementation?
{Quote hidden}> Ok. It's only 11pm, I've read that paragraph 4 times now, and I still
> don't
> got it.
>
> When the prescaler output goes high, the external clocks can't be seen
> anymore at the clock input and so it doesn't count any more. So the
> prescaler output stays high... And we still aren't counting.
>
> What am I missing?
>
> ---
> James.
>
>
>
>> {Original Message removed}
2004\10\16@091724
by
Peter van Hoof
|
on this page http://www.piclist.com/techref/piclist/weedfreq.htm (yours) you
have the whole cirquit (and it is with all gates in ONE package) and has the
assembler listing
Peter
----- Original Message -----
From: "Peter van Hoof" <spamBeGonepvhspamBeGone
adelphia.net>
To: "Microcontroller discussion list - Public." <TakeThisOuTpiclistEraseME
spam_OUTmit.edu>
Sent: Saturday, October 16, 2004 8:47 AM
Subject: Re: [EE] AND-OR-AND - simplest implementation?
{Quote hidden}> This is how it works:
>
> -a pic output pin gates the counter input
>
> -input pulses increment prescaler and at prescaler rollover the counter
> increments
>
> -time is up the gate pin is deactivated and the counter is switched over
> to count pulses from a pic output pin
>
> -by pulsing this pic output pin and checking after each pulse if the main
> counter rolled over yet we can determine what the count in the prescaler
> was thus recovering the full accuracy of the prescaler and counter
> combined
>
> Peter
>
> ----- Original Message -----
> From: "James Newtons Massmind" <
RemoveMEjamesnewton
TakeThisOuTmassmind.org>
> To: "'Microcontroller discussion list - Public.'" <
piclistEraseME
.....mit.edu>
> Sent: Saturday, October 16, 2004 2:08 AM
> Subject: RE: [EE] AND-OR-AND - simplest implementation?
>
>
>> Ok. It's only 11pm, I've read that paragraph 4 times now, and I still
>> don't
>> got it.
>>
>> When the prescaler output goes high, the external clocks can't be seen
>> anymore at the clock input and so it doesn't count any more. So the
>> prescaler output stays high... And we still aren't counting.
>>
>> What am I missing?
>>
>> ---
>> James.
>>
>>
>>
>>> {Original Message removed}
2004\10\16@143916
by
Bob Ammerman
> Ok. It's only 11pm, I've read that paragraph 4 times now, and I still
> don't
> got it.
>
> When the prescaler output goes high, the external clocks can't be seen
> anymore at the clock input and so it doesn't count any more. So the
> prescaler output stays high... And we still aren't counting.
>
> What am I missing?
My understanding is that the original description was a bit confused. As I
see it the output pin gets tri-stated and the count accumultated. After the
appropriate interval the counter is stopped by driving the output pin hi.
Then the output is toggled as many times as needed to get the prescaler to
carry into the main counter.
Bob Ammerman
RAm Systems
>
>> {Original Message removed}
2004\10\16@152533
by
Peter L. Peres
On Fri, 15 Oct 2004, James Newtons Massmind wrote:
> Ok. It's only 11pm, I've read that paragraph 4 times now, and I still don't
> got it.
>
> When the prescaler output goes high, the external clocks can't be seen
> anymore at the clock input and so it doesn't count any more. So the
> prescaler output stays high... And we still aren't counting.
>
> What am I missing?
See my other posting. The prescaler is in 'series' with rtcc. rtcc can be
read as a register but the prescaler can't. So you pulse it one pulse at a
time until rtcc increments by one. When it does, you have supplied k
pulses to it. If you count them in a decrementing counter, from 0, modulo
256, then when it increments the counter will contains th previous value
of rtcc (the value since before you started incrementing it).
Peter
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\16@152541
by
Peter L. Peres
|
On Fri, 15 Oct 2004, James Newtons Massmind wrote:
> I think I understand your suggestion, but doesn't the prescaler output cause
> the counter to stop counting? Is that what you ment by "clock out the
> prescaler"?
The prescaler is 'welded' to the rtcc counter. So when the gate closes you
have the value in the counter and the value in the prescaler. The value in
the rtcc you read out using movf etc since it's a register. Then you have
the prescaler to deal with. The prescaler is 8 bits wide (in my case) and
takes up to 256 pulses to clear out. Meanwhile, you can't assign to rtcc
without clearing the prescaler. So this is done like:
movf RTCC,w ; get current counter in w
movwf Frtcch ; temp. rtcc storage, also output reg.
clrf Frtccl ; it took zero pulses to increment rtcc
loop:
movf Frtcch,w ; get stored value
subwf RTCC,w ; compare: Z = 1 if not changed
btfsc STATUS,Z ; not changed
goto done_ok ; changed
bsf Fgate,Bgate ; pulse rtcc once
nop ; allow outputs to settle
bcf Fgate,Bgate ; if rtcc overflows rtcc will increment
decfsz Frtccl,f ; it took 1 more pulse to inc rtcc
goto loop ; keep trying
done_ng:
; bad things happened. hardware fault. so do something about it
done_ok:
; Ftemp contains the value of rtcc since before we started
Peter
PS: this code is unchecked, and from memory. My counter actually uses 24
bits so clocking out involves an adjustment for the MSB carry which occurs
when/if rtcc,7 goes 1. My gate time is up to 100 seconds afair (with some
overflow at 50MHz - the point is to get it accurate for low frequency
like 32768Hz).
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
2004\10\18@141707
by
Paul VanGraafeiland
|
Once upon a time Phil Eisermann said:
> > EraseMEpiclist-bounces
mit.edu wrote:
> > I need a simple logic function, a two input AND feeding a two input OR
> > feeding another two input AND [see picture]. Since I don't need any
> > other logic in the project I hate waste the space and use two chips,
> > is anyone else's Boolean algebra less rusty that mine? Is there a one
> > part implementation (other than a PAL or CPLD)?
> >
>
> umm. a PIC <vbg>
>
> seriously, though. I don't see anything simpler than D[AB+C] e.g. the
> circuit you have shown. The only 'trick' i remember off the top of my
> head would be the old 'decoder as a minterm generator', but that was
> already old way back when I was young :) Do they still teach that in
> school? In any case it makes no sense in this application.
>
> Unless you can 'design-out' the need for the logic function?
When I first read this post I knew there was another way to do this, but I
couldn't remember what it was. I was just sitting here thinking about
other things, and it came to me. You need three 3-Input NAND gates, such
as found in a 74HC10 or equivalent.
Wire A, B and D as the inputs to the first NAND gate, giving !(ABD) as the
output. Wire C and D to the second NAND gate, tying the third input high,
gives !(CD) as the output. Lastly, you wire the outputs of the first two
NAND gates to inputs of the third, again tying the unused input high. The
output from the third gate is now !( !(ABD) !(CD) ). Using DeMorgan's
theorem, this simplifies to ABD + CD, which is just another way of writing
D(AB+C).
I hope this is of some help.
Paul VanGraafeiland
_______________________________________________
http://www.piclist.com
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist
More... (looser matching)
- Last day of these posts
- In 2004
, 2005 only
- Today
- New search...