Shop OBEX P1 Docs P2 Docs Learn Events
PPDB wiring for 2... 16-bit I2C expanders and 16 Segment display??? — Parallax Forums

PPDB wiring for 2... 16-bit I2C expanders and 16 Segment display???

Jorge PJorge P Posts: 385
edited 2011-05-21 19:01 in Propeller 1
I don't know how difficult this project will be, but I am trying to use two PCA9555N I2C bus expanders to drive the 6 digit 17-Segment displays on the PPDB. Here is how I currently have it wired, no code yet...

Just looking for opinions on whether or not I should wire it differently...
{{
  Designed for the Parallax Professional Development Board, PPDB, parallax Item #32111
  Using two PCA9555N - 16-Bit I2C Expander IC's
 
  By Jorge J Pareja
 
        DEV_A           = %0100__000__0
                                   x xxxx xxxx = unused as of yet
        DEV_A_DIRECTION = %1000_0000_0000_0000 
   ┌────────────────────────────────────────────────────────────────────┐
   │                            IC_1                          Vdd       │
   │                 ___     ┌────┐┌────┐                      │        │
   │     unconnected INT─────┤    └┘    ├───Vdd────Vdd                 │
   │            Vss──Addr1───┤          ├───SDA────────────────┴─P14    │      
   │            Vss──Addr2───┤ PCA9555N ├───SCL────────────────┬─P15    │      
   │                      00─┤          ├───Addr0──Vss                 │
   │                      01─┤  DEV_A   ├─15────DP             │        │
   │                      02─┤          ├─14────R.Digit3      Vdd       │
   │                      03─┤          ├─13────L.Digit3                │
   │ PORT 0               04─┤          ├─12────R.Digit2                │
   │                      05─┤          ├─11────L.Digit2   PORT 1       │
   │                      06─┤          ├─10────R.Digit1                │
   │                      07─┤          ├─09────L.Digit1                │
   │            Vss──GND─────┤          ├─08                            │
   │                         └──────────┘                               │ 
   └────────────────────────────────────────────────────────────────────┘
 
        DEV_B           = %0100__001__0
        DEV_B_DIRECTION = %1111_1111_1111_1111
 ┌────────────────────────────────────────────────────────────────────┐
   │                            IC_2                          Vdd       │
   │                 ___     ┌────┐┌────┐                      │        │
   │     unconnected INT─────┤    └┘    ├───Vdd────Vdd                 │
   │            Vss──Addr1───┤          ├───SDA────────────────┴─P14    │      
   │            Vss──Addr2───┤ PCA9555N ├───SCL────────────────┬─P15    │      
   │                A1────00─┤          ├───Addr0──Vdd                 │
   │                A2────01─┤  DEV_B   ├─15────G1             │        │
   │                 B────02─┤          ├─14────M             Vdd       │
   │                 C────03─┤          ├─13────L                       │
   │ PORT 0         D1────04─┤          ├─12────K                       │
   │                D2────05─┤          ├─11────G2         PORT 1       │
   │                 E────06─┤          ├─10────J                       │
   │                 F────07─┤          ├─09────I                       │
   │            Vss──GND─────┤          ├─08────H                       │
   │                         └──────────┘                               │ 
   └────────────────────────────────────────────────────────────────────┘
}}
I am hoping to go the easiest route for programming, hopefully using code for the 16 segment display demo from OBEX http://obex.parallax.com/objects/545/ and code examples from http://forums.parallax.com/showthread.php?111067-Sixteen-Segment-Display-on-Popeller-Professional-Development-Board&p=790643&viewfull=1#post790643 and It looks like Chris Savage never got around to uploading his finished code to OBEX, maybe its still laying around someplace or called something different.

Any hints or tips?

EDIT: just noticed I forgot to change A0 line on DEV_A to Vss...

Comments

  • RobotWorkshopRobotWorkshop Posts: 2,307
    edited 2011-05-02 12:44
    Have you seen this driver board that uses some 74HC595 chips?

    http://forums.parallax.com/showthread.php?129182-New-LED-driver-for-PPDB-Now-Available

    I have one and it works great! Easy to use and only a few pins are needed on the Propeller

    Robert
  • Jorge PJorge P Posts: 385
    edited 2011-05-21 19:01
    Have you seen this driver board that uses some 74HC595 chips?

    http://forums.parallax.com/showthread.php?129182-New-LED-driver-for-PPDB-Now-Available

    I have one and it works great! Easy to use and only a few pins are needed on the Propeller

    Robert

    No, I already have the PCA9555 IC's, I have the code for this IC working but before writing code for the 16/17 segment display on the PPDB I would like some feedback from everyone/anyone for the pin assignments I should use. For me it dont matter, but I would like to put this in OBEX when I have it finished so others may use it. I know these are 17 Segment displays including the decimal point which I want to incorporate. 16 bits dont quite cut it, so I am using 2 PCA9555's! One will controll the 16 segments, the other will controll the decimal point and the digit selection.

    It is the pinout of the PCA9555 controling the digit and decimal point that I could wire a bit differently, I will need all of PORT 0 on this IC to be for the 4x4 keypad. This will leave me with one pin left over out of 32. In the wiring diagram in my first post, on DEV_A I think I should move PORT 1 down 1 bit so L.Digit1 is on pin 8... etc... leaving pin 15 the free pin.

    Would that make it any easier for programming on the PPDB???
    For compatability with other boards, what Propeller pins should I use for the I2C lines???

    Thanks in advance
    Jorge
Sign In or Register to comment.