boxtec Forum
Electronics => PCB Design => : MathiasW February 04, 2014, 10:07:01 AM
-
Salut,
am Freaky Friday ist mir eine Idee gekommen, die ich gerne diskutieren möchte:
Wäre es sinnvoll, einen Arduino zu konstruieren, welcher den Mega Footprint verwendet, aber statt eines ATMEGA2560 drei ATMEGA328 einsetzt?
Der erste ATMEGA328 würde wie ein normaler Helvetino angeschlossen, die beiden anderen würden die nachfolgenden Pins verwenden. Alle drei CPU wären via I2C verbunden, die Reset via Oder-Gatter zusammengelegt, so dass eine gemeinsamer Reset sowie ein Einzelreset ausgelöst werden kann. Alle CPU würden den gleichen Quartz verwenden, so dass sie synchron laufen. Die Programmierung sollte über einen FOCA Anschluss erfolgen, wobei die jeweilige CPU über einen Schalter gewählt wird.
Aufgrund des beengten Platzes müsste auf die SMD Version der CPU zurückgegriffen werden, was aber kein so großes Problem sein sollte. Ich habe versucht, das Board mit DIL zu bauen, aber dann wird es zu eng für das Routing.
Den direkten Vorteil, den ich sehe ist, dass ich drei Aufgaben eine Projektes leicht parallelisieren kann und dass ich drei unabhängige Interrupthandler habe. So könnte ich mir vorstellen, mit der ersten CPU die Grafikausgabe zu steuern, die zweite CPU mit der Steuerung von Steppern/Servos zu beschäftigen und mit der dritten CPU die Sensoren auszulesen. Und über I2C kann ich die Prozesse synchronisieren. Da am Ende noch einige Pins frei sind, könnte man damit auch die CS Signale von einem SPI Bus realisieren und so die CPU zusammenschalten.
Bevor ich mich nun an das Design setze, wollte ich erst einmal fragen, ob so etwas überhaupt sinnvoll ist.
Ciao, Mathias
-
Hallo Mathias,
das hört sich nach einer coolen Lösung an.
Ein Mehrcontroller-Arduino-Board habe ich bisher noch nie gesehen.
Das Aufteilen der Aufgaben auf mehrere Microcontroller macht Sinn. Ein solcher Ansatz habe ich für mein Netzteilprojekt auch schon angedacht.
Statt mehreren Arduino-Boards zu verwenden, nimmt man den Ardu3Core, hat ein Board und mehrere Module für einzelne Aufgaben.
Die Kommunikation via I2C finde ich auch sinnvoll. Einen solchen Ansatz hast du ja bei der TFT-Library bereits realisiert.
Ein solches Board würde ich gerne verwenden.
Wie wäre es mit dem Namen "Helvetino3Core" :)
Gruss
Thomas
-
Interessanter Ansatz, auch wenn ich gestehen muss, dass ich bisher noch kein Projekt hatte, das aus einer solchen 3-Prozessor-Architektur Vorteile hätte ziehen können.
Die Programmierung sollte über einen FOCA Anschluss erfolgen, wobei die jeweilige CPU über einen Schalter gewählt wird.
Da ein 3-Core-Arduino sowieso nur etwas für erfahrene Arduino-Piloten ist (die Programmierung wird relativ anspruchsvoll), würde ich mir die serielle Schnittstelle freihalten und nur einen ICSP-Anschluss pro Prozessor unterbringen. Das dürfte schaltungstechnisch das Einfachste sein und im Betrieb am wenigsten Probleme verursachen.
-
Da ein 3-Core-Arduino sowieso nur etwas für erfahrene Arduino-Piloten ist (die Programmierung wird relativ anspruchsvoll),
Wenn ich Mathias richtig verstanden habe, laufen die einzelnen Controller unabhängig voneinander. Man kann also jeden der 3 Arduino mit einem eigenen Sketch ausführen lassen. Der Datenaustausch läuft, falls notwendig), über I2C.
Somit vereinfacht sich die Programmierung auf die Datenkommunikation mit I2C.
-
Hallo Mathias, ja tolle Idee, da hätte ich auch Ideen für Anwendungen. 3 x 328 ist dann viel besser als ein ATMEGA2560 und auch preiswerter. Die Programmierung ist dann etwas anspruchsvoller aber interessanter. Würdest Du dann nicht ein Master definieren und die 2 mit Interupts antriggern? Alle 3 auf gleichem Level mit Interupts zu verbinden kann ich mir nicht so vorstellen, was passiert wenn einer gerade ein Interupt abarbeitet und ein neuer ankommt?
Gruss Reto
-
Salut,
im Grundzustand sollen die drei CPUs unabhängig voneinander arbeiten. Das heisst, dass sie auch ihre Interrupts unabhängig voneinander abarbeiten. Das ist aus m einer Sicht schon allen ein Vorteil, da beim MEGA2560 die CPU die Interrupts nacheinander abarbeiten muss.
Beim I2C kann ich definieren, wer der Master und wer die Slaves sind.
Beim SPI habe ich noch keine genaue Idee, wie ich die CS Signale an die CPUs gebe.
Da ich eh schon mit SMD hantiere, werde ich dem Board noch einen FT232RL spendieren. Dies aber so, dass man bei Nichtbestückung einen FOCA verwenden kann (es ist halt vorne genug Platz)
Ciao, Mathias
-
Somit vereinfacht sich die Programmierung auf die Datenkommunikation mit I2C.
Darin sehe ich das grösste Problem, nur schon das Konzept hinter I2C überfordert die meisten Anfänger.
Beim SPI habe ich noch keine genaue Idee, wie ich die CS Signale an die CPUs gebe.
Was soll das Ziel sein? Die Interkommunikation über SPI anstatt I2C? Dann musst Du einfach die SS rundum verbinden (also z.B. D8/A1 an D10/A2, D8/A2 an D10/A3 und D8/A3 an D10/A1) und das selbe für die Datenleitungen, allerdings über eine Diode mit dahinterliegendem Pulldown (jeweils MOSI an MISO).
In meinen Augen ist das aber keine gute Lösung, denn so habe ich den SPI nicht für andere Dinge frei und drei Mal einen kompletten SPI (in Hardware) zu haben, dürfte einer der grossen Vorteile Deines Ardu3Core sein. Für die Kommunikation untereinander sollte der I2C genügen, wenn man den Speed eines SPI benötigt, dürfte ein Ardu3Core sowieso die falsche Wahl sein, dann ist ein ATmega2560 wahrscheinlich eher angebracht.
-
Salut,
ich bin inzwischen auch zu dem Schluss gekommen, dass ich die SPI getrennt lasse. Eigentlich war ja der Auslöser für diese Idee die 4 ungenutzten Pins D51-D54 aus dem Mega Pinout. Ich habe nun die ICSP Header für alle drei CPUs getrennt auf die Platine gelegt. Man sollte den ICSP der ersten CPU bestücken, damit die Shields auf CPU1 laufen (default Arduino). Die ICSP Header der CPU2 und CPU3 kann man unbestückt lassen und dann über den Pogo-Pin Adapter auf die CPU zugreifen.
Den FT232RL habe ich erst einmal vom Plan genommen, da ich zuerst den Anschluss über Foca realisieren will
Statt einem umschaltbaren FOCA favorisiere ich derzeit eine Pinreihe je CPU. Damit kann ich dann (ggf. über angewinkelte Pins) alle drei CPUs gleichzeitig ansprechen, was gerade bei der Entwicklung wichtig ist.
Der Autorouter von Eagle ist hier eine besondere Hilfe. Ohne den würde ich wahrscheinlich verzweifeln...
Ciao, Mathias
-
@pylon
Darin sehe ich das grösste Problem, nur schon das Konzept hinter I2C überfordert die meisten Anfänger.
Diese Boardlösung ist natürlich eher für erfahrene Anwender gedacht.
@Mathias
ich bin inzwischen auch zu dem Schluss gekommen, dass ich die SPI getrennt lasse.
Ja, getrennt ist sicher besser.
Statt einem umschaltbaren FOCA favorisiere ich derzeit eine Pinreihe je CPU. Damit kann ich dann (ggf. über angewinkelte Pins) alle drei CPUs gleichzeitig ansprechen, was gerade bei der Entwicklung wichtig ist.
Getrennte Pinreihen würde ich auch empfehlen.
Der Autorouter von Eagle ist hier eine besondere Hilfe. Ohne den würde ich wahrscheinlich verzweifeln...
Da bin ich mal gespannt wie das aussehen wird. Vielleicht kannst du ja mal einen Zwischenstand präsentieren ;)
Gruss
Thomas
-
Salut,
würde gerne den Stand der Mittagspause posten, aber das Forum nimmt das Bild (80kB PNG) nicht ..
Ciao, Mathias
-
ok - die Forumsoftware mag die Idee nicht ...
versuchen wir es mal als ZIP
-
@Mathias,
das Board sieht ja richtig heiss aus :)
Ein Arduino-Board auf dem mehrere Sketche parallel laufen. Einfach cool !
Wie wird der Clock für die einzelnen ATmega gemacht? Ich sehe keinen Quarz oder Resonator.
Gruss
Thomas
-
Salut Thomas,
bei CPU1 ist ein SMD Resonator (aus dem Sparkfun Sortiment), der an alle drei CPUs angeschlossen ist. Damit sollten die CPUs in Sync laufen. Ich hoffe, das geht. Ansonsten wird der Resonator jeder CPU spendiert
Heute Abend werde ich die Stromversorgung machen und dann an das Routing gehen, da einige Signale vom Autorouter nicht so ganz meinen Vorstellungen entsprechen.
Beim Schaltplan lehne ich mich übrigens an das Boarduino Design von Adafruit an, was aber weitgehend identisch mit dem Helvetino ist. Lediglich bei der Power sind ein paar mehr Kondensatoren dabei
Ciao, Mathias
-
bei CPU1 ist ein SMD Resonator (aus dem Sparkfun Sortiment), der an alle drei CPUs angeschlossen ist. Damit sollten die CPUs in Sync laufen. Ich hoffe, das geht. Ansonsten wird der Resonator jeder CPU spendiert
OK, habe den Resonator in deinem Layout gefunden.
Ob Parallelbetrieb möglich ist, kann ich auch nicht sagen. Werde dies auch mal anschauen.
Um Probleme zu vermeiden, würde ich jedem ATmega einen eigenen spendieren.
-
Salut Thomas,
ich denke, da sich der I2C Bus selbst synchronisiert, ist ein Synchronlauf der CPUs nicht das Risiko wert. Ich habe daher jeder CPU nun einen Resonator gegeben und dabei THD statt SMD gewählt. Ist leichter zu löten und gibt dem Autorouter mehr Möglichkeiten Vias ui sparen.
Ciao, Mathias
-
Ich habe daher jeder CPU nun einen Resonator gegeben und dabei THD statt SMD gewählt.
Das ist die sicherste Variante.
Das Teilen des Resonators ist, soweit ich gesehen habe, nicht möglich.
Für die ATmega gäbe es noch die Variante mit externen Clock. Das muss aber ein Rechtecksignal sein. Zusätzlich müssen für diese Schaltungsart die Fuses anders gesetzt werden. Was das ganze wieder komplizierter macht.
-
Salut Thomas,
hier erst einmal die 0.1 Version mit Power als Eagle Files.
Ciao, Mathias
-
Mathias,
Gratulation, das sieht ja super aus.
Ich glaube das wird ein cooles Board :)
Gruss
Thomas
-
Erstmal, tolle Idee Mathias.
Ich hab mir Gedanken gemacht wie man mit dem einen FTDI alle 3 ATmegas ansprechen könnte.
Eine gemeine Idee wäre alle ausser den zu programmierenden Chip im Reset zu halten und die RX/TX parallel an alle Arduinos zu führen, ich hab aber keine Ahnung ob das so gehen würde, ausserdem verliert man so die Möglichkeit zum seriellen Debugging.
Ein weitere Variante wäre der Einsatz eines Crosspoint Switches, die meisten zahlbaren davon unterstützen aber nur 2x2 Leitungen, damit liesse sich aber quasi softwaremässig (oder mit einem Jumper) einer von 2 Chips als Ziel auswählen. Ein solcher (zahlbarer) IC wär z.B. der SY55854U von Micrel (http://ttp://www.micrel.com/_PDF/HBW/sy55854u.pdf).
Oder aber - und das ist wirklich nur mal eine wilde Idee - man nimmt einen Mikrokontroller mit genügend Pins wie den ATtiny2313 und lässt ihn je nach Zustand von 2 Eingangs-Selektoren, RX/TX mit jeweils 2 anderen I/Os verbinden. Dabei müsste natürlich im ATtiny ein Programm laufen, welches quasi wie ein serieller Proxy wirkt und Ein- resp. Ausgaben an die entsprechenden Pins weitergibt. Ob das dann mit dem Timing in beide Richtungen aufginge ist da wirklich ein andere Frage, aber ev. würde ein solcher Steuer-IC noch weitere sinnvolle Aufgaben übernehmen können.
Grüsse - Christoph
P.S.: @Mathias: Mit welchem Fehler hat das Forum Deinen Anhang abgelehnt ? Dann kann ich dem nachgehen,
-
Ich hab mir Gedanken gemacht wie man mit dem einen FTDI alle 3 ATmegas ansprechen könnte.
Ich würde die 3 FTDI jeweils direkt am entsprechenden ATmega, ohne Umschalter oder Umschaltfunktion mit Elektronik.
So kann man auch mal 2 serielle Ports gleichzeitig nutzen.
Mit komplizierten Umschaltungen handelt man sich doch nur Probleme ein.
Gruss
Thomas
-
Salut,
ich bin inzwischen auch mehr zu der Überzeugung gelangt, dass ich die drei CPUs unabhängig voneinander ansprechen will und somit drei FOCA Anschlüsse breit stelle. Ich kann mir vorstellen, dass es sehr nervig wird, immer zwischen den CPUs herum zu schalten und wenn man einmal falsch geschaltet hat, dann ist die falsche CPU geflasht.
Ich habe Gestern mal die Bauteile geordert. Dabei habe ich den Resonator durch Quarz und Kondenstorpaar ersetzt, da ich keinen passenden Resonator finden konnte. Nach dem erfolgreichen Legetest, werde ich mal bei OSH ein Board ordern.
Ciao, Mathias
-
Salut,
hier noch eine Designfrage:
- ich habe für die SMD Widerstände die Grösse 805 gewählt. Ist das zu klein zum löten oder soll ich auf 1206 umsteigen?
- als minimale Leiterbahndicke habe ich 10mil gewählt. Ist das ausreichend? (Stromversorgung ist davon ausgenommen und bekommt dickere Leiterbahnen. Beim Helvetino sind 8mil verbaut
Ciao, Mathias
-
ich habe für die SMD Widerstände die Grösse 805 gewählt. Ist das zu klein zum löten oder soll ich auf 1206 umsteigen?
Für mich sind 0805 ok. Diese Baugrösse kann noch gut gelötet werden.
als minimale Leiterbahndicke habe ich 10mil gewählt. Ist das ausreichend?
10mil entspricht 0.254mm
Grundsätzlich kann die Faustformel 10mil/Ampere verwendet werden.
Die folgende Tabelle gibt eine kleine Übersicht über die Leiterbahndicken:
http://www.mikrocontroller.net/articles/Leiterbahnbreite (http://www.mikrocontroller.net/articles/Leiterbahnbreite)
Gruss
Thomas
-
ich bin inzwischen auch mehr zu der Überzeugung gelangt, dass ich die drei CPUs unabhängig voneinander ansprechen will und somit drei FOCA Anschlüsse breit stelle
Ich denke das ist ein guter Entscheid.
Dabei habe ich den Resonator durch Quarz und Kondenstorpaar ersetzt, da ich keinen passenden Resonator finden konnte.
Mit einem Resonator benötigt man halt nur 1 Bauteil.
Soweit ich sehe, sollten diese Bauelemente eigentlich gut lieferbar sein.
@Christoph
ein Resonator mit 16MHz würde eigenlich noch gut in euer Lieferprogramm passen. Bei Anwendungen mit SMD werden häufig auch SMD-Varianten von Resonatoren verwendet. Eine solche Bauform habe ich kürzlich gesucht (aber noch nicht bestellt)
Gruss
Thomas
-
Salut,
ich kann im deutschen Raum leider keinen Resonator finden. Die einzige Version die ich gefunden habe ist ein SMD Bauteil, das mehr danach aussieht als müsste man es im Reflow löten.
Was passiert eigentlich, wenn man statt der 22 pF 100 nF nimmt für die beiden Kondensatoren (im Helvetino Fritzing sind da nämlich 100 nF)?
Ciao, Mathias
-
Hallo zusammen,
Ich habe für die SMD Widerstände die Grösse 805 gewählt. Ist das zu klein zum löten oder soll ich auf 1206 umsteigen?
Ich selber finde beim Selberlöten von SMD je grösser je besser, aber ehrlicherweise macht der Unterschied vom 1206 auf 0805 nicht allzuviel aus.
als minimale Leiterbahndicke habe ich 10mil gewählt. Ist das ausreichend? (Stromversorgung ist davon ausgenommen und bekommt dickere Leiterbahnen.
Das hängt in erster Linie vom gewählten PCB Produkt resp. dessen Kupferdicke in oz/ft2 ab, gebräuchlich sind 1 und 2 oz/ft2.
Wenn wir bei einer Signalleitung von einer Länge von 1" ausgehen und diese für max. 100mA auslegen gibt das bei 1oz/ft2 rund 1.3mil und resultiert in einem Leitungswiderstand von ~0.4 Ohm. Also vom Grundsatz her: So dick wie möglich aber nicht dünner als nötig.
D.h. bei den Signalleitungen kann man bis auf 1-2mil runter ohne Probleme zu erwarten, dicker ist natürlich wie gesagt besser. Die Speisung (5V/GND) sollte aber min. 10-12mil oder besser noch mehr sein, speziell dort wo die Speisung für alle 3 Chips über den gleichen Pin läuft.
Wers exakt rechnen will, dem empfehle ich diesen Rechner hier (http://circuitcalculator.com/wordpress/?p=25/).
ein Resonator mit 16MHz würde eigenlich noch gut in euer Lieferprogramm passen. Bei Anwendungen mit SMD werden häufig auch SMD-Varianten von Resonatoren verwendet. Eine solche Bauform habe ich kürzlich gesucht (aber noch nicht bestellt)
Gute Anregung, ich hatte bisher immer etwas Berührungsängste weil ich mich gefragt habe warum alle Boards immer mit Quarz und Kondensatoren kommen, wenn ein Resonator doch 2 Bauteile einspart und nicht teurer ist. Ev. liegt es daran, dass die SMD Versionen fast alle nicht-standard Bauformen haben (ganz wenige in 1206) und auch fast ausschliesslich verbacken aber nicht verlötet werden können.
THT Versionen mit 2.5mm Pitch gibt es nur wenige, aber die sind preislich durchaus gegenüber dem Quarz konkurrenzfähig und ab Lager lieferbar. Soll ich da mal was an Lager nehmen und wenn ja welche Kapazität sollten die eingebauten Cs haben ? Es stehen da 5, 15 und 30pF zur Auswahl. Aufgrund der normalerweise verwendeten 22pF schätze ich ist 15 oder 30pF am besten geeignet.
Was meint Ihr ?
Grüsse - Christoph
-
ch kann im deutschen Raum leider keinen Resonator finden. Die einzige Version die ich gefunden habe ist ein SMD Bauteil, das mehr danach aussieht als müsste man es im Reflow löten.
Farnell und Distrelec haben verschiedene Typen an Lager.
Was passiert eigentlich, wenn man statt der 22 pF 100 nF nimmt für die beiden Kondensatoren (im Helvetino Fritzing sind da nämlich 100 nF)?
Für den Takt mit Quarz müssen 2 Kondensatoren mit 22pF verwendet werden.
Im Fritzing ist möglicherweise ein Wert von 100nF eingetragen, dies müssten aber auch 22pF sein.
-
THT Versionen mit 2.5mm Pitch gibt es nur wenige, aber die sind preislich durchaus gegenüber dem Quarz konkurrenzfähig und ab Lager lieferbar. Soll ich da mal was an Lager nehmen und wenn ja welche Kapazität sollten die eingebauten Cs haben ? Es stehen da 5, 15 und 30pF zur Auswahl. Aufgrund der normalerweise verwendeten 22pF schätze ich ist 15 oder 30pF am besten geeignet.
Ein kurzer Blick in den Distrelec liefert mehrere Typen mit 2.5mm Raster an Lager.
u.a.
https://www.distrelec.ch/resonator-3-kontakte-16-mhz/murata/cstce16m0v13c99-r0/667631 (https://www.distrelec.ch/resonator-3-kontakte-16-mhz/murata/cstce16m0v13c99-r0/667631)
Ich vermute dass beide Varianten (15p und 30pF) geeignet sind.
In diesem Thread bei AVR Freaks wurde über das Thema "Resonator versus Crystal" diskutiert und Vor-und Nachteile erwähnt.
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=74114 (http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=74114)
Gruss
Thomas
-
Hallo Mathias,
Was passiert eigentlich, wenn man statt der 22 pF 100 nF nimmt für die beiden Kondensatoren (im Helvetino Fritzing sind da nämlich 100 nF)?
Ich vermute der Takt läuft aus dem Ruder oder es kommt gar nicht zum Oszillieren. Im Helvetino sind die beiden Quarz-Kondensatoren 22pF. Die 0.1uF sind Dämpfungen für den Reset des ATmega, im Schema/Fritzing sind unglücklicherweise alle 4 als 0.1uF ausgeführt/angeschrieben.
Grüsse - Christoph
-
im Schema/Fritzing sind unglücklicherweise alle 4 als 0.1uF ausgeführt/angeschrieben.
Das scheint ein Fehler im Fritzing-Projekt zu sein.
In der Stückliste sind natürlich die richtigen Werte drin.
Gruss
Thomas
-
Ich vermute dass beide Varianten (15p und 30pF) geeignet sind.
Ich hab in einem Datenblatt folgenden Fingerzeig entdeckt:
5-20MHz -> 30pF
20-25MHz -> 15pF
25-30MHz -> 5pF
Ich würde ales 16MHz - 30pF THT mit 2.5mm Pitch nehmen.
Danke für den Hinweis auf den Thread Qarz vs. Resonator, es ist aufgrund dieser Erkenntnisse dann fraglich ob für Mathias der Einsatz von Resonatoren zu empfehlen ist. Die Ersparnisse sind auch bei 3 Quarzen nicht allzu erheblich.
Grüsse - Christoph
-
es ist aufgrund dieser Erkenntnisse dann fraglich ob für Mathias der Einsatz von Resonatoren zu empfehlen ist. Die Ersparnisse sind auch bei 3 Quarzen nicht allzu erheblich.
Die einzige Ersparnis ist der Platz (und die Genauigkeit ;) )
Wie Mathias erwähnt hat, hat er schon Quarze in seinem Projekt eingeplant.
Ich habe mir mal die verschiedenen Arduino-Boards angeschaut. Wie ich sehe, wurde auf dem Arduino Uno auch ein Resonator verwendet. Zusätzlich wird hier noch ein 1M Widerstand parallel zum internen Quarz geschaltet.
Gruss
Thomas
-
Ich habe mir mal die verschiedenen Arduino-Boards angeschaut. Wie ich sehe, wurde auf dem Arduino Uno auch ein Resonator verwendet. Zusätzlich wird hier noch ein 1M Widerstand parallel zum internen Quarz geschaltet.
Tatsächlich, das ist mir nie aufgefallen. Aber interessanterweise wurde für den 16u2 dann wieder ein Quarz genommen.
Grüsse - Christoph
-
Salut,
klingt als wäre für den ersten Test ein Quarz plus 2 22 pF Kondensatoren das Richtige. Platz ist an der Stelle genug.
Ciao, Mathias
-
Tatsächlich, das ist mir nie aufgefallen. Aber interessanterweise wurde für den 16u2 dann wieder ein Quarz genommen.
Der UNO und der MEGA2560 haben für den Hauptprozessor Keramik-Resonatoren eingebaut. Der ebenfalls auf dem Board vorhandene ATmega16U2 hat einen Quarz bekommen, weil er für die USB-Kommunikation die deutlich höhere Präzision des Schwingkristalls benötigt.
Resonatoren haben 3 Hauptvorteile:
- günstigen Preis
- kleinere Bauweise
- weniger empfindlich gegen äussere Einflüsse (Erschütterungen, ESD, etc.)
Letzteres wird gerne unterschätzt, ich musste leidvolle Erfahrungen damit machen.
Der grösste Nachteil wurde schon erwähnt: Um den Faktor 100-1000 geringere Genauigkeit.
-
Salut,
die Quarz/Kondensator Variante unterscheidet sich vom Resonator in SMD kaum, beide liegen bei ca. 20 Cent. Leider sind die SMD Teile sehr schwer zu löten, so dass ich lieber auf die bedrahtete Version ausweiche. Auch hier liegt der Preise bei Beiden bei ca 1 Euro.
Nun da ich die Bauteile vorliegen habe, wird der erste Prototyp mit bedrahtetem Quarz gebaut...
Ciao, Mathias
-
Salut,
beim Legetest habe ich entdeckt, dass ich bislang den Powerblock nicht geroutet hatte. Das ist an sich kein Problem, aber ich habe dabei den Pinentdeckt, welcher 3.3 V anbietet (zwischen Reset und 5V). Wo bekomme ich diese 3.3 V her und wie haben wir das beim Helvetino gelöst? Ich möchte ungern einen LM1117 dafür einbauen
Ciao, Mathias
-
beim Legetest habe ich entdeckt, dass ich bislang den Powerblock nicht geroutet hatte. Das ist an sich kein Problem, aber ich habe dabei den Pinentdeckt, welcher 3.3 V anbietet (zwischen Reset und 5V). Wo bekomme ich diese 3.3 V her und wie haben wir das beim Helvetino gelöst? Ich möchte ungern einen LM1117 dafür einbauen
Beim Helvetino ist 3V3 nicht verbunden, wie übrigens IOREF auch. Damit dürfte der Helvetino kein vollwertiger Arduino-Ersatz sein, denn einige Shields werden nicht funktionieren. Das Problem dürfte in erster Linie der fehlende 3V3-Anschluss sein, IOREF wird noch relativ selten verwendet.
-
Beim Helvetino ist 3V3 nicht verbunden, wie übrigens IOREF auch.
Genau, beide Signale sind beim Helvetino nicht verbunden.
Bei künftigen Helvetino-Versionen werden wir diesen Mangel korrigieren.
Wo bekomme ich diese 3.3 V her...
Meist wird für die 3.3V ein eigener Spannungsregler verwendet. Beim Arduino Uno ist es ein Spannungsregler-Typ LP2985-33.
Bei Arduino-Boards mit einem FT232 USB/Serial-Wandler werden die 3.3V in diesem IC generiert.
Gruss
Thomas
-
@Mathias
Ich möchte ungern einen LM1117 dafür einbauen
Ich würde einen zusätzlichen Spannungsregler für 3.3V vorsehen.
Gruss
Thomas
-
Salut,
ich habe einen zweiten Spannungsregler eingefügt und AREF auf AREF der ersten CPU gelegt. Damit ist der vordere Teil des Boards ein vollständiger Arduino Clone. Da ich zwei Spannungsquellen habe, habe ich auch einen Jumper eingefügt, der Vcc zwischen 5V und 3.3V wählbar macht.
Ich denke, dass ich OSH mal 3 Testplatinen backen lasse.
Ciao, Mathias
-
ich habe einen zweiten Spannungsregler eingefügt und AREF auf AREF der ersten CPU gelegt. Damit ist der vordere Teil des Boards ein vollständiger Arduino Clone
Perfect :)
Da ich zwei Spannungsquellen habe, habe ich auch einen Jumper eingefügt, der Vcc zwischen 5V und 3.3V wählbar macht.
Wie ist das gemeint mit den beiden Spannungsquellen?
Kann für jeden Arduino zwischen 3.3V und 5V gewählt werden?
Ich denke, dass ich OSH mal 3 Testplatinen backen lasse.
Gerne stelle ich mich als Tester zur Verfügung.
Die Bauteile würde ich mir direkt bei Boxtec besorgen.
Gruss
Thomas
-
Salut,
derzeit lässt sich nur die Wahl für Vcc treffen, welches dann aber für alle CPUs gilt. Die Idee, dass für jede CPU dies frei wählbar sein sollte ist verlockend und wahrscheinlich einfach realisierbar. Dann kann ich die noch freien vier Pins (D50-D53) ja dazu verwenden, 3.3V, 5V und Aref der beiden anderen CPUs herauszuführen. Das wird es dann auf der nächsten Platine geben. Da habe ich auch vor, einen FT232RL für die erste CPU zu verbauen, so dass man einen vollen Arduino hat und zusätzlich zwei CPUs, die nach bedarf via FOCA programmiert werden.
Ciao, Mathias
-
derzeit lässt sich nur die Wahl für Vcc treffen, welches dann aber für alle CPUs gilt.
Das ist ok so.
Die Idee, dass für jede CPU dies frei wählbar sein sollte ist verlockend und wahrscheinlich einfach realisierbar.
Ob man das wirklich braucht?
Ich denke die Lösung oben ist gut.
Da habe ich auch vor, einen FT232RL für die erste CPU zu verbauen, so dass man einen vollen Arduino hat und zusätzlich zwei CPUs, die nach bedarf via FOCA programmiert werden.
Welche Vorteile siehst du dabei?
Wenn ich den einen Arduino mit dem FOCA programmiere, kann ich die anderen auch auf diese Weise nutzen.
Gruss
Thomas
-
Salut Thomas,
vorerst sind das nur Ideen. Mal schauen ob das Board beim ersten versuch nicht in "indian processing" geht, also Rauchzeichen macht :o
Ich denke, dass das Board in zwei Wochen da ist, auf dem Panel ist es schon.
Ciao, Mathias
-
Salut,
die Prototypen von OSH sind eingetroffen. Werde wohl bis zum Wochenende warten müssen mit dem Testaufbau, aber dann werde ich mal ein paar Bilder posten
Ciao, Mathias
-
Salut,
ich dachte, ich fange mal einfach an mit dem 3Core und bestücke auf der Platine die Stromversorgung 5V. Hat soweit alles geklappt, aber nach dem Power-on leuchtete die Led für einige Sekunden und danach nicht mehr. So wie es aussieht, hat es den LM117 gekostet (und nachfolgend die Led) und das, obwohl ich lediglich die Schutzdiode, die beiden Elkos (noch ok) und die beiden Kondensatoren (auch ok) bestückt habe. Als Vin habe ich 12V angelegt, beim ersten Test sogar nut 8 Volt über Batterie. Der LM117 ist ein LM 1117 MP5,0 von Reichelt (http://www.reichelt.de/ICs-LM-1000-LM-1999/LM-1117-MP5-0/3/index.html?&ACTION=3&LA=5000&GROUP=A2152&GROUPID=5465&ARTICLE=109330&START=0&SORT=artnr&OFFSET=500). Der Schaltplan ist angehängt, die Stromversorgung ist im Plan oben.
Was mache ich falsch?
Ciao, Mathias
-
Hallo Mathias,
Beim ersten Blick in den Stromlaufplan sehe ich keine offensichtlichen Probleme.
Auf dem Board fehlen mir bei den Spannungsreglern die Anschluss-Signale an Pin 2. Stattdessen sind die grossen Lötflächen verdrahtet. Ist das wirklich korrekt?
Sind beide Anschlüsse Kühlfläche und Pin 2 intern verbunden?
Fragen:
Waren beim Einschalten 5V und/oder 3.3V zu messen?
Sind die Spannungsregler heiss?
Somit heisst es nun analytisch den Fehler einkreisen.
Ich würde mal mit einem Netzgerät mit Strombegrenzung 5V direkt einspeisen ohne VIn zu nutzen. Dabei muss der Stromverbrauch überwacht werden.
Tip: Bei Inbetriebnahmen von Leiterplatten immer mit einem Labornetzgerät und minimaler Strombegrenzung arbeiten (solche Geräte gibts auch bei Boxtec ;) )
Da sind mal meine ersten Bemerkungen dazu.
Gruss
Thomas
-
Hallo zusammen,
Sind beide Anschlüsse Kühlfläche und Pin 2 intern verbunden?
Sieht nach dem Datenblatt so aus.
@MathiasW: was hast Du für einen Wert bei R9 ? Sieht für mich auch alles gut aus, aber wenn R9 z.B. ein 2.7 Ohm und die LED rot wäre würde das ca. 1.5A Strom am Ausgang des LM117 ziehen, erst die LED "blitzen" und vrmtl. auch den LM117. Das ist recht spekulativ aber einfach das einzige was mir im Moment in den Sinn kommt aufgrund Schema und Deiner Beschreibung.
Grüsse - Christoph
-
was hast Du für einen Wert bei R9 ? Sieht für mich auch alles gut aus, aber wenn R9 z.B. ein 2.7 Ohm
Das war auch meine Vermutung da Mathias schreibt dass die LED und auch der Spannungsregler kaputt sind.
Gruss
Thomas
-
Salut,
hatte als erste Spannungsquelle eine 9V Batterie. Der R9 ist 1kOhm, da ich mit der Power-LED nicht die Gegend ausleuchten will. Die hat er auch noch ... Ich habe noch 9 LM117 ... laut Datenblatt ist Pin 2 mit der großen Fläche verbunden. Der 3.3V Regler ist nicht bestückt, da ich erst einmal schauen wollte, wie es überhaupt läuft. Ich hatte noch nie Probleme mit dieser Schaltung, habe aber das erste mal SMD Bauteile benutzt. Werde das Teil heute Abend oder morgen an das Labornetzteil anschließen (Danke Christoph...) Warm wurde übrigens kein Bauteil noch sieht irgendetwas verraucht aus.
Ciao, Mathias
-
Ganz dumme Idee, hatte ich aber mit den Barrel Jacks auch schon: Wackelkontakt, sprich kommt die EIngangsspannung überhaupt am LM117 an ?
Grüsse - Christoph
-
Werde das Teil heute Abend oder morgen an das Labornetzteil anschließen (Danke Christoph...) Warm wurde übrigens kein Bauteil noch sieht irgendetwas verraucht aus.
Wenn die Bauteile nicht warm wurden, vermute ich eher dass die keine Spannung bekommen.
Wie Christoph schreibt, muss du prüfen ob die Spannung überhaupt am LM117 ankommt. Dazu nimmt man idealerweise ein Multimeter.
Bei der allerersten Inbetriebnahme schliesse ich immer ein Labornetzteil an und prüfe alle nötigen Versorgungsspannungen. Bei einer digitalen Schaltung wie hier muss an jedem Vcc-Punkt/Pin die Spannung geprüft werden.
Dann Schritt für Schritt Schaltungsteile auflöten und austesten.
Die Vermutung von Christoph sollte überprüft werden und ist gar nicht so eine dumme Idee. LED aus heisst ja oft auch keine Spannung und nicht LED kaputt ;)
Gruss
Thomas
-
Salut,
irgendwie hat dieses Projekt die Seuche...
Ich habe mein vor einiger Zeit erworbenes Atten PPS3005S ausgepackt und wollte damit wie empfohlen die Schaltung nun langsam aufbauen. Leider befindet sich in dem Karton keinerlei Anschlusskabel. Zum Glück habe ich ein regelbares Netzteil (ohne Powerprotection), bei dem ich die Anschlusskabel klauen kann. Das PPS3005S meldet sich mit reichlich Lüftergeräuschen und der Anzeige von 30V, 5A in der Grundeinstellung. Wenn ich nun auf OUTPUT drücke kommt am Ausgang .... Nix!
Das "Handbuch" besteht aus zwei Seiten in Englisch, die noch nicht einmal die Bedeutung der LEDs erklären. Meine Interpretation:
OUT = Output aktiv - bei mir an
OVP = Over Voltage Protection - bei mit aus
OCP = Over Current Protection - bei mir aus
CC = ?-? C**** Current - bei mir aus
CV = ?-? C**** Voltasge - bei mir an
Spannung an den Buchsen: beim Einschalten zuckt das Voltmeter im mV Bereich und geht auf 0.00
Gibt es jemand, der das Teil schon mal erfolgreich betrieben hat und gibt es eine Beschreibung, was CV und CC bedeuten?
Wie spreche ich die USB Schnittstelle an? Im Forum bei atten bettelt ein User vergeblich darum. Die einzige Software, welche ich gefunden habe (auch die im Shop) ist in chinesisch.
Ciao, Mathias
-
Hallo Mathias,
leider ist das Handbuch von diesem Gerät sehr minimal.
Ich habe das Gerät auch im Einsatz und beim Einschalten die gleichen Einstellungen wie bei dir erwähnt.
CV bedeutet Constant Voltage, CC entsprechend Constant Current. Im Normalbetrieb ist also CV aktiv.
Bei Output ON sollte an den Buchsen - und +, also schwarz und rot die eingestellte Spannung zu messen sein. Die beiden Betriebsmodes OVP und OCP benutze ich momentan auch nicht.
Die USB Schnittstelle habe ich bisher nicht verwendet und somit die Software noch nie getestet da diese ja in Chinesisch ist.
Gruss
Thomas
-
Leider befindet sich in dem Karton keinerlei Anschlusskabel.
Hauptsache das Netzkabel ist dabei :)
Die Anschlusskabel mit Bananenstecker unterscheiden sich je nach Anwendungsfall. Ich verwende meist Standard-Kabel mit kleinen oder grossen aufsteckbaren Krokodil-Klemmen. Es lohnt sich auf jeden Fall eine Anzahl unterschiedlicher Kabel im Labor bereit zu haben.
Auch bei den normalen Verlängerungskabel lohnt es sich unterschiedliche Längen zu besitzen. Diese Kabel kann man fertig einkaufen oder man erstellt sich diese selber und kauft nur die Bananenstecker.
Das sind übrigens meine Lieblingsstecker:
(https://farm8.staticflickr.com/7318/13515397145_30dab09ae0.jpg)
Gruss
Thomas
-
Salut Thomas,
ioch habe mir bei ELV den Laborkabelsatz zusammengestellt. Jetzt muss ich nur noch das Netzteil dazu bewegen, etwas auszugeben. Ich habe alle drei Ausgabeports geprüft (+, -, GND) aber keine Spannung gefunden.
Am 3Core habe ich nach Deiner Anregung die zweite Platine von OSH Teil für Teil aufgebaut und vermessen. Hier läuft alles und ich habe auch den Fehler der ersten Paltine behoben: Die Schutzdiode hatte eine kalte Lötstelle, da diese SMD Diode ein Zylinder ist, an dem das Lötzinn nicht so sehr haftet wie bei den anderen SMD Bauteilen. Inzwischen habe ich also geregelte 5V, die 3.3V müssen noch warten, da ich die LM1117-3.3 erst bei Christoph ordern muss.
Ciao, Mathias
-
Salut,
ich habe mir nochmals das Netzteil angeschaut. Vorhin habe ich über eine Stunde lang versucht, dem Gerät eine Ausgangsspannung zu entlocken. Jetzt läuft es ohne Probleme. Werde das länger beobachten, aber ich vermute das Problem sitzt wie meist 70 cm vor dem Bildschirm ...
Wäre schön, wenn man das USB Protokoll kennen würde. Ich habe im Web vergleichbare Geräte gefunden und bin dort auf ein sehr einfaches Protokoll gestoßen, welches sich leicht verwenden liesse. Dazu müsste man aber die Parameter der USB Schnittstelle kennen. Mal schauen, ob ich das finden kann.
Ciao, Mathias
-
...habe mir bei ELV den Laborkabelsatz zusammengestellt.
Perfekt, die kann man immer gebrauchen.
Am 3Core habe ich nach Deiner Anregung die zweite Platine von OSH Teil für Teil aufgebaut und vermessen. Hier läuft alles und ich habe auch den Fehler der ersten Paltine behoben: Die Schutzdiode hatte eine kalte Lötstelle,
Manchmal lohnt es sich wenn man einen Fehler an einem zweiten Board überprüft. Schlechte Lötstellen können einem das Leben schwer machen. Super dass du den Fehler gefunden hast.
Mit der korrekten 5V Spannung ist schon mal eine grosse Hürde genommen.
Gruss
Thomas
-
ich habe mir nochmals das Netzteil angeschaut. Vorhin habe ich über eine Stunde lang versucht, dem Gerät eine Ausgangsspannung zu entlocken. Jetzt läuft es ohne Probleme.
Was hast du jetzt gemacht dass es funktioniert? Stecker eingesteckt ;) ??
Gruss
Thomas
-
Hauptsache das Netzkabel ist dabei :)
Ja und ich habs genauso interpretiert, dass das fehlt.... Sorry Mathias: Du hast ein Netzkabel im Paket heute, kannst es auch gerne dalassen.
Ein paar Bananenkabel mit Ameisenklemmen hätt ich Dir sicher auch noch gehabt - aber eben Problem von Anfang an falsch verstanden ::)
Ich hab mir heute so ein PPS3005S (http://shop.boxtec.ch/pps3005s-single-programmable-regulated-power-supply-p-41744.html) geschnappt und werde das Protokoll versuchen zu dokumentieren (kann etwas dauern).
Grüsse - Christoph
-
Salut Thomas,
es bleibt auch mir unerklärlich. Ich habe schließlich jahrelang solche Geräte an der Uni genutzt. Die einzige Änderung ist dass ich das Kaltgerätekabel durch ein eigenes getauscht habe, aber das kann ich mir nicht als Fehlerquelle vorstellen. Ich hatte meine Frau dabei (auch Physikerin) um mich als Fehlerquelle auszuschließen .... Heute Abend werde ich mich wieder an das Gerät setzen zumal ich das mit der OverCurrent Protection herausfinden will.
Ciao, Mathias
-
Ich hab mir heute so ein PPS3005S ([url]http://shop.boxtec.ch/pps3005s-single-programmable-regulated-power-supply-p-41744.html[/url]) geschnappt und werde das Protokoll versuchen zu dokumentieren (kann etwas dauern).
Sigrok unterstützt ein verwandtes Teil: http://sigrok.org/wiki/Atten_PPS3203T-3S/Info (http://sigrok.org/wiki/Atten_PPS3203T-3S/Info)
Gut möglich, dass der Protokoll-Code weitgehend stimmt: http://sigrok.org/gitweb/?p=libsigrok.git;a=tree;f=hardware/atten-pps3xxx;h=ec8e4ee430156b92b7dba567580e9863fccd1ac8;hb=HEAD (http://sigrok.org/gitweb/?p=libsigrok.git;a=tree;f=hardware/atten-pps3xxx;h=ec8e4ee430156b92b7dba567580e9863fccd1ac8;hb=HEAD)
-
Salut,
diesen Link hatte ich auch schon gefunden. Das Protokoll ist nicht das Gleiche. Seit Gestern habe ich ein Codeschnipsel vom Atten Support, welches ein Finne geschrieben hat. Mal schauen, ob das weiterhilft
Ciao, Mathias
-
Salut,
ich habe ein vergleichbares Netzteil bei ELV gefunden. Dieses ist von Velleman (PS3005) und die Software sieht sehr nach der zweiten Version der chinesischen Atten-Software aus. (Entweder ist das eine Sippe oder jeder klaut von jedem) Ich habe testweise die Software installiert und gestartet - wieder nix - aber, der geiwefte Windows User kennt ja die Pappenheimer: Das Gerät erhielt COM Port 50 zugewiesen. Die Software sieht aber aus, als wäre sie unter WindowsXP compiliert worden. Der Programmierer damals konnte nur bis 10 zählen (kein Scherz, end-of-2 hands-error) weswegen WindowsXP Software nur die Ports COM0-COM9 versteht. Also habe ich dem USB Port die COM4 (war noch frei) zugewiesen und - die Software (auch die chinesische Atten Verions) erkennt das Netzteil. SO, jetzt ist es an der Zeit für die Linux User, mit dem Lachkrampf wieder aufzuhören, XP ist ja auch 12 Jahre alt...
Habe mit einem Portsniffer die Kommunikation entziffert. Jetzt werde ich mal schauen, ob man das nicht besser programmieren kann ...
Ciao, Mathias
-
Ich habe die von Mathias zum PPS3005S zusammengetragenen Informationen in einer Seite im Playground (http://playground.boxtec.ch/doku.php/products/pps3005s_dc_geregeltes_und_programmierbares_labornetzgeraet) zusammengefasst. Nochmals vielen Dank für die Unterstützung an Mathias und seinen fantastischen Windows Client für das PPS3005S.
Grüsse - Christoph
-
Hallo zusammen,
besten Dank für die Bereitstellung der Informationen.
Ich habe die Software von Mathias installiert und ich kann nun mein Netzgerät über die Oberfläche steuern. Ziemlich cool :)
Vielen Dank für eure Bemühungen.
Gruss
Thomas
-
Hi Mathias , find ich prinzipiell eine gute Idee, das mit den drei MCU's, könnte mir vorstellen das man hiermit, vorausgesetzt die Kommunikation läuft untereinander, ein redundantes System kreiren könnte, welches die einzelnen Kerne bei Softwarefehlern bzw. Abstürzen gegenseitig neustartet und gegebenenfalls die Aufgaben der "abgeschossenen" MCU übernimmt, z.B. Sensoren auslesen uvm.. Ich denke da an was ähnliches wie beim ArduPilotMega der mit nem ATmega2560 und einem Atmega 328P als Redundanz ausgerüstet ist, jedoch sicherer und noch zuverlässiger da 3 MCU's, da hats Murphy's Gesetz schon schwerer ;D lol.
MfG P. Hausammann
-
Hallo Mathias,
die Prototypen von OSH sind eingetroffen. Werde wohl bis zum Wochenende warten müssen mit dem Testaufbau, aber dann werde ich mal ein paar Bilder posten
Konntest du schon einen Prototypen des Ardu3Core in Betrieb nehmen?
Gruss
Thomas
-
Salut Thomas,
leider habe ich auf der Platine einen Fehler gemacht, der sich nicht korrigieren lässt. Ich muss also komplett umbauen und bin mir mit einigen Optionen noch nicht im klaren. Außerdem hatte ich im Job eine Deadline und reichlich Reisen, was mich von der Hardware abgehalten hat.
Ciao, Mathias
-
Hallo Mathias
alles klar. Danke für die Statusmeldung.
Das ist ja unser Hobby und so haben wir keinen Zeitdruck ;)
Gruss
Thomas
-
Salut Thomas,
hier noch ein paar Details: Auf der Platine habe ich leider zwei Anschlüsse falsch geroutet, so dass die Platinen nicht zu verwenden sind. Da sie aufgrund der Größe recht teuer sind, bin ich bei der nächsten Platine etwas vorsichtiger... Ich gehe derzeit vier Optionen an:
- Aufbau wie gehabt mit SMD Bauteilen und korrekten Routing
- Aufbau wie gehabt mit THT Bauteilen und korrekten Routing
- Aufbau mit drei Arduino Nano auf der Unterseite
- Aufbau mit drei Arduino Mini (5V) auf der Unterseite
Zusätzlich hat mich die Modul-Diskussion mit Achim angeregt, das Camdenboss System etwas genauer anzuschauen (Reichelt sollte bis Mittwoch liefern). Da könnte man überlegen, ob man nicht den 3Core auf das 72mm Maß zieht. Oder einen Helvetino mit dem Maß baut. Bei SMD Bauteilen gibt es dann auch keine Probleme mit dem Rand.
Ab 13.8. bin ich in Urlaub und kann mich endlich wieder dem Hobby zuwenden. Entsprechend stressig ist wie üblich die Zeit davor ... (bin schon wieder unterwegs)
Ciao, Mathias