Hallo! Zur Zeit entwickle ich einen Schaltplan wo 16 MAX3100 (SPI-UART) an einem SPI-Bus eines atmega168 hängen sollen. Die MAX3100 haben eine Eingangskapazität von 5pF. Um das System möglichst schnell laufen zu lassen wollte ich die maximale SPI-Frequenz des mega168, der mit 20MHz getacktet ist, verwenden. Um die Ausgänge des mega zu entlasten hatte ich vor einen Buffer (z.B. 2x 1/6 74AC14 hintereinander) anzuschalten. Die Frage ist nun ob ein Buffer ausreicht oder ob ich lieber den SPI-Bus segmentiere (also 2x8 oder 4x4 MAX3100 mit einzelnem Treiber). Man müsste natürlich auch beachten das die SDO Ausgänge der MAX3100 auch alle zusammenhängen und hier kein Treiber vorgesehen werden kann... Gibt es eine Grundregel die man bei solchen Konstellationen beachten sollte und die ich noch nicht kenne? :) Für die Abfrage der UART's Bauteile habe ich mir eine Multiplex-Schaltung überlegt mit der der MCU alle Bauteile schnell durchscannen kann. Sobald ein UART z.B. Daten hat, bekommt der MCU auf #INT ein Signal und kann dann den entsprechenden Baustein wählen indem #CS auf LOW gezogen wird. Wie ist Eure Meinung dazu? Sieht vielleicht jmd noch einen Fehler? Vielen Dank im voraus! Grüße Bernhard
Falls noch nicht zu spät, hier noch eine andere Idee: SC16IS752/762 (Dual Uart mit SPI-Interface), der noch den Vorteil von 8-IOs mit Interrupt-Fähigkeit + Interrupt-Latch hätte. http://www.standardics.philips.com/products/sc16/pdf/sc16is752.sc16is762.pdf
moin moin, laut Datenblat liegt die max. Taktfreq. des 3100 bei 4,2MHz. In dem splitting des INT sehe ich keinen Sinn. Die Ansteuerung des Decoder/Multiplexer erfolgt binär, also ist doch die Adresse des INT bekannt. Mit Gruß Pieter
arc: Wir haben noch einige von den MAX3100 rumliegen, die sollen verbaut werden :) Pieter: Meinst Du es funktioniert wenn man den SPI-Bus aller 16 Bausteine zusammenschließt? Ich habe die Befürchtung das die 80pF Eingangskapazität etwas viel sind bei 4,2MHz Busfrequenz... Deswegen dachte ich an die Aufteilung. Zu den INT's: Welches Splitting der INT's? Ich mache im AVR erstmal nichts anderes als die Decoder/Multiplexer in einer Endlosschleife von 0-15 durchzuscannen. Ist bei einem der INT-Ausgang LOW springt der AVR in die interrupt-routine und prüft was denn ansteht. Um den passenden MAX dann zu selektieren muss einfach nur der #CS-Eingang auf Low gelegt werden und es kommt am richtigen Chip an.
Was ist der Unterschied zwischen der Treiberleistung eines 74AC14 und des Mega168? Bei 4MHz und leidlich dichter Plazierung sollte das auch ohne Puffer möglich sein. Mögliche Alternative zum IRQ-Muxer: Prioritätsencoder '348. Liefert die IRQ-Nummer frei Haus (auf Ax in umgekehrter Richtung).
moin moin, bei INT wird ja "rückwärts gemuliplext", ist dann schon klar. Genauso könnte mann ja auch den MISO schalten und MOSI+ CLK dann vorwärts. Eventuell einen 4053 in AC, also immer ein 4053+MAX3100. MOSI, CLK und Select mit Bustreiber. Ob der Aufwand lohnt? Nach Datenblatt ist der MAX3100 bei 100pf angegeben. Eine Frage der Leitungskapazitäten und so blank schwer zu beantworten. Mit Gruß Pieter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.