Klopt helemaal, 595 heeft twee registers, zolang latch laag houd zal data niet naar storage register gaan maar alleen in de shift register blijven, alleen van de desbetreffende 595 waarvan latch hoog en laag maakt zal de data in de storage register zetten waarmee de outputs worden aangestuurd. Maar klopt alle 595 zullen alle data ook ontvangen, zal in alle shift registers dezelfde data staan, maar alleen van juiste 595 zal data latch worden naar de storage register. Je zend toch altijd juist data uit voordat je latch hoog laag maakt, zal dus nooit data in storage register komen van bijvoorbeeld lcd of va andere 595. Zie datsheet pagina 2 Fig 1. Functional diagram.
Nog schema van hoe het aangesloten zit.
Edit/
EO gewoon vast op actief gezet, low is actief. Hoef niet te schakelen, output mag in dit geval gewoon altijd aan blijven had geen rede om te gaan schakelen. Zie dat er foutje in commentaar staat van eerste twee voorbeeld codes, EO word niet geschakeld dat moet dus STCP zijn.
En dit is opstelling waar min of meer om werd gevraagd, daisychain kan wellicht vlotter zijn heb niet nog niet getest of echt over nagedacht, maar dat was niet het doel, werd namelijk opgemerkt dat ze CS lijn misten voor het los aansturen van meerder 595 met meerder SPI apparaten op de bus. Daar is dit uitgekomen zeg maar.

Je kan alleen niet afzonderlijk data naar je 2 latch-595 en naar je 15 output-595 sturen.
Dat gaat ook niet met daisychain, je schuift dan ook alle daar door allee shift registers heen naar laatst, naam zegt het al shift registers, ze schuiven dus letterlijk bij elke klok een stapje op en vor dan aangevuld met nieuw nummer. Je kan dan ook niet bij twee even tussendoor data erin zetten, je zal overal data erin moeten zetten, zelf bij alle 595 die je niet wilt veranderen, anders schuift data niet voldoende door.
Heeft allemaal zijn voor en nadelen natuurlijk, daarom kiezen we soms voor ene en soms voor het andere.
Edit/3
Wacht even ik snap nu wat je bedoeld, moest er even over nadenken, dacht eerst dat je wat anders bedoelde.
Inderdaad mijn voorbeeld gaat niet werken met twee extra 595 voor CS lijnen op dezelfde bus, moet die dan vullen met usart in spi mode of op andere manier(softwarematig, andere type shift registers, etc), of gewoon weglaten en CS door arduino aansturen. Maar kan niet op dezelfde bus als de ander5 15 595's zoals in mijn voorbeeld.
En dit werkt natuurlijk ook gewoon, uitgebreid getest.
Zal vanavond jou voorbeeld wat beter bekijken, heb het nu te druk.
[
Voor 55% gewijzigd door
mad_max234 op 02-01-2014 13:12
]