Electronic Projects, forums and more.

Go Back   Electronic Circuits Projects Diagrams Free > Electronics Forums > General Electronics Chat


General Electronics Chat This forum is for general chat about electronics, eg: Dont know what a part does? Dont know how to read a circuit? Want to get an opinion?

Reply
 
LinkBack Thread Tools Display Modes
Old 21st April 2006, 04:43 AM   (permalink)
Default 2N7000 does this work? (in a common anode display)

I was under the impression that the Gate on a 2N7000 had to be a higher voltage than the Drain for the device to turn on.

I've attached the schematic and the full article can be found here.

http://massmind.org/techref/io/led/8x7s8pin.htm

I've used 2N7000s before but not with the drain tied to +5.

Hey Mike, it's your schematic!!! It was this schematic that inspired me to design using charlieplexing
(I don't want to pay $10 for the maxim chip even though it's a great chip)
Attached Images
File Type: gif qn38607.gif (14.1 KB, 456 views)
__________________
Bill
Home of the
Firefly PIC Tutor
Inchworm ICD2

http://www.blueroomelectronics.com
William At MyBlueRoom is offline  
Old 21st April 2006, 05:27 AM   (permalink)
Default Re: 2N7000 does this work? (in a common anode display)

Quote:
Originally Posted by William At MyBlueRoom
I was under the impression that the Gate on a 2N7000 had to be a higher voltage than the Drain for the device to turn on.
No, the gate has to be at a higher voltage than the source.

The configuration uses the 2N7000s in the source follower mode. Equivalent to the emitter follower mode with BJTs.

It is a very good idea.
__________________
Len
ljcox is offline  
Old 21st April 2006, 09:11 AM   (permalink)
Default Re: 2N7000 does this work? (in a common anode display)

Quote:
Originally Posted by ljcox
Quote:
Originally Posted by William At MyBlueRoom
I was under the impression that the Gate on a 2N7000 had to be a higher voltage than the Drain for the device to turn on.
No, the gate has to be at a higher voltage than the source.

The configuration uses the 2N7000s in the source follower mode. Equivalent to the emitter follower mode with BJTs.

It is a very good idea.
I wouldn't have thought so?, presumably you lose considerable voltage across the FET's?, and you don't have much to lose from a 5V supply. What about using P gate ones instead?.
__________________
PIC programmer software, and PIC Tutorials at:
http://www.winpicprog.co.uk
Nigel Goodwin is online now  
Old 21st April 2006, 10:07 AM   (permalink)
Default Re: 2N7000 does this work? (in a common anode display)

Quote:
Originally Posted by Nigel Goodwin
What about using P gate ones instead?.
Can't do. With common anode 7-segment display, Charlieplexing relies on port pin goes into logic HIGH or high impedance to turn OFF a segment, and LOW to turn them ON. For those digits other than the current digit, the P type MOSFET gate would float to some voltage in between HIGH and LOW. If one output a LOW to any other port pin to turn ON a segment, the P-MOSFET whose gate on that port pin will turns ON too.

Charlieplexing is very difficult to adopt for use if LED current exceeds the driving capability of uC.

I have tried to design such an interface but failed. Perhaps others can do it better than I.
__________________
L.Chung
eblc1388 is offline  
Old 21st April 2006, 04:02 PM   (permalink)
Default

Could I put a 1N4001 diode between the +5 rail and the drain of the 2N7000s This should in theroy drop the drain vcc to 4.3V still more than enough to drive the LEDs even 2" ones.

Also I thought the voltage drop across the 2N7000 was very small, almost zero unlike a 2N3906.
__________________
Bill
Home of the
Firefly PIC Tutor
Inchworm ICD2

http://www.blueroomelectronics.com
William At MyBlueRoom is offline  
Old 21st April 2006, 11:29 PM   (permalink)
Default

Quote:
Originally Posted by William At MyBlueRoom
Could I put a 1N4001 diode between the +5 rail and the drain of the 2N7000s This should in theroy drop the drain vcc to 4.3V still more than enough to drive the LEDs even 2" ones.

Also I thought the voltage drop across the 2N7000 was very small, almost zero unlike a 2N3906.
Nigel is talking about the gate to source voltage which is typically 2.1 V for a drain current of 1 mA. A diode in series will make it worse, not better.

It will only work for a low current display. You would need to use displays that are bright enough to read with a steady current of <3 mA since to mux 8 displays, you will need a current pulse 8 times that of the steady current. eg. if 2.5 mA is adequate for a constant current, then the pulse will have to be 20 mA.

The PIC can only sink 25 mA.

I would use NPN transistors rather than the FETs since the Vbe is about 0.7V thus providing more voltage for the LEDs and sundry voltage drops.
__________________
Len
ljcox is offline  
Old 23rd April 2006, 01:02 PM   (permalink)
Default Re: 2N7000 does this work? (in a common anode display)

Quote:
Originally Posted by William At MyBlueRoom
I was under the impression that the Gate on a 2N7000 had to be a higher voltage than the Drain for the device to turn on.

I've attached the schematic and the full article can be found here.

http://massmind.org/techref/io/led/8x7s8pin.htm

I've used 2N7000s before but not with the drain tied to +5.

Hey Mike, it's your schematic!!! It was this schematic that inspired me to design using charlieplexing
(I don't want to pay $10 for the maxim chip even though it's a great chip)
No, that schematic doesn't work... I haven't had any luck getting Mr. Newton to remove it... Here's a more up-to-date Charlieplexing Driver drawing for common anode or common cathode displays...

As mentioned, unless using low current displays from Agilent or others (2-3 ma / segment), Charlieplexed display brightness is limited by the I/O pin current spec... BTW, Charlieplexed common anode displays are brighter than common cathode displays because an I/O pin can sink more current than it can source...

Regards, Mike
Attached Images
File Type: jpg charlieplexed_display_wiring_notes.jpg (169.4 KB, 343 views)
Mike, K8LH is offline  
Old 23rd April 2006, 02:14 PM   (permalink)
Default

I use Charlieplexing as a reduced-pin-count display solution for low current displays or for small discrete LED matrices...

For a reduced-pin-count solution using 'standard' 20-ma / segment displays I use an additional driver chip and standard multiplexing to produce a full brightness display (with PWM fade control) and a 9-pin interface... I use 16-pin Micrel MIC5821 or Allegro A6821 drivers or 18-pin Micrel MIC5841 or Allegro A6841 drivers... The PNP anode column driver transistors are 2N4403/MMBT4403 (600-ma) or PN2907A/MMBT2907A (800-ma)...

Here's one way to drive the display depicted in the drawing below;

Code:
;
;  A minimum PWM 'on' time of 2% guarantees a minimum window
;  of 20-usecs (100 instruction cycles) at the beginning of
;  each interrupt cycle where PWM drives the <OE> input high
;  (display off)...  This allows us to reuse the RB1 and RB2
;  column driver lines temporarily as '5841 <DAT> and <CLK>
;  lines to load the '5841 (without messing up the display) 
;  before RB1 and RB2 resume their column driver duties when
;  PWM drives <OE> low (display on)...     
;                            
;  The 2% minimum PWM 'on' time limits maximum brightness to
;  98% but the 2% loss of brightness is inperceivable
;
ISR_LED	
        movf    BUFPTR,W        ; get LED seg data buffer ptr     |B0
        movwf   FSR             ; setup for indirect address      |B0
        movf    INDF,W          ; get seg data for this column    |B0
        movwf   WORK            ; put it in the WORK variable	  |B0
        movlw   d'8'            ;                                 |B0
        movwf   TEMP            ; serial bit count                |B0
ISR_Load	
        bcf     SERCLK          ; preset '5841 CLK line lo (RB1)  |B0
        bcf     SERDAT          ; preset '5841 DAT line lo (RB2)  |B0
        rlf     WORK,f          ; shift data bit into Carry	    |B0
        skpnc                   ; a '1' bit?                      |B0
        bsf     SERDAT          ; yes, set SERDAT line to 1       |B0
        bsf     SERCLK          ; clock data bit into the '5841   |B0
        decfsz  TEMP,f          ; all 8 bits sent/loaded?         |B0
        goto    ISR_Load        ; no, branch and do another       |B0
;
;  now setup Port B column drivers before PWM drives the '5841
;  <OE> pin low to turn on the segment driver outputs & display
;
;  COLPOS variable cycles through the following fixed values
;  one interrupt at a time to 'scan' the display and switches;
;
;  00000001, column 0, inverted 11111110
;  00000010, column 1, inverted 11111101
;  00000100, column 2, inverted 11111011
;  00001000, column 3, inverted 11110111
;  00010000, column 4, inverted 11101111
;  00100000, column 5, inverted 11011111
;  01000000, column 6, inverted 10111111
;  10000000, column 7, inverted 01111111
;
ISR_Column
        comf    COLPOS,W        ; invert bits (only 1 bit low)    |B0
        movwf   PORTB           ; setup the column drivers        |B0
;
;  prep the ISR 'scan' and buffer pointer variables for the next
;  column 'scan' interrupt
;
ISR_NextColumn
        incf    BUFPTR,f        ; increment LEDBUF pointer        |B0
        bcf     STATUS,C        ; clear Carry                     |B0
        rlf     COLPOS,f        ; shift column position           |B0
        skpc                    ; all 8 columns scanned?          |B0
        goto    ISR_PWM         ; no, branch, else                |B0
;
;  reset ISR scan and buffer pointer variables for column 0
;
        movlw   LEDBUF          ; reset scan sequence             |B0
        movwf   BUFPTR          ; reset LEDBUF pointer            |B0
        rlf     COLPOS,f        ; reset COLPOS to 00000001        |B0
;
Regards, Mike
Attached Images
File Type: jpg 8-digit_std_multiplexed_pwm_k8lh_design.jpg (83.3 KB, 313 views)
Mike, K8LH is offline  
Old 23rd April 2006, 03:15 PM   (permalink)
Default Re: 2N7000 does this work? (in a common anode display)

Quote:
Originally Posted by Mike, K8LH
Quote:
Originally Posted by William At MyBlueRoom
I was under the impression that the Gate on a 2N7000 had to be a higher voltage than the Drain for the device to turn on.

I've attached the schematic and the full article can be found here.

http://massmind.org/techref/io/led/8x7s8pin.htm

I've used 2N7000s before but not with the drain tied to +5.

Hey Mike, it's your schematic!!! It was this schematic that inspired me to design using charlieplexing
(I don't want to pay $10 for the maxim chip even though it's a great chip)
No, that schematic doesn't work... I haven't had any luck getting Mr. Newton to remove it... Here's a more up-to-date Charlieplexing Driver drawing for common anode or common cathode displays...

As mentioned, unless using low current displays from Agilent or others (2-3 ma / segment), Charlieplexed display brightness is limited by the I/O pin current spec... BTW, Charlieplexed common anode displays are brighter than common cathode displays because an I/O pin can sink more current than it can source...

Regards, Mike
Mike, I must be really dense. ops:
How do you turn on a segment that lies on the diagonal line, e.g., segment A on the rightmost display?
__________________
Ron

Roff is offline  
Old 23rd April 2006, 03:43 PM   (permalink)
Default Re: 2N7000 does this work? (in a common anode display)

Quote:
Originally Posted by Ron H
Mike, I must be really dense. :oops:
How do you turn on a segment that lies on the diagonal line, e.g., segment A on the rightmost display?
Hi Ron,

I call that diagonal line the "float bit" or "float pin"... RB0 normally carries out segment A driver duties, that is, it's normally driven as output=1 to light segment A for a particular column (common cathode) or it's set to a hi-z input (neither sourcing or sinking current) to leave segment A unlit... When RB0 is called upon to perform its column driver function (driven low to enable a column) it can't perform its normal segment A driver duties and so we "float" the segment A driver duties onto that RA0 "float pin"...

So we use this "float" mechanism to allow each I/O pin to perform double duty as both a segment driver and as a column driver... Pretty slick, yes, no, maybe, huh?

Regards, Mike
Mike, K8LH is offline  
Old 23rd April 2006, 04:04 PM   (permalink)
Default

I'm even denser than I thought I was. For some reason, I wasn't looking at the diagonal line as an actual connection. I was thinking that segment A in the rightmost column was driven by RB0. Duhhhh.... Brain fart.
Thanks, Mike.
__________________
Ron

Roff is offline  
Old 23rd April 2006, 04:12 PM   (permalink)
Default

Ron,

I apologize... That's definately a shortcoming in that drawing... I'd like to come up with a better and more intuitive drawing but "no joy" so far...

Regards, Mike
Mike, K8LH is offline  
Old 23rd April 2006, 06:16 PM   (permalink)
Default

Quote:
Originally Posted by Mike, K8LH
Ron,

I apologize... That's definately a shortcoming in that drawing... I'd like to come up with a better and more intuitive drawing but "no joy" so far...

Regards, Mike
It wasn't your fault, Mike. It should have been clear to me.

Ron
__________________
Ron

Roff is offline  
Old 23rd April 2006, 11:53 PM   (permalink)
Default

Here is a display driver that uses minimal PIC i/o lines; drawn with a finger nail dipped in tar.

It is drawn for a common anode display, but a common cathode version is also possible.

It is only suitable for low current displays due to the current sinking limit of the 74LS47.

It would be possible to eliminate transistors Q1 ~ 8 if the 74HC42 was replaced by an Active High 1/10 decoder with sufficient source current.

A 3 i/o line using shift registers is possible if SRs with sufficient output sourcing/sinking are available.
Attached Images
File Type: gif muxing_113.gif (49.9 KB, 259 views)
__________________
Len
ljcox is offline  
Old 24th April 2006, 03:07 AM   (permalink)
Default

Hi Len,

Your two chip solution only uses 7 pins and would be brighter than a Charlieplexed display but, as you say, the 'LS47 40-ma output current limit is probably a bit shy of the current required to drive standard current displays to full brightness in a multiplexed 12.5% duty cycle 8 digit display...

If you're going to throw chips at the problem, so to speak, in order to reduce the interface pin requirement, you might as well do it in a way to provide full brightness and more capability... I would suggest replacing the 'LS42 with an 'HC595 serial-to-parallel SR to drive the column transistors and replacing the 'LS47 with a serial '5821 or '5841 sinking driver (350-ma) for the cathode segments... The two chip 'HC595 and '5821/'5841 solution would use a 3 pin or 4 pin interface (Data, Clock, Strobe, and optional PWM), would be capable of driving 'standard current' displays to full brightness with optional PWM brightness control, and would support additional 8 digit displays (or 8x8 matrices) easily using the same 3 or 4 pin interface...

Food for thought... Kind regards, Mike
Mike, K8LH is offline  
Reply

Bookmarks

Thread Tools
Display Modes





All times are GMT. The time now is 09:53 AM.


Electronic Circuits  |  Learning Electronics
Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.

eXTReMe Tracker