schuifregister

trix

Golden Member

ik ben op zoek naar een schuif register die het volgende moet doen:

300x input die d.m.v. een puls klaar worden gezet (bevriezen)
vervolgens d.m.v. clock puls die 300 bitjes naar buiten klokken over 1 pin.

ik snap dat het er meerdere worden die in serie worden gezet.
ik zou er natuurlijk ook wel zelf een kunnen vinden als ik een beetje mijn best doe. maar ik wil er graag een die goed gangbaar en verkrijgbaar is en ook nog over een aantal jaar te verkrijgen is.

bedankt _o_

eigenwijs = ook wijs

Voor alles < 10 MHz zou ik hier naar een microcontroller grijpen.

met 300 pinnetjes?

Dan heb je alsnog een aantal (veel) parallel-naar-serieel schuifregisters nodig...

Ik zou een rondje zoeken en dan iets als een 4014 of 74..166 of 74..647 ofzo kiezen.

Eluke.nl // Backwards Lightspeed Bus: i*i=-1, so iic=-c.

Iets als een 74hc165 is cascadable.
Ik zou ook liever een MCU nemen met wat port expanders en de micro het serieele uitklokken laten doen.
Expander bijv. de CY8C9560A van Cypress. (60 ingangen, heb je er 5 nodig)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Excuses, ik begreep dat de input ook seriëel was. Genoemde '165 lijkt hoewel hij de veertig gepasseerd is nog goed verkrijgbaar.

Meer dan 37stuks 74LS165 met de buffers enkele eurokaarten vol :o

Op welke snelheid moet dat allemaal werken?

LDmicro user.

Zijn alle 300 bits gelijktijdig beschikbaar, of komen die ook weer uit ic's. Anders heb je maar een schuifregister ic nodig en maak je telkens 8 andere actief. Zo heb ik ooit voor een sporttimer 64 bits verzonden met slechts één 8 bits schuif.

trix

Golden Member

word een soort van een scanner. 300x IR led met ontvanger (recht boven elkaar) met een steek van 10 mm.
schuift een voorwerp voorbij, bij elke 10 mm. verplaatsing v/h voorwerp moet de status van alle 300 ontvangers naar buiten worden geklokt in een (voorlopig) Atmega16.
word dus uiteindelijk een bitmap van 300x300 bits (2e 300 is afhankelijk v/d lengte v/h voorwerp)

snelheid is gewoon heel laag te noemen.

eigenwijs = ook wijs
buckfast_beekeeper

Golden Member

Op 28 augustus 2018 18:56:16 schreef trix:
.... maar ik wil er graag een die goed gangbaar en verkrijgbaar is en ook nog over een aantal jaar te verkrijgen is.

bedankt _o_

Je zal met de fabrikant contact moeten nemen om dat met een kleine zekerheid te kunnen beantwoorden. Er zijn heel weinig IC's die vele tientallen jaren worden geproduceerd. Een 555 is zo een uitzondering.

Van Lambiek wordt goede geuze gemaakt.

En de pic microcontrollers... :) (zijn allemaal nog steeds op aanvraag leverbaar...)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Je zou beter een controller gebruiken en de zaak multiplexen en in modules werken anders zal het bij dromen blijven.

LDmicro user.

Ik heb pas zo een soort matrix uit zitten puzzelen uit een fotospectrometer: http://www.aartsite.nl/2018/06/01/spectroscoop/
Deze bestaat uit één integrerende voorversterker met daarvoor een grote meerlaags mux van CMOS schakelaars. Als je een korte flits geeft kun je daarna relatief rustig de capaciteiten van de fotodiodes legen. Net als bij een gewone camera.

Zou mijn licht eens opsteken bij de huidige FPGA's

sqrt(300) is ruim 17. Dus je hebt iets van een 18x18 matrix nodig.

Wil je het met een atmega328 o.i.d. doen dan zou ik met 3x 8 bit schuifregister de kolomsturing maken en met 13 input pinnetjes werken. Zoiets.

Ik heb een print met een STM32F072V er op: 100 pins. ruim 64 GPIO pins uitgebroken op standaard headers. (64 op 20 pins headers: 2x gnd 2x vcc, 16x gpio, voor de rest wat SPI en UART dingen die ook GPIO zijn als je b.v. de SPI niet gebruikt.).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Met een Atmega 16 gaat je dat in ieder geval niet lukken.
300x300 bits inlezen geeft ca 11Kbytes en een Atmega 16 heeft maar 1K static ram. Of je moet het gelijk weer via een poort naar een PC sturen. Maar dat is niet een probleem, genoeg processoren met meer memory.
Als shift register moet je misschien denken aan een 100 of 144 pens cpld of fpga. Daar zou je dan 4 van nodig hebben.

Alles valt of staat met hoe strict het "alle 300 tegelijk inlezen" is. Als dat echt binnen een paar nanoseconde hetzelfde moment moet zijn, dan MOET je gewoon een 300bit parallel register hebben.

Maar als een scan met een processortje gewoon haalbaar is, omdat er 10x per seconde zo'n puls komt en als je binnen 1 milliseconde klaar bent het gewoon acceptabel is, tja, dan kan je dus een veel eenvoudigere oplossing kiezen.

En inderdaad: Waar moet de data heen? En hoe snel moet dat? Hoe langzaam mag het? Gebruik je een STM32 met USB dan kan je met zo'n 12 mbps over USB de boel naar een PC sturen. Zal wel snel genoeg zijn. Maar ga je met een arduino op 115200 baud de boel naar de PC sturen. Dan duurt die 11k zo'n hele seconde. Is dat snel genoeg?

Maar omdat we niet weten hoe de sensor signalen er uit zien, kunnen we blijven gokken wat er op dat vlak wel of niet makkelijk te doen is. Wat m.i. vervelend zou zijn is als je voor de 300 signalen voor ieder signaal een paar onderdelen moet plaatsen. Dan heb je veel liever dat je de sensoren op de juiste manier aansluit en dan gewoon eenvoudig een gemultiplexte "handelbaar" aantal inputs op een CPUtje.

Als we het originele probleem letterlijk nemen, dan zou je bijvoorbeeld modules kunnen maken met 16 sensoren en twee 74HC166 registers er op. De modules maak je koppelbaar, en je maakt 19 modules voor ruim 300 inputs. En op het eind zet je een arduino o.i.d.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
KGE

Golden Member

74F676 is een 16 bit parallel/serial in, serial out schuifregister.

Maar is het niet praktischer om een CCD te gebruiken?

[Bericht gewijzigd door KGE op 29 augustus 2018 09:52:29 (55%)]

Maak bordjes van bv 10x 10 leds met elk hun controller.

Je kunt ze ook aanpassen aan de hoeveelheid pinnen van de controller en dan 1 gemeenschappelijke controller voor het inlezen.

Als er geen veranderingen gebeurd zijn in dat deel dan moet je niet telkens 300 inputs inlezen.

LDmicro user.
fatbeard

Honourable Member

De inlees'traagheid' valt binnen zekere grenzen te compenseren door de array schuin te plaatsen zodat de scan gelijke tred houdt met het voorwerp, zo worden bijv. glasplaten in de productie gesneden terwijl de band gewoon doorloopt.
Uiteraard werkt dat alleen als de snelheid van het te scannen voorwerp constant is...

Voor wat betreft de verkrijgbaarheid van standaard IC's zou ik me niet alteveel zorgen maken, zo is bijv. de 74 reeks al een slordige 35 jaar in productie en zal dat nog wel geruime tijd blijven: iedereen heeft vroeg of laat toch wat glue-logic nodig.
Toegegeven, een 'echte' 7400 is wat lastig te vinden (om over de 74L00 nog maar te zwijgen), maar daarvoor zijn voldoende drop-in replacements te vinden...

Maar ik denk dat je met een simpel cameraatje en beeldprocessing software onafhankelijker bent van welke hardware dan ook, plus dat je dan een hogere resolutie kan halen...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Frederick E. Terman

Honourable Member

zo worden bijv. glasplaten in de productie gesneden terwijl de band gewoon doorloopt.

+1. Ik leer toch iedere keer weer de leukste dingen hier.

Keramisch, kalibratie, parasitair: woordenlijst.org

Op 28 augustus 2018 18:56:16 schreef trix:
ik ben op zoek naar een schuif register die het volgende moet doen:

300x input die d.m.v. een puls klaar worden gezet (bevriezen)
vervolgens d.m.v. clock puls die 300 bitjes naar buiten klokken over 1 pin.

-knip-

Dan heb je 38 stuks 8 bit input shiftregisters nodig, is wel erg veel.

Zo maar een idee:

Is het niet veel handiger om de leds in een matrix van 16*19 o.i.d. te verdelen, en dan 2x een 74hc165 (2x8bit input shiftregister in cascade) te gebruiken om 1 matrix cel in te lezen en 2x een cd4017 (2x10 bit johnson decade counter in cascade) oid te gebruiken om door de 19 cellen te roteren?

Dan heb je maar 4 ic's nodig ipv 38. Is misschien een fractie trager bij het inlezen, maar dat zou je als het al nodig is kunnen opvangen door het mechaniek even stil te zetten of wat trager te laten lopen.

Vervolgens kun je wat extra ic's kopen en die in dip16 voetjes aan de rand van de print zetten als reserve onderdelen, en dan ben je nog goedkoper uit en blijft je print eenvoudiger.

Ik zou als het schuifregisters zou moeten een CD4021 pakken in TSOP of SO behuizing. Kosten echt bijna niks (20 cent?).
Het grote voordeel tov TTL is dat de storingsmarge aanzienlijk beter is omdat je die dingen tot 15V kunt gebruiken.

Die dingen gaan dus namelijk nooit dicht bij elkaar zitten maar met een langere lijn aangesloten worden.

De thresholds bij CMOS zijn L= <40% en H= >60% * Vcc. Dus vele malen beter als TTL (of zijn HC varianten) die maar op 5V kunnen.

Nog steeds voor dit project?: https://www.circuitsonline.net/forum/view/141790

Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.
trix

Golden Member

allemaal bedankt voor de input _o_

klopt henri62 nog steeds voor hetzelfde project, ik wou die link in openings post bijvoegen maar ben dat op een of andere manier vergeten |:(

het meest simpele lijkt mij zoals ik het heb voorgesteld dus gewoon 38x een 8 bits schuif register. die bits komen serieel in een atmega16 terecht (die te weinig geheugen heeft lees ik net hier :)) dus dat word dan waarschijnlijk een andere AVR. de verdere bewerkingen gebeurt dan in die AVR.
nadeel is inderdaad dat je dan inderdaad 38x een IC nodig hebt met bijbehorende PCB's dit x2 zender/ontvanger zijde. dit is nogal bewerkelijk en saai. dus dan is het mischien inderdaad beter om een matrix toe te passen, zolang de output v/h geheel maar die 300 bits serieel is. mogelijk probleem wat ik zie, is dat de draden tussen IR led/ontvanger en de b.v. 74hc165 langer worden (met 2x een matrix max. 1mtr.) dus meer risico voor het op pikken van stoorsignalen. of zie ik nu beren die er niet zijn.

edit: het is een heel traag proces, ik voorzie geen problemen in de snelheid.

eigenwijs = ook wijs

ik zou de 8input schuifregisters, sensors etc op een klein langwerpig printplaatje ontwerpen met aansluitingen (VCC, GND, Clock, Latch, Data in/uit) aan beide zijden. Dan kun je ze doorrijgen om er 38 aan elkaar te plakken. Wel de clock en de latch lijnen goed bufferen. Zo krijg je aan het einde van de streng gewoon de bitjes eruit geschoven naar je mcu.. en je draden zijn niet zo lang. Prima te doen lijkt me.

just my two cents.

Eens een wirehead,altijd een wirehead.... gopher://fripster.ydns.eu
trix

Golden Member

exact het geen wat ik in gedachten had, alleen worden dat dus veel PCB's
steek v/d IR led's word dan ook 10,16 mm (4x 2,54mm) maar dat is geen probleem.

eigenwijs = ook wijs