Hallo Marco,

habe den Chip nicht aber vieleicht hilft es Dir weiter.
Ich gehe mal davon aus, Du hast die Schaltung wie im Datenblatt aufgebaut?
Bei mir ist das Seite 13 Figure 3.

Ich habe jetzt keine Zeit mich durch Dein Programm zu wühlen.
Im Datenblatt Seite 6 Table 1 steht das Bitmuster für einen Chip.
Jeder Chip möchte ein 16Bit Datenwort.
Sind zwei "hintereinander geschaltet" muss man also 32Bit ausgeben.
DOUT vom ersten Chip ist mit DIN vom zweiten verbunden.
Also müssen zuerst die 16Bit für den zweiten Chip und dann die 16Bit für den ersten Chip in der richtigen Reihenfolge gesendet werden.
Da liegt irgendwo Dein Problem.

Hinweis im Datenblatt:
The data into DIN is valid at DOUT 16.5 clock cycles later.
On CLK’s rising edge, data is shifted into the internal shift register. On CLK’s falling edge, data is clocked out of DOUT.

Deine Fehlerbeschreibung weißt darauf hin, das irgendwo ein Bit verlorengeht.
Die Frage ist wo das passiert, bei der Datenausgabe oder in Deinem Programmablauf.
Für den Programmablauf sollte der Simulator weiterhelfen.

Ich würde mir aber besser ein ganz kleines Programm schreiben um einfach mal 2x 16Bit hintereinander zu senden.
Bei gleichem Bitmuster müssen beide Chips das gleiche anzeigen.
LOAD zu trennen wird sicher gehen, verschenkt aber einen Pin.


Gruß Manfred
www.malo-web.de