Moin, weiss jemand von Euch, ob es problemlos funktioniert, 9 µC (Atmega328) mit einem einzigen 16Mhz Taktsignal zu füttern oder gibt es Probleme dabei? Ich dachte an einen externen Quarzoszillator dessen Ausgang auf jeden der 9 Controller geht, evt. mit 74HC04 Bufferung. Oder eine Pierce-Schaltung? Es geht nicht um synchronen Lauf der µC eher um Bauteile und Platz zu sparen. Kann man das zuverlässig machen? Gruß, Wolfram.
Die Frage ist bloß, warum man mehrere kleine Mikrocontroller so nah beieinander hat, dass man das selbe Taktsignal nutzen kann. Da könnte man auch einen großen Controller nutzen, der alles macht...
Wolfram Fischer schrieb: > Es geht nicht um synchronen Lauf der µC eher um Bauteile und Platz zu > sparen. > > Kann man das zuverlässig machen? Hallo, es gibt mehrere Möglichkeiten. Wolfram Fischer schrieb: > 9 µC (Atmega328) > mit einem einzigen 16Mhz Taktsignal zu füttern Am einfachsten wäre: bei einem Mikrocontroller Fuse CKOUT zu programmieren, somit kommt F_CPU auf PB0. Von PB0 bekommen alle andere Mikrokontroller Takt auf PB6(XTAL1). Dabei ist auch möglich, interne RC-Takt zu nutzen. So kann man gar ohne Quarz arbeiten. PB0 bleibt dabei genau so robust wie normale Port: 25 mA. Wird PB0 schon in der Schaltung benutzt (z.B. man braucht ICP1), dann kann man Eingang von schon erwähnten 74HC04 an XTAL2 eines Mikrocontrollers einschließen (wo Quarz steht), die anderen bekommen Takt von Ausgang HC04 an XTAL1. Dabei ist wichtig, daß "full swing" geschaltet wird, sonst wäre Amplitude auf XTAL2 für HC04 nicht ausreichend.
Wolfram Fischer schrieb: > weiss jemand von Euch, ob es problemlos funktioniert, 9 µC (Atmega328) > mit einem einzigen 16Mhz Taktsignal zu füttern oder gibt es Probleme > dabei? ich wüsste keinen Grund warum das nicht gehen sollte. Ich sehe nur keinen Taktgenerator, IMHO ist das ein fertiges Bauteil mit einem anderen Symbol. Ich kenne diese 4-Pinner nur mit VCC GND und CLK Eagle meint so sieht das aus Also Ja das sollte gehen, beachte die Datenblätter für die Treiberleistung Fan Out vom Oszillator und Fan In der Atmel, notfalls passende Treiber AHCT o.ä. nachschalten, ggffs. auch mehr. 74AHCT14 alle Eingänge zusammen und alle Ausgänge zusammenschalten sollte als Treiber reichen wenns nötig ist. Wolfram Fischer schrieb: > Es geht nicht um synchronen Lauf der µC eher um Bauteile und Platz zu > sparen. worum dann? größerer µC mit mehr flash und mehr RAM ATmega1284p oder ESP32 oder mehr Ports ATmega2560 wäre ja eine Möglichkeit.
:
Bearbeitet durch User
Bei Reichelt gibt es CFPS-72 - Serie. Sehr bequem: das ist eine sparsame 5-Volt-Version in 5x7 Gehäuse (immer noch einfach zu löten).
Dr. Sommer schrieb: > Da könnte > man auch einen großen Controller nutzen, der alles macht... Es soll modular bleiben und erweiterbar sein, daher mehrere kleine µC.. Maxim B. schrieb: > Am einfachsten wäre: bei einem Mikrocontroller Fuse CKOUT zu > programmieren, somit kommt F_CPU auf PB0. Von PB0 bekommen alle andere > Mikrokontroller Takt auf PB6(XTAL1). Dabei ist auch möglich, interne > RC-Takt zu nutzen. So kann man gar ohne Quarz arbeiten. PB0 bleibt dabei > genau so robust wie normale Port: 25 mA. Das klingt gut, dann könnte man doch auch jeden µC mit CKOUT programmieren und von PB0 zum nächsten µC gehen um nicht so lange Leiterbahnen mit 16Mhz zu haben, oder? Nicht das das Signal nach ca. 15cm schlechter ankommt... (Kapazitäten..)
Joachim B. schrieb: > 74AHCT14 alle Eingänge zusammen und alle Ausgänge zusammenschalten > sollte als Treiber reichen wenns nötig ist. Das funktioniert nicht. Durch unterschiede in den Schaltschwellen der Schmitt-Trigger kommt der eine Ausgang etwas frueher und der andere spaeter. Da die alle parallel geschaltet sind kommt es dadurch zu Kurzschluessen.
Dr. Sommer schrieb: > Die Frage ist bloß, warum man mehrere kleine Mikrocontroller so nah > beieinander hat, dass man das selbe Taktsignal nutzen kann. Da könnte > man auch einen großen Controller nutzen, der alles macht... Multicore und Multi-uC
Die spannendste Frage ist allerdings, warum man nicht gleich einen größeren MC nimmt, z.B ATmega1284, ATmega2560. Mehrere MCs bringen immer massive Probleme mit sich, da sie ja irgendwie kommunizieren müssen, d.h. auf jeden Fall ein komplexes und fehlertolerantes Protokoll nötig ist. Sind alle Tasks aber in einem MC, dann können sie sich Variablen ganz einfach im gemeinsamen SRAM übergeben. Es lassen sich so auch viel einfacher Deadlocks vermeiden.
kann es durch die leichte Taktverschiebung eigentlich zu Problemen beim I2C Bus führen? (Alle 9 sind per I2C miteinander verbunden) Müsste doch eigentlich nix ausmachen, oder?
Wolfram Fischer schrieb: > Es soll modular bleiben und erweiterbar sein, daher mehrere kleine µC.. Modular auf einer Platine? Lötet man da dann bei bedarf mehr uCs ein? Peter D. schrieb: > Mehrere MCs bringen immer massive Probleme mit sich Da kann ich nur zustimmen.
Helmut L. schrieb: > Das funktioniert nicht. Durch unterschiede in den Schaltschwellen der > Schmitt-Trigger kommt der eine Ausgang etwas frueher und der andere > spaeter. > Da die alle parallel geschaltet sind kommt es dadurch zu Kurzschluessen. OK dann ohne Schmitt-trigger, es liest sich vielleicht unsauberer als es ist, normmalerweise soll man Ausgänge aus Chips NICHT parallel schalten, aber auf gleichem Substrat sind die Eigenschaften nahezu identisch, große Abweichungen sind nicht zu erwarten und funktionierten in der Praxis immer. Mehr Sorge macht mir nicht abgeschlossener Ausgang nach der Verteilung wenn kein weiter µC dran hängt. Das ganze Konzept erscheint mir eher fragwürdig. Soll die Ausgangs 16MHz irgendwo stumpf enden ohne Last bei Teilbestückung? Programmiert er die Ausgänge nur für jeden weiterführenden µC extra?
Dr. Sommer schrieb: > Modular auf einer Platine? Lötet man da dann bei bedarf mehr uCs ein? :-) Nein, nicht ganz. Die 8 µC sind jeweils auf einer schmalen PCB mit BNC Buchse und werden per Stiftleisten in die Hauptplatine gesteckt. Wenn mehr Kanäle gebraucht werden, kann man nachstecken... Daher wäre die PB0->PB6 Methode geradezu ideal. Durch die interne Pufferung entfallen dann auch externe 74HC14 und man hat kurze Wege der CLK Signale
Wolfram Fischer schrieb: > Es soll modular bleiben und erweiterbar sein, daher mehrere kleine µC.. Man kann auch im selben MC Programme modular entwickeln. Das ist sogar deutlich einfacher, da die externe Kommunikation wegfällt. Mit MCs ist das wie mit Menschen. Einer allein kann ein Projekt gut bearbeiten. Sind aber 2 Mitarbeiter nötig, dann entfällt eine 3. Stelle allein für die Planung und Kommunikation zwischen den beiden, d.h. die Produktivität nimmt drastisch ab und die Fehlerquellen nehmen zu.
eben, wie bei Menschen: der Erste µC entscheidet was wer machen soll und die 8 Sklaven (I2C) machen was sie sollen, wie in jeder Fa. :-) ob nun mehrere kleine oder ein großer µC... es geht hier um den Takt.
Wolfram Fischer schrieb: > wie in jeder Fa. :-) Nur dass in Firmen die Arbeitsleistung eines MA ziemlich fix ist. Du hast dir einen ganz kleinen Controller ausgesucht, und könntest die Aufgaben von 20 davon in einen Großen umlagern. Oder würdest du sperrige Güter lieber mit 20 Smarts als mit einem LKW transportieren...?
Helmut L. schrieb: > Joachim B. schrieb: >> 74AHCT14 alle Eingänge zusammen und alle Ausgänge zusammenschalten >> sollte als Treiber reichen wenns nötig ist. > > Das funktioniert nicht. Durch unterschiede in den Schaltschwellen der > Schmitt-Trigger kommt der eine Ausgang etwas frueher und der andere > spaeter. Hier ist ganz einfach: erste Inverter kommt alleine zu XTAL2, alle anderen parallel zu dem ersten. Wolfram Fischer schrieb: > der Erste µC entscheidet was wer machen soll und die 8 Sklaven (I2C) > machen was sie sollen, wie in jeder Fa. :-) Wenn Takt gemeinsam ist, dann statt I2C lieber USART in 9-bit-Mode. Das geht deutlich schneller. Ich kann mir, zum Unterschied von anderen, eine solche MC-Struktur gut vorstellen. Als Beispiel: Haupt-MC scannt die Tastatur und verteilt die Aufgaben. Andere MC machen in Hauptschleife jeder je eine Klangstimme, in ISR von USART nehmen sie auch Befehle von Haupt-MC. Dabei kann man je nach Version 4 Stimmen machen, oder 6, oder 24. Es ändert sich wenig, nur neue Module kommen. Dann würde ich allerdings nicht F_CPU verteilen (Mikrocontroller können von internen RC getaktet werden) sondern F_D, so ca. 40 kHz, Signal kommt dann zu Ext-ISR und gewährleistet gleiche Tonhöhe bei allen Stimmen. F_D könnte man auch variabel machen, so mit AD9833, z.B. für Transponieren... Ja, aber das ist schon eine ganz andere Geschichte.
:
Bearbeitet durch User
Ich habe mich für die CKOUT-Methode entschieden, dies scheint von Atmel ja sogar genau für diesen Zweck vorgesehen zu sein. Da sowie eine Prototyp-PCB gemacht wird, werde ich zusätzlich Plätze für Quarze und Ziehkondensatoren mit einbinden, so kann man beides testen, sollte die CKOUT Methode Probleme machen, kann man dann immernoch auf Quarze umrüsten. Vielen Dank Euch allen, besonders aber Maxim B.! Schönen Tag noch, Gruß, Wolfram.
Wolfram Fischer schrieb: > weiss jemand von Euch, ob es problemlos funktioniert, 9 µC (Atmega328) > mit einem einzigen 16Mhz Taktsignal zu füttern Geht, auch einfacher drekt den Quartzoszillator des einen an den anderen koppeln, mit Koppelkondensator: Siehe http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm > Ich habe 2 Controller an einem Quartz angeschlossen, d.h. XOUT von > Controller 1 an XIN von Controller 2, aber es schwingt nicht. > Gibt es eine zuverlässige Lösung ? Ja. Verbinde XOUT und XIN des zweiten Controllers über 1MOhm, und XOUT des ersten Controllers über 100pF mit XIN des zweiten Controllers. Und schliesse den Quartz wie gehabt an den ersten Controller an. Die Ursache und Begründung für diese kapazitive Kopplung liegt im eventuell unterschiedlichen Gleichspannungspegel der Oszillatoren. Wolfram Fischer schrieb: > Es geht nicht um synchronen Lauf der µC eher um Bauteile und Platz zu > sparen. Das ist gut, denn die start-up Zeit der verschiedenen uC kann unterschiedlich sein.
Ich hoffe nur, dass Du nicht mit dem Gedanken spielst, dass die dann synchron laufen würden. Winzige dolle Ranzen bei den Reset-Kondensatoren; ein anderer "Pfad" nach einer Abfrage und schon laufen die Teile asynchron.
Sebastian S. schrieb: > Ich hoffe nur, dass Du nicht mit dem Gedanken spielst, dass die dann > synchron laufen würden. Wolfram Fischer schrieb: > Es geht nicht um synchronen Lauf der µC eher um Bauteile und Platz zu > sparen.
Joachim B. schrieb: > ich wüsste keinen Grund warum das nicht gehen sollte. > Ich sehe nur keinen Taktgenerator, IMHO ist das ein fertiges Bauteil mit > einem anderen Symbol. Ich sehen einen! Was hast Du denn gedacht, was der TE da gezeigt hat? Einen Taktgenerator mit Quarz in einer millionenfach bewährten Standardschaltung. > Ich kenne diese 4-Pinner nur mit VCC GND und CLK Tja, es gibt noch etwas mehr zwischen Himmel und Hölle... ;-) > Eagle meint so sieht das aus Was immer Eagle meint, wenn der TE einen so wie er zeigt bauen möchte, dann kann er das machen. (ein Standard-Vierpinner wäre aber einfacher, ja) Old-Papa
Dr. Sommer schrieb: > Die Frage ist bloß, warum man mehrere kleine Mikrocontroller so nah > beieinander hat, dass man das selbe Taktsignal nutzen kann. Da könnte > man auch einen großen Controller nutzen, der alles macht... Ich hab hier 18 Stück EFM8BB10, auf jedem läuft der ADC und eine Software-PLL (non-uniform, quad-sampling) für 70kHz und noch ein bisschen Auswertung, 90% Vollgas, hart am Limit. Raus kommt je ein Schaltsignal das verodert wird. Den µC der gleichzeitig(!) 18 ADC-Kanäle sampelt und weniger kostet als 18 BusyBees und dann noch auf die schmale Platine passt will ich sehen. Die hängen bei mir auch alle an einem gemeinsamen 24MHz-Takt der vom Hauptprozessor erzeugt wird.
Bernd K. schrieb: > Den µC der gleichzeitig(!) 18 ADC-Kanäle > sampelt Mit welcher Geschwindigkeit? Wenn man von einem bestimmten Peripherietyp sehr viel braucht könnte man mit einzelnen, großen Controllern in der Tat nicht hinkommen, weil da meistens "von allem etwas" gegeben wird. Ich würde aber nicht ausschließen, dass es da durchaus einen Controller gibt, der das kann. Habe jetzt aber keine Lust, zu suchen.
Old P. schrieb: > Ich sehen einen! Was hast Du denn gedacht, was der TE da gezeigt hat? > Einen Taktgenerator mit Quarz in einer millionenfach bewährten > Standardschaltung. was schrieb der TO noch mal? Wolfram Fischer schrieb: > Bauteile und Platz zu > sparen. also: Old P. schrieb: > ein Standard-Vierpinner wäre aber einfacher, ja siehste :)
Tut de Terminierung nicht an jedem der vielen Endpunkte passen, kriegste Reflexionen. Kriegste Reflexionen, haste mehr aktive Taktflanken im Systen als der Taktgenerator losgetreten hat. Haste das, haste Trouble wegen Übertaktung.
A reflecion of death schrieb: > Kriegste Reflexionen, haste mehr aktive Taktflanken im Systen als der > Taktgenerator losgetreten hat. Man darf Reflexionen bei 16 MHz keine zu große Bedeutung zuschreiben - wenn es nicht um Hunderte Meter Einzeldtaht geht. Wellenlänge 12,5 Meter, so bis Viertel, d.h. bis 3 Meter, kann eigentlich wenig passieren. Wenn man aber unsicher ist, kann Widerstand 22 Ohm seriell helfen.
:
Bearbeitet durch User
Dr. Sommer schrieb: > Bernd K. schrieb: >> Den µC der gleichzeitig(!) 18 ADC-Kanäle >> sampelt > > Mit welcher Geschwindigkeit? Mit je 280 kilosamples/s. Und ich habe die Option das beliebig zu skalieren, es gab ursprünglich einen Prototypen mit 10 Kanälen, dann wurde einer mit 18 gebaut und im Prinzip ließe es sich weiter vergrößern und es ist schon einer mit 24 angedacht. Für diese spezielle Anwendung von mir ist das optimal. Für 23 Cent bekomm ich nen 12 Bit-ADC der selbsständig sein Programm abspult, sogar noch ein bisschen rechnen und auswerten kann und genau so mit der Haupt-CPU (oder seinen Nebenmännern) sprechen kann wie es für die Anwendung günstig ist.
Beitrag #5990226 wurde von einem Moderator gelöscht.
Moin, Ich persoenlich wuerd' sowas nicht mehr machen. Hab' da mal Palaver erlebt wegen einer "zentralen" 4MHz Takterzeugung und Verteilung auf mehrere Chips. Als da mal der Quarzhersteller gewechselt wurde, war manchmal der Jitter einer PLL zu gross, wenn die aus 4MHz 2092MHz gemacht hat. Mit geaendertem Arbeitspunkt des Oszillators ging das zwar auch wieder, aber so teuer/gross, dass sich das lohnt, sind Quarze schon lange nicht mehr, denk ich mir seither. Die Rueckwirkungen - also was einzelne Chips an zusaetzlichen Stoerungen aus ihrem "Oszillatorausgang" rauskotzen - und wie stark das dann andere Chips beeinflusst, sind schwer einzuschaetzen. Gruss WK
Beitrag #5990240 wurde von einem Moderator gelöscht.
Beitrag #5990246 wurde von einem Moderator gelöscht.
Beitrag #5990248 wurde von einem Moderator gelöscht.
Joachim B. schrieb: > Ich kenne diese 4-Pinner nur mit VCC GND und CLK > > Eagle meint so sieht das aus Eagle hat da gar nichts zu melden. Entscheidend ist das Datenblatt des Herstellers. Wie das Symbol in Eagle aussieht, ist für die Funktion völlig egal. Das Package und die Anschlüsse müssen stimmen.
Beitrag #5990259 wurde von einem Moderator gelöscht.
Wolfgang schrieb: > Entscheidend ist das Datenblatt des > Herstellers ach seit wann bestimmen Datenblätter Normen? Wobei ich nur Gatter genormt kenne. aber ich weiss ja wer das schreibt ;) Sonst hast du ja nichts zum Thread beizutragen oder?
:
Bearbeitet durch User
Beitrag #5990727 wurde von einem Moderator gelöscht.
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.