Forum: Mikrocontroller und Digitale Elektronik Frage zum MAX 7221


von Matthias (Gast)


Lesenswert?

Hi,


Habe zwei Max 7221 an einen Mega 128.

der 2.Max ist am Dout des ersten Verbunden.
CS sind untereinander verbunden.


Nun meine Frage.

im datenblatt steht drin das man x No-Ops senden muß für den jeweiligen 
nachkaskadierten MAX.

zb bei drei MAX den dritten ansprechen muß ich 2x no-op senden.

wie mache ich das.

Es steht drinn das man erst die 16bit senden soll und gefolgt von den 
jeweiligen no-ops.

Nei mir wäre es ja immer nur ein no-op(0x00).

so siehts nei mir aus

void write_7219(unsigned char adresse,unsigned char data,unsigned short 
int drv)
{
if(drv==0)
{
//led_cs_low();
SPI_led_on();
SEG_cs_low();
Write_SPI(adresse);
Write_SPI(data);
SEG_cs_high();
SPI_led_OFF();
}

if(drv==1)
{
//led_cs_low();
SPI_led_on();
SEG_cs_high();
Write_SPI(adresse);
Write_SPI(data);
Write_SPI(0x00);//no op für ersten MAX
SEG_cs_high();
SPI_led_OFF();
}
}


es geht aber immer nur der erste MAX

Danke für eure Hilfe

von Stephan (Gast)


Lesenswert?

genau so ist es. Wenn du den 2.ansprechen willst sendest die die ersten 
16 Bit und dann einen No OP für den 1. MAX ( alles vom uC aus egsehen)
du schiebst also 32 Bit raus.

von Matthias (Gast)


Lesenswert?

Ja, nach genauern studieren im DB stehts ja auch drinn.

The no-op register is used when cascading MAX7219s
or MAX7221s. Connect all devices’ LOAD/CS inputs
together and connect DOUT to DIN on adjacent
devices. DOUT is a CMOS logic-level output that easily
drives DIN of successively cascaded parts. (Refer to
the Serial Addressing Modes section for detailed information
on serial input/output timing.) For example, if
four MAX7219s are cascaded, then to write to the
fourth chip, sent the desired 16-bit word, followed by
three no-op codes (hex 0xXX0X, see Table 2). When
LOAD/CS goes high, data is latched in all devices. The
first three chips receive no-op commands, and the
fourth receives the intended data.


ich muß bei 2 Max den ersten der ja als letztes gesendet  und als erstes 
ausgewertet wird ein 0x00 und ein 0x00 senden.

So jetzt gehts

Vielen Dank

Man muß nur lesen und verstehen können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.