Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

max6955 connection how to?

Status
Not open for further replies.
Joined
Dec 4, 2012
Messages
4,280
Helped
822
Reputation
1,654
Reaction score
791
Trophy points
1,393
Location
Bangalore, India
Activity points
0
Can somebody explain what is the connection scheme looking at the table attached. I need to use 8 X 16-Segment displays to display a string like "230.2635 V". The connection scheme is confusing.

91211d1368808203-max6955con.jpg
 

Attachments

  • max6955con.jpg
    max6955con.jpg
    196.6 KB · Views: 138

How to use the table tpetar. It shows Digit 0 to 7 in the table. What does it mean? For Digit 0 it shows some connection where O1 is not used. What does Digit 0 and Digit7 etc mean in the table. I need to use 8 X 16-Segments to display 230.1426 V. See image. See the Connection schemes. It shows Digit 0 and 1. What does it mean? I don't understand that. It shows two connection schemes for my settings.

91218d1368833302-scheme16seg.jpg


Edit: Now I came to know how to use the connection Scheme using table below. I did a connection for Digit 0 but it is not working. See images below.

91224d1368836924-consch.jpg


91223d1368836921-conprot.jpg
 

Attachments

  • scheme16seg.jpg
    scheme16seg.jpg
    193.1 KB · Views: 171
  • conprot.jpg
    conprot.jpg
    157.2 KB · Views: 188
  • consch.jpg
    consch.jpg
    80.2 KB · Views: 171
Last edited:

See Table 4 and 5 here https://www.maximintegrated.com/app-notes/index.mvp/id/3212

What am I doing wrong in the code. I am trying to display "MAXIM-IC". It is not working. I am attching Project + Proteus files.

CCS C v4.140 C Code


Code C - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <main.h>
 
#define MAX6955BaseAddress 0b11000000 
  
#define reg_noOp 0x00 
#define reg_decodeMode 0x01 
#define reg_globalIntensity 0x02 
#define reg_scanLimit 0x03 
#define reg_configuration 0x04 
#define reg_displayTest 0x07 
#define reg_digitType 0x0C 
  
#define reg_intensity10 0x10 
#define reg_intensity32 0x11 
#define reg_intensity54 0x12 
#define reg_intensity76 0x13 
#define reg_intensity10a 0x14 
#define reg_intensity32a 0x15 
#define reg_intensity54a 0x16 
#define reg_intensity76a 0x17 
  
#define USE_GLOBAL 0x00 
#define USE_DISCRETE 0x40 
#define RUN 0x01 
#define SHUTDOWN 0x00 
  
#define reg_digit0 0x60 
#define reg_digit1 0x61 
#define reg_digit2 0x62 
#define reg_digit3 0x63 
#define reg_digit4 0x64 
#define reg_digit5 0x65 
#define reg_digit6 0x66 
#define reg_digit7 0x67 
#define reg_digit0a 0x68 
#define reg_digit1a 0x69 
#define reg_digit2a 0x6A 
#define reg_digit3a 0x6B 
#define reg_digit4a 0x6C 
#define reg_digit5a 0x6D 
#define reg_digit6a 0x6E 
#define reg_digit7a 0x6F 
  
void writeMAX6955(int8, int8, int8); 
void initMAX6955(int8); 
  
void writeMAX6955(int8 driver, int8 command, int8 data) 
{ 
   i2c_start(); 
   i2c_write(MAX6955BaseAddress + (driver<<1)); 
   i2c_write(command); 
   i2c_write(data); 
   i2c_stop(); 
} 
  
void initMAX6955(int8 driver) 
{ 
   writeMAX6955(driver, reg_decodeMode, 0x00); 
   writeMAX6955(driver, reg_scanLimit, 0x07); 
   writeMAX6955(driver, reg_configuration, (RUN|USE_DISCRETE)); 
   writeMAX6955(driver, reg_globalIntensity, 0x0F); 
   writeMAX6955(driver, reg_digitType, 0x00); 
   writeMAX6955(driver, reg_displayTest, 0x01); 
   delay_ms(1000); 
   writeMAX6955(driver, reg_displayTest, 0x00);
   writeMAX6955(driver, 0x04, 0x01);
} 
 
void main(){
 
   initMAX6955(0);
      
   while(1){
         writeMAX6955(0, 0x20, 0x4D);
         writeMAX6955(0, 0x21, 0x41);
         writeMAX6955(0, 0x22, 0x58);
         writeMAX6955(0, 0x23, 0x49);
         writeMAX6955(0, 0x24, 0x4D);
         writeMAX6955(0, 0x25, 0x2D);
         writeMAX6955(0, 0x26, 0x49);
         writeMAX6955(0, 0x27, 0x43);
        
   }
}



main.h


Code C - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
#include <16F877A.h>
#device *=16
#device adc=16
 
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOBROWNOUT               //No brownout reset
 
#use delay(clock=8000000)
 
#use STANDARD_IO( A,B,C,D,E )
#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,force_hw)



Edit: I got it working... :cool:

91236d1368859522-max6955working.png


91239d1368861224-max6955edaboard.png


91241d1368864794-max6955jay.png
 

Attachments

  • MAX6955I2C v2.rar
    35.5 KB · Views: 115
  • max6955working.png
    max6955working.png
    69 KB · Views: 269
  • max6955edaboard.png
    max6955edaboard.png
    55.3 KB · Views: 342
  • max6955jay.png
    max6955jay.png
    68.7 KB · Views: 212
Last edited:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top