element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Personal Blogs
  • Community Hub
  • More
Personal Blogs
NexGen Flight Simuator NexGen: CDU Pinlite Displays: Final Word !! REDACTED!!!!
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: phoenixcomm
  • Date Created: 20 Feb 2021 11:00 PM Date Created
  • Views 911 views
  • Likes 5 likes
  • Comments 5 comments
Related
Recommended

NexGen: CDU Pinlite Displays: Final Word !! REDACTED!!!!

phoenixcomm
phoenixcomm
20 Feb 2021

imageSTATEMENT:  I have a problem refreshing, the  20 odd displays in less than 1/4 second each, which would let them seem that there all bright, but they will be dim, to begin with. So multiplexing is now out for the 7 segment displays, but I still will multiplex the four 16 segment displays.

SOLUTION: I found an IC that handles eight 7-segment displays and it has a built-in SPI interface. The device is a MAX-7221 which will give me a solution for my problem.

As you can see in the block diagram this device has separate segment and digit drivers.

image

Arduino Mega
SCLK MOSI MISO CS
52 51 50
MAX-7211

CLK

(13)

DIN
(1)


N.A
LOAD
12
SC-0 (49

SC-1 (48)

CS-2 (47)
Table I
Arduino 3-bit Decoder Pins
48 47 46
Arduino Alpha Drive Pins
45 44 43 42 41
40 39 38 37 36
35 34 33 32 31
30 - - - -
Table II

 

As shown in Table I  the pins between the Arduino Mega and the MAX-7221. You will please notice that the MAX-7221 does not require MISO, and as it is ONLY a SLAVE.  You will also notice the change in the Pin Definitions promulgated by the Open Source Hardware Association.

As shown in Table II the pins between the Arduino Mega and the four 16-segment displays.  Pins 46, 47, 48 are the output to the row select which is accomplished by a BCD to Decimal

image
image

To drive this device is really quite simple, gee I wish I had some bi-polar PROMs image So I will have to do this the hard way. First I have to map the display to a letter. But the web to the rescue. there is a 16-segment font for your CRT etc.  So I still have a lot of work to do.

Letter ASCII Index A B C D E F G H I J K L M N O P Letter ASCII Index A B C D E F G H I J K L M N O P
A 41 11 x x x x x x x x S 53 29 x x x x x x
B 42 12 x x x x x x x x x T 54 30 x x x x
C 43 13 x x x x x x U 55 31 x x x x x x
D 44 14 x x x x x x V 56 32 x x x x
E 45 15 x x x x x x x x W 57 33 x x x x x x
F 46 16 x x x x x x X 58 34 x x x x
G 47 17 x x x x x x x x Y 59 35 x x x x x
H 48 18 x x x x x x Z 5A 36 x x x x x x
I 49 19 x x x x x x 0 30 0 x x x x x x x x x x
J 4A 20 x x x x x 1 31 1 x x
K 4B 21 x x x x x x x 2 32 2 x x x x x x x x
L 4C 22 x x x x 3 33 3 x x x x x x x x
M 4D 23 x x x x x x 4 34 4 x x x x x
N 4E 24 x x x x x x 5 35 5 x x x x x x x x
O 4F 25 x x x x x x x x 6 36 6 x x x x x x x x
P 50 26 x x x x x x x 7 37 7 x x x x
Q 51 27 x x x x x x x x x 8 38 8 x x x x x x x x x x
R 52 28 x x x x x x x x 9 39 9 x x x x x x x x x
Table III

typedef struct {

    int  offSet;

    int  hexChar;

    char letter;

    int  segments[16]; }  record_type ARRAY;

 

ARRAY[] ={{11, 31, 'A',{1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0}}, etc. };

 

void displayLetter ( char displayChar ) {

 

      for nt count = 0; count < 29; count++ ) {

          If  displayChar == ARRAY.letter; ) {

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // A

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // B

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // C

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // D

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // E

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // F

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // G

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // H

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  //  I

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // J

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // K

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count];);  // L

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  // M

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  //  N

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  //  O

                digitalWrite (ARRAY.segmentName[count], ARRAY.segments[count] );  //  P

              break; }}

Table IV

You will notice in table III  that I use an 'x' for TRUE or 1 and 'blank' for FALSE or 0.  Also, note my numbers start a 1 and then skips number 10. If you will notice I have 3 columns Letter, ASCII, and Index. I will use the Index column for my array but an array will not really work so you need a structure, see table IV the blue box on the right.

  • Sign in to reply

Top Comments

  • michaelkellett
    michaelkellett over 5 years ago +1
    The MAX7221 chips (and the similar 7219) are nice but pricey. A while ago I noticed that you could buy a Chinese 8 digit display with LEDs and MAX7219 for less than the price of the offical MAX chip. I…
  • phoenixcomm
    phoenixcomm over 5 years ago in reply to michaelkellett +1
    michaelkellett you can get two of them as samples (free). I can't change my displays as this is a piece of gear and the displays are Pinlites or little incandescent bastards that run at 15 volts per segment…
  • DAB
    DAB over 5 years ago +1
    The data update rate can usually be slower depending upon how fast you need to see it change. As long as you can tolerate some lag, updating once a second is usually good enough. When I was updating a…
Parents
  • DAB
    DAB over 5 years ago

    The data update rate can usually be slower depending upon how fast you need to see it change.

     

    As long as you can tolerate some lag, updating once a second is usually good enough.

     

    When I was updating a heads down helicopter display, the pilot only glanced at it about once a second while flying.

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 5 years ago in reply to DAB

    DAB Thank for the heads up but to do this with out flicker I need a 1/4 second or better on each display so lets say .5sec  /16 segments =  .03125 per segment. x 4 displays = 0.125 sec.

    nice target to shoot for. + this beast mus talk to a second Ardunio Mega aswell.

    ~~Cris

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • phoenixcomm
    phoenixcomm over 5 years ago in reply to DAB

    DAB Thank for the heads up but to do this with out flicker I need a 1/4 second or better on each display so lets say .5sec  /16 segments =  .03125 per segment. x 4 displays = 0.125 sec.

    nice target to shoot for. + this beast mus talk to a second Ardunio Mega aswell.

    ~~Cris

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • DAB
    DAB over 5 years ago in reply to phoenixcomm

    Have you considered a DMA implementation.

    I remember when Monte Chan used DMA to address a lot of LED's to send moving sprites in real time.

     

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube