Hallo Ich stell jetzt mal die ganze Sache in die Codesammlung. Orginal Beitrag ist hier zu finden. Beitrag "3-Achs Schrittmotorsteuerung mit Trinamic TMC260 und AVR" Worum es geht? Ja,ja ich weiß. Schon wieder ne Schrittmotorsteuerung. Aber, was haltet ihr von einer 3-Achs Schrittmotorsteuerung auf Basis der neuen TMC260 Treiber von Trinamic? Als Positions- und Schrittcontroller dient hier ein ATmega644. Diese Treiber können via SPI parametrisiert werden und können dann per Takt- /Richtungssignale gesteuert werden. Vorteile: - die Treiber übernehmen vollständig den Chopperbetrieb der Spulen - Fast/Slow/Mixed Decay - Stall Guard Technologie für Referenzfahrt/Schrittfehler Erkennung - integrierte Mosfets / kein Kühlkörper erforderlich (cool Step) Nachteile - nur max 2A Phasenstrom möglich Auf dem AVR läuft seit ein paar Tagen ein angepasster G-Code-Interpreter Namens "grbl". Grbl ist von Simen Svale Skogsrud entwickelt worden und steht unter der GNU General Public License [http://www.gnu.org/licenses/quick-guide-gplv3.html]. Quelle: http://dank.bengler.no/-/page/show/5470_grbl Was schon alles implentiert ist: - G-Code Interpreter für einige RS274/ngc Standard-Befehle - einen Bewegungs-Abblauf-Planer der bis zu 18 Sets im Voraus plant - Beschleuniguns-/Bremsrampen Management - mit einer jitterfreien bis zu 30kHz schnellen Step/Dir Rate G-Code-Befehle: G0 Geradeninterpolation im Eilgang G1 Geradeninterpolation mit Vorschub [F xxxx] G2 Kreisinterpolation Bogen links (im Urzeigersinn) G3 Kreisinterpolation Bogen rechts (gegen Urzeigersinn) G4 Verweihlzeit mit Parameter P xxxx G17 Ebnenauswahl [X | Y | Z] G18 Ebnenauswahl [X | Z | Y] G19 Ebnenauswahl [Y | Z | X] G20 Maßangaben in inch G21 Maßangaben in mm G28/G30 Referenzfahrt zu den Limits, erst in Z, dann in X/Y G53 absoluten Nullpunkt setzen G80 Bohrzyklus aufheben/Bewegung anhalten G90 absolute Maßangabe G91 inkrementale Maßangabe G93 Vorschub in 1/min G94 Vorschub in mm/min oder inch/min M0/M1/M2/M30/M60 Programm Stop/Pause/Ende M3 Spindel Start / im Urzeigersinn M4 Spindel Start / gegen Urzeigersinn M5 Spindel Stop T xxxx Werkzeigauswahl (wird zwar erkannt, bewirkt aber nichts) F xxxx Vorschub P xxxx Pausenzeit S xxxx Spindeldrehzahl (wird zwar erkannt, bewirkt aber nichts) I xxxx.xxx bei G2/G3 Bogenzentrum in X J xxxx.xxx bei G2/G3 Bogenzentrum in Y K xxxx.xxx bei G2/G3 Bogenzentrum in Z R xxxx.xxx bei G2/G3 Radius X xxxx.xxx Koordinate X-Axis Y xxxx.xxx Koordinate Y-Axis Z xxxx.xxx Koordinate Z-Axis Die serielle Schnittstelle habe ich mit der Hardware (CTS) Flow-Control ausgestattet, damit man den G-Code mit einem Terminalprogramm bequem an das Board senden kann. Hier gibt es auch ein kleines Video (leider schlechte Quali) http://www.youtube.com/watch?v=qvTnohhg8GQ&feature=plcp http://www.youtube.com/watch?v=kbjn9jjbg2w&feature=plcp http://www.youtube.com/watch?v=UPoO3jW2jNM&feature=plcp TODO: Motorparameter bei der Initialisierung aus dem EEPROM über SPI an die Treiber senden, Positionsausgabe über Schnittstelle (RS232 oder SPI), Spindeldrehzahl mit PWM Gruß Steffen
moin Steffen, ...wie bei mir, den meisten ist so was zu schwer... Mit Gruß Pieter PS: was ist mit G40/G41/G42?
Pieter schrieb: > moin Steffen, > > ...wie bei mir, den meisten ist so was zu schwer... Wie meinst du das? > > Mit Gruß > Pieter > > PS: was ist mit G40/G41/G42? Die Werkzeugkorrektur muss auch noch implementiert werden. Oder man macht sie schon vorher im CAD/CAM Programm. Es gibt von "gbrl" auch schon eine neuere Firmware [v0.8], aber da ist auch noch keine Werkzeugkorrektur enthalten. Probleme macht mir momentan eher die Parametrierung der Trinamic Treiber. Diese wollte ich gern auch von außen per UART parametrieren können. Also die jeweiligen Registerwerte der Treiber im EEPROM ablegen und über Befehle über UART verändern können. Kenn mich mit [C] leider nicht so gut aus. Gruß Steffen
Es gibt wieder Neues. Ich habe in der Version _V_0_7_e die Parametrierung der Trinamic-Treiber hinzugefügt. Controller Parameter anzeigen über '$' TMC Driver Parameter anzeigen über '#' TMC Driver Parameter einstellen über #<Parameter>=<Value>, der Value muss hierbei im Hexa-Format eingegeben werden. Beispiel: Register "CHOPCONF" für Motor Y ändern #5=0801AB gefolgt von einem <CR> oder <LF> Steffen
Ups.. hab ich doch glatt das File vergessen :-)
Cooles Projekt, gefällt mir. Hab gerade gestern abend den Reichelt-Katalog durchstöbert und überlegt was es mit den Trinamic-ICs so auf sich hat. Ich wollte mich schon immer mal mit den G-Befehlen beschäftigen - und auch vielleicht damit was schnitzen. Hab aber nie den Hintern hoch bekommen -> astreine Motivationsmunition.
Das freut mich. Ich habe auch noch 2 professionell gefertigte Leiterplatten übrig. Die Trinamic-Treiber sind bei Schuricht / Distrelec günstig zu haben. https://www.distrelec.de/ishopWebFront/search/luceneSearch.do;jsessionid=CDB5FE9D054CD55FCBCF4B5C03ACF319.daechj011u?dispatch=find&catalog=01&keywordPhrase=TMC260 Bei Intresse bitte mit Preisvorstellung über PN an mich. Gruß Steffen
wirklich schicke Paltinen. Gut gemacht. Aber wie gehts dem GCode? die "einfachen" G41,G41 ?? Der Pieter hat das schon durch. Kein Zuckerschlecken. Gruß Stephan
moin moin, >>Der Pieter hat das schon durch... siehe da: http://forum.zerspanungsbude.net/viewtopic.php?f=50&t=5582 Mit Gruß Pieter
Hallo Pieter, werd ich gleich einmal studieren. Mal sehen, wie du an die ganze Sache rangegangen bist. Wieviel Ampere kanst du mit den Treibern (THB6064AH) rausholen? Mit meiner angepassten Firmware werd ich jetzt erst mal wegen Urlaub nicht weiter kommen.
Hallo, Eine LP ist weg, somit gibt es jetzt nur noch eine Leiterplatte. Gruß Steffen
Leider die FALSCHE File Version gewesen. DANKE an Dirk, der es bemerkt hatte! Nun aber die RICHTIGE File Version V0.7e im Anhang. Übrigens ist immer noch eine Prototypen LP zu haben. Schönen Sonntag Steffen
Ja, genau ich habe die eine Platine und das Fehlen der TMC Parameter Änderung bemerkt :-)) Der Aufbau war ohne Probleme möglich (wenn man SMD Löten kann). Die Null Ohm Widerstände R8, R9, R17, R18, R26 und R27 dürfen nicht bestückt werden. (Danke Steffen für den Hinweis.) Die Teile habe ich zum größten Teil bei Reichelt gekauft, nur den Spannungsregler (IC10), die 0,15 Ohm Shunts (R1, R2, R10, R11, R19, R20) und die TMC260 habe ich bei Schuricht / Distrelec gekauft, da Reichelt sie nicht hat. Eine vollständige Bestellung bei Distrelec wäre teurer gewesen als die extra Versandkosten. Für meine Schrittmotoren musste ich die Parameter der TMC's ändern. Es gibt auf der Trinamic Homepage ein kleines Programm mit dem man die HEX Werte der einzelnen Register bestimmen bzw entschlüsseln kann. So habe ich die von Steffens Software die Werte dort eingegeben und anschließend den Wert für den Stepper Strom erhöht, die neuen Werte dem Programm entnommen und in die Software übernommen. Ich will später die Platine über ein Optokopplerboard an einem LinuxCNC PC betreiben. Dafür bekommt der ATmega eine neue Firmware die "nur noch" die TMC's steuert und über den PC angesprochen werden kann. Der von mir vorgesehene PC zickt derzeit allerdings noch rum :-/ Auch ist das Optokopplerboard noch nicht fertig. Das ganze soll die schrottige Steuerung meiner Elektor "Profiler" CNC Fräse ersetzen. Mal sehen B-)
Hallo Steffen, super Arbeit! Ich habe mir vor einigen Monaten mal alle frei verfügbaren G-code Interpreter angesehen die ich gefunden habe und fand das GRBL der beste ist. Habe ihn dann mal auf Arduino portiert und mit einem Grafik Display (Positionsanzeige XYZ und Koonfigurierung) und Joystick (0-Punkt Verschiebung) ausgestattet, leider ist der ATMEGA328 dafür eigentlich etwas zu lahm und hat nicht genügend Ports. Wolle dann auf einen ATMEGA32U4 (auch wegen des USB supports) portieren, da bin ich dann aber kläglich gescheitert.... :-( Hat sich jemand schon mal daran versucht? Gruß michael
Hallo Michael, Michael Z. schrieb: > Habe ihn dann mal auf Arduino portiert und mit einem Grafik Display > (Positionsanzeige XYZ und Koonfigurierung) und Joystick (0-Punkt > Verschiebung) ausgestattet, leider ist der ATMEGA328 dafür eigentlich > etwas zu lahm und hat nicht genügend Ports. Das würde mich näher interessieren. Wie hast du da die Position an ein Grafikdisplay gesendet? Und wie oft war da die aktualisierung der Display-Daten? Selbiges hab ich nämlich auch vor. Will den SPI dafür verwenden. Momentan arbeite ich an einer Überarbeitung meiner Leiterplatte "STEP_DRiVe 2.0" Gruß Steffen
Hallo Es ist geschafft. Das STEP_DRiVe Board ist überarbeitet. _Was hat sich geändert:_ - die serielle Speichererweiterung (FRAM) ist weggefallen - die TTL232 Schnittstelle hat das Busy-Signal dazubekommen - das Layout des Schaltreglers wurde optimiert - das Layout der TMC260 wurde laut Datasheet optimiert (Kühlflächen an den Treiberpins), überflüssige Widerstände sind weggefallen - das externe Interface hat nur noch 3 GPIO's, dafür sind jetzt 4 /CS Signalleitungen für den SPI vorhanden (vorgesehen für Positionsanzeige von X,Y,Z über SPI und einen Joystick zur Nullpunktverschiebung bzw. Tasten für bestimmte G-Befehle *Mich würde immernoch Michael Z.'s abgeänderter Code interessieren.* Gruß Steffen
Steffen H. schrieb: > Das würde mich näher interessieren. Wie hast du da die Position an ein > Grafikdisplay gesendet? Und wie oft war da die aktualisierung der > Display-Daten? > Selbiges hab ich nämlich auch vor. Will den SPI dafür verwenden. Hallo Steffen, habe gerade mal mein Tesatboard vorgekramt, anbei ein Foto... nicht so schön, aber man erkennt den Arduino Uno, die Steppercontroller von Nanotec (einer fehlt, da ich den für was anderes brauchte), ganz rechts unten den Joystick und daneben das Display. Ist ein Farb LCD 240x320 mit Touchscreen: http://www.watterott.com/de/MI0283QT-2-Adapter Das Ding lässt sich recht einfach in C-Code einbinden und wird direkt vom Controller gesteuert (7 Ports incl. Touch). Den Displaycode habe ich mal ganz simpel im Hauptprogramm laufen, also Aktualisierung sehr schnell. Im Moment zeigt das Display nur ONLINE/OFFLINE, 0-Punkt und XYZ Momentanwerte an. Gruß Michael
Hallo Michael Michael Z. schrieb: > Habe ihn dann mal auf Arduino portiert und mit einem Grafik Display > (Positionsanzeige XYZ und Koonfigurierung) und Joystick (0-Punkt > Verschiebung) ausgestattet, leider ist der ATMEGA328 dafür eigentlich > etwas zu lahm und hat nicht genügend Ports. Michael Z. schrieb: > Den Displaycode habe ich mal ganz simpel im Hauptprogramm laufen, also > Aktualisierung sehr schnell. Ich denke mir mal die Aktualisierung des Displays wird hier zu häufig stattfinden und nimmt dem Controller zu viel Recourcen weg. Deswegen wird er etwas lahm. Was mich mehr interessiert ist, welche Daten du zur Positionsanzeige per SPI auf das Display schickst. Ich hab die Variablen im Programmcode noch nicht gefunden. Und wie hast du den Joystick eingebunden? Vieleicht hast du da mal ein wenig Programmcode für mich? Gruß Steffen
So, hab mich gerade mal wieder mit der Firmware auseinander gestetzt. Michael Z. schrieb: > Den Displaycode habe ich mal ganz simpel im Hauptprogramm laufen, also > Aktualisierung sehr schnell. Wenn du die main.c als Hauptprogramm meinst, kann das garnicht sein. Denn dieses wird nur einmal durchlaufen. Die meiste Zeit ist der µC damit beschäftigt auf eintreffende Zeichen über die serielle Schnittstelle zu warten und auf die weitere Abarbeitung eines Planner-Blockes. Deswegen würd ich gerne mal deinen eingebundenen C-Code sehen. Ich finde hier keinen direkten Positionsangaben in der FW. Also welche hast du genutzt Michael? Gruß Steffen
Hallo Es gibt wieder neues: Hab mir jetzt eine Positionsanzeige gebaut. Diese arbeitet als SPI-Slave mit einem ATtiny2313, 3x MAX7219 und 3x8 7-Segment Anzeigen. Einen Schaltplan und eine LP habe ich noch nicht erstellt, da ich alles erstmal auf Lochraster aufgebaut habe. Um den Motion Controller etwas zu entlasten werden über den SPI die Daten nur im ala 3x4 Bytes (long) im Floatformat gesendet. Also 12 Bytes insgesammt. Der Tiny2313 empfängt das SPI Frame mittels USI Interrupt. Wandelt das Floatformat in einen 40bit integer um (ca.170µs) und dann den 40Bit Integer in BCD für die Anzeigetreiber (MAX7219). Über eine zweite Software SPI Schnittstelle werden diese Daten dann an die Anzeigentreiber wieder ausgegeben. ein kurzes Video zur Demonstration: http://www.youtube.com/watch?v=sQBwdItv4UM&feature=youtu.be Schaltplan und Layout zur Positionsanzeige folgen in kürze. Gruß Steffen
moin,
>>3x4 Bytes (long) im Floatformat
wie, was, warum dieser Aufwand?
Stecke die Schrittinfo in 1 Byte und mach auf dem Tiny2313 eine einfache
BCD-Addition.
Mit Gruß
Pieter
Moin Pieter Pieter schrieb: >>>3x4 Bytes (long) im Floatformat > > wie, was, warum dieser Aufwand? Da diese Information schon als sys.position[Achse] vorliegt und im Controller auch darüber alle Schritte berechnet werden. Ich musste mir nun nur diese Information greifen und über den SPI ausgeben. Die Positionsangabe (int32) im Controller selbst wird hierbei in Steps angegeben. Diese wird vor der Ausgabe an den SPI noch durch die Steps/mm geteilt und der system cordinate offset dazuaddiert. Schon erhalte ich die Angabe in mm oder inch. Jenachdem was eingestellt wurde (G20/G21). Außerdem weiß der ATtiny2313 der Positionsanzeige ja nicht wieviel Steps/mm eingestellt wurden oder halt ob mm oder inch. Gruß Steffen
moin Steffen, >>durch die Steps/mm geteilt das ist doch eine Konstante, besser dann mit dem Kehrwert multiplizieren, geht schneller. >>40bit integer um (ca.170µs) Deine Anzeige kann also maximal 1960 Werte/s umrechnen. Würde mir nicht reichen bei 3600mm/min (100Step/mm) und im Raum (mit x,y,z) fahren. Da komme ich auf 18000 Werte/s. Mit Gruß Pieter
Hey Pieter Pieter schrieb: >>>durch die Steps/mm geteilt > das ist doch eine Konstante, besser dann mit dem Kehrwert > multiplizieren, geht schneller. Das ist leider keine Konstante. Denn diesen Parameter (Steps/mm) kann man für jede Achse zur Laufzeit über das Terminal verändern. Pieter schrieb: >>>40bit integer um (ca.170µs) > Deine Anzeige kann also maximal 1960 Werte/s umrechnen. Sei mir bitte nicht böse Pieter, aber was will ich mit 1960 Werte/s. Das ist eine Anzeige. Und dein menschliches Auge ist mit Sicherheit nicht so schnell, dass es dies noch erfassen kann. Das heißt doch, dass man die Anzeige nicht mehr als 10-20 mal in der sekunde aktualisieren muss ;) Oder versteh ich dich gerade nicht? Gruß Steffen
moin Steffen,
>>zur Laufzeit über das Terminal verändern.
dann mußt Du aber auch die Microsteps der Treiber ändern...und wie ist
das mit der Berechnung? Machst Du die in mm/inch und rechnest erst zur
Ausgabe um? Aber auch dann wäre der Kehrwert nur bei Änderung zu
berechnen, zeitlich also günstiger.
Den Sinn dieser Möglichkeit verstehe ich allerdings nicht.
Zur Anzeige: Hast Du den einen Timer laufen der so aller ca. 0,1sec. die
Anzeige aktualisiert?
Mit Gruß
Pieter
Hallo Pieter Pieter schrieb: > dann mußt Du aber auch die Microsteps der Treiber ändern... Nicht ganz. Der Motion Controller ist auch von außen via Terminal parametrierbar. Mal angenommen du hast einen 1.8° Stepper im 8-fach Microstepping und eine Spindel mit 4mm/U. Daraus ergeben sich ja 400Steps/mm. Jetzt willst du aber 16-fach Microstepping haben. Dann ergeben sich ja 800Steps/min. Dann musst du das jetzt nicht immer neu kompilieren. Pieter schrieb: > Machst Du die in mm/inch und rechnest erst zur > Ausgabe um? Es wird die Angabe aus dem G-Code (mm/inch) je nach Einstellung in Steps umgerechnet. Pieter schrieb: > Zur Anzeige: Hast Du den einen Timer laufen der so aller ca. 0,1sec. die > Anzeige aktualisiert? Ja. hab ich. Der Motion Controller sendet aller 100ms seine Positionswerte via SPI. Das triggert dann auch die Refresh-Rate der Anzeige. Steffen
moin Steffen, 4mm/400Steps = 10µm/Step 4mm/800Steps = 5µm/Step Bei meinen Motortreibern (THB6064) kann ich die Mircosteps nur per Hardware einstellen, von daher ist neukompelieren das geringere Problem. Wie oft hast Du das schon genutzt? Bei meiner Steuerung werden beim Einlesen die Werte umgerechnet(mm oder inch). Die Steuerung selber rechnet ausschliesslich in Steps und gibt das so auch (seriell) aus. Auf dem seriellen (SPI) lauscht die Anzeige und errechnet parametrierbar die Position. Da ich es bisher nicht gebraucht habe nur in mm. Inch wäre aber auch möglich. Da die Anzeige schnell genug arbeitet, brauche ich keinen extra Timer für den Refresh. Mit Gruß Pieter
Hi Steffen, kannst du bitte eine bessere Qualität des Schaltplans posten? Danke im vorraus
Hallo Alois, Alois Neumann schrieb: > kannst du bitte eine bessere Qualität des Schaltplans posten? > Danke im vorraus Schau mal bitte hier: Beitrag "3-Achs Schrittmotorsteuerung mit Trinamic TMC260 und AVR" Da hab ich es als pdf-File. Gruß Steffen
moin moin, Hi Steffen, bin grade dabei meine Steuerung "auf den ARM" zu nehmen. Das ist echt geil. Zeitreserven ohne Ende. Die sin^2 Rampe mit 32 Werten berechnen "dauert" 31µs. Die Einarbeitung ist recht einfach, den ARM habe ich ca. 3Wochen und das Programm ist fast fertig umgestellt. Mit Gruß Pieter Wer einen ARM programmiert, ist nicht ARM dran. Aber lieber ARM dran, als ARM ab.
Pieter schrieb: > bin grade dabei meine Steuerung "auf den ARM" zu nehmen. > Das ist echt geil. Zeitreserven ohne Ende. > Die sin^2 Rampe mit 32 Werten berechnen "dauert" 31µs. Hey super.. Welchen 32-Bitter hast du denn genommen? Gruß Steffen
Hi Steffen, ein Olimex STM32-E407 mit STM32F4. Auf dem Board ist nicht so viel "artfremdes" Zeug drauf und das hat 4x 16Bit-Port auf Header und und und... Mit Gruß Pieter
Hört sich gut an. Hast du eine Projekt Seite? Würde gern mehr drüber erfahren. Bei mir ist erstmal Stillstand. Will doch andere Treiber verwenden. Meine TMC260 können nur max. 40V und 1,4A RMS. Werde sozusagen auf die TMC262 mit externen FETs umrüsten um wenigstens die üblichen NEMA23 mit 2,8A Phasenstrom verwenden zu können. Auf alle Fälle will ich bei 16 Microsteps (256 interpolliert) bleiben. Damit haben die Motoren eine enorme Laufruhe. Gruß Steffen
Hallo, die Verwendung eines Arm Controllers ist sicher eine gute Idee, so kann man noch viele weitere Dinge in die Software integrieren. Ich selbst hab damals 2010 die erste Version von Grbl auf einen Atmega128 portiert. In die vorhandene Software habe ich anschließend noch die Ansteuerung von einem Display, einer SD Karte und einer direkt Verbindung zu einem PC Terminal integriert.( siehe http://www.jtronics.de/software/jcnc-cnc-steuerung.html) Da ich mich seit einem Jahr mehr mit den Xmegas beschäftige hatte ich die Idee die neuste Version des Grbl CNC Controllers auf einem Xmega zu realisieren. Die Platine ist fertig und die ersten erfolgreichen Tests habe ich kurz nach Weihnachten durchgeführt. Die Entwicklung habe habe ich hier ausführlich vorgestellt: http://www.jtronics.de/forum/viewtopic.php?rb_v=viewtopic&f=18&t=6#p274 Das Board hat folgende technischen Daten: - CNC Steuerung mit internem CNC Controller und 4 Schrittmotortreibern - Ansteuerung per Standard Gcode über den USB Port - Aufruf von Aufträgen per SD Karte - 3-Achsen CNC (XYZ) - Schrittmotortreiber, bis 2.5A, für NEMA23 und einige NEMA34 Motoren - Micro-stepping bis zu 1/8 Schritt Momentan arbeiten wir noch an dem neuen Terminal Programm, dabei sollen für die Grundfunktionen nur noch die schon vorhandenen Kommandos der Grbl Software verwendet werden. Zusätzlich wird natürlich auch wieder eine Visualisierung/ Simulation des G Codes eingebaut. Da für die Grundfunktionen der Kommunikation nur noch die schon vorhandenen Befehle verwendet werden, ist es dann möglich, dass das Terminal mit jeder Hardware verwendet werden kann. grüße martin
Hallo Martin, das sieht ja alles sehr gut aus. Der Xmega kann ja bis zu 32MHz getaktet werden. Erhöht sich dadurch auch automatisch die maximale Geschwindigkeit der Stepper? Und welche Stepper-Driver werden verwendet? Übrigens ein sehr schönes Board was ihr da entwickelt habt. Gruß Steffen
danke. ... ja die maximal mögliche Geschwindigkeit erhöht sich dadurch. Aber die Geschwindigkeit der Stepper hängt ja meist vom verwendeten Motor und der Versorgungsspannung ab, daher ist bei den meisten Steuerungen schon viel eher die Geschwindigkeitsgrenze erreicht. Als Treiber verwende ich die DRV8811 bei bis zu 36V
Martin J. schrieb: > Motor und der Versorgungsspannung ab, daher ist bei den meisten > Steuerungen schon viel eher die Geschwindigkeitsgrenze erreicht. > Als Treiber verwende ich die DRV8811 bei bis zu 36V Ja, ein anständiger Motor ist auch mit hohen Kosten verbunden. Aber dafür taugen die meist auch mehr als. Die Versorgungsspannung für die Motoren sollte für eine anständige Endgeschwindigkeit auch möglichst hoch sein. Damit steigt die Performance. Allerdings schaffen dies die meisten Motertreiber nicht dies auch mit anständigem Strom für die Spulen bereit zu stellen. Den DRV8811 habe ich mir auch schonmal angesehen. Bin dann allerdings beim Preis zurück geschreckt. - Wieviel Ampere schaffen die denn? - Und wie weit seid Ihr denn schon mit der vollständigen Implementierung im XMega? Gruß Steffen Edit: Soll der Treiber wirklich 2.5A schaffen? Dann wird der bestimmt wahnsinnig heiß, oder? Die meisten Motoren haben allerdings 2.8A Spulenstrom.
klar schaffen die 2,5A, hab es aber bisher noch nicht nachgemessen. Jedoch hab ich auch bei meinen Großen Motoren noch nie den vorgesehenen Lüfter benötigt. Die haben einen relativ kleinen Innenwiderstand und nen relativ modernen Design, daher klappt das auch mit der Temperatur. Die Xmega Version ist fast fertig. Momentan haben wir erst mal einen kleinen G Code Viewer programmiert damit man sich den Code Visualisieren lassen kann. http://www.jtronics.de/forum/viewtopic.php?f=17&t=281
So, es ist vollbracht Habe das Layout für das NEMA23 Stepper Shield auf Basis eines TMC262 fertig. Alles noch nicht getestet, aber das werde ich machen, sobald ich die bei Jacob bestellten Platinen bekommen habe und bestückt sind. Kurzdaten µController: ATMega48 [MLF] StepController: Trinamic TMC262 [QFN] mit externen Mosfets USB-Controller: CP2101 oder CP2102 Mosfet's: 4x FDD8424 [40V/4.2A] StepResolution: FULLSTEP/2/4/8/16/32/64/128/256 CoilCurrent: max. 2.8A RMS Supply: 12 - 36V Der ATMega48 überwacht hierbei nur den TMC262 und 2 Endschalter bzw. dient zur Konfigurierung des TMC262, um den Schrittmotor Treiber optimal an den verwendeten Schrittmotor anzupassen. Die Kommunikation erfolgt hierbei über USB. Desweiteren kann die Firmware über USB upgedatet werden. Vom ATMega48 wird die Temperatur des TMC262 überwacht und bei überschreiten von 100°C der Treiber abgeschalten oder per LED gewarnt. Desweiteren kann ein Ziel- und Haltestrom eingestellt werden. Mehr dazu wenn die ersten Tests gelaufen sind. Gruß Steffen
Die Driver Platinen sind da, Hurra! Gestern bestückt und heute die Ersten Test gemacht. Es gibt keinen Layout Fehler. Es funktioniert erstmal alles. Zum Testen habe ich allerdings nur einen Schrittmotor mit einem maximalen Phasenstrom von 1,6A. Und selbst hier steckt Kraft dahinter. Der Driver mit dem TMC262 + externen Mosfets verhält sich genau so wie die TMC260/261 Driver - ganz smoothly. Halt nur höher belastbar. Bei derzeitigem Phasenstrom von I-rms = 1,58A und Vm = 24V werden die Mosfets nur leicht warm. Der TMC262 schon etwas mehr (ca. 40°C - 45°C). Das sind wahrscheinlich die internen Mosfet-Treiber. Eine Windows-GUI zum konfigurieren hab ich auch schon geschrieben (siehe Bild oben). Damit lassen sich über USB fast alle Register des TMC's bequem einstellen. Das Firmwareupdate per USB und Bootloader funktioniert auch einwandfrei. Dazu musste ich den ATmega48[MFL] vor dem verlöten mittels eines selbsgebauten Programmier Adapter flashen und schon die Fuses einstellen. Der CP2101 und der ATMEL ließen sich trotz QFN/MLF Outline super löten. Mit dem TMC262 hatte ich so meine Schwirigkeiten durch das GND-Die. Aber mit dem Heißluftfön und jedemenge Flussmittel hat auch dies zum Erfolg geführt. Die FDD8424 Mosfets hab ich dann auch gleich mit dem Heißluftfön eingelötet. So, jetzt gehen erstmal die Tests weiter.. Gruß Steffen
Hallo Steffen, das sieht echt gut aus. Ich bin grad am überlegen, ob es nicht sinnvoller ist, wenn ich bei meiner CNC Steuerung die Schrittmotortreiber weg lasse, so dass es einfach nur eine reine Steuerung ist und ich dann als Treiber solche Endstufen wie die von dir nehmen kann. Wie sieht deine Schnittstelle für die Treiber aus? Denkst du dass deine Kondensatoren für den Motorstrom ausreichen? Bis zu welcher Spannung hast du diese ausgelegt? Im übrigen gibt es jetzt von dem CNC Viewer schon eine neue Version mit einigen neuen Features. http://www.jtronics.de/forum/viewtopic.php?rb_v=viewtopic&f=17&t=281#p332 Grüße Martin
Martin J. schrieb: > Denkst du dass deine Kondensatoren für den Motorstrom ausreichen? > Bis zu welcher Spannung hast du diese ausgelegt? Ja, laut Datasheet sind sogar nur 47µF vorgesehen. Ich habe hier eine Spannungsfestigkeit von 63V gewählt. Das sollte für die 40V Mosfets ausreichen. Auszug aus dem Datasheet: 16.3 Power Filtering The motor supply pins, VSA and VSB, should be decoupled with an electrolytic (>47 μF is recommended) capacitor and a ceramic capacitor, placed close to the device. Martin J. schrieb: > Wie sieht deine Schnittstelle für die Treiber aus? Dass ich dazu noch gar keine Angabe gemacht habe, wird mir jetzt erst durch deine Frage bewusst. Also die TMC262 Driver 3.5 Boards kommen mit einer STEP/DIR + /EN Schnittstelle daher. Maximaler STEP-Takt: 4 MHz Martin J. schrieb: > Ich bin grad am überlegen, ob es nicht sinnvoller ist, wenn ich bei > meiner CNC Steuerung die Schrittmotortreiber weg lasse, so dass es > einfach nur eine reine Steuerung ist und ich dann als Treiber solche > Endstufen wie die von dir nehmen kann. Ich habe noch 2 PCB's übrig. Also wenn du sie selber mal testen willst.. Einen programmierten Atmel (wegen dem Bootloader und den Fuses) kannst du auch bekommen. Gruß Steffen
geht klar, das können wir gern mal testen :-) ich schreib dir...
Hallo, Mit den neuen Schrittmotor Endstufen habe ich gerade die maximale Step-Frequenz von 'grbl' ausgenutzt. Eigentlich sogar schon überschritten: 30,666 kHz Stepfrequenz. Und der Schrittmotor macht es mit. Ohne Schrittverluste. Das ergibt eine RPM von 575 U/min bzw. eine Verfahrgeschwindigkeit von F= 2300mm/min. Bisher hab ich immer nur 1000mm/min geschafft. Auch die langsamste Einstellung mit einer Vorschubgeschwingigkeit F= 1mm/min kann sich sehen und hören lassen. Kein ruckeln zu sehen. Muss mal Videos machen. Gruß Steffen
klingt super!!! Habe dir soeben auch auf deine Mail geantwortet.
Hier mal ein paar kurze Demo-Videos mit verschiedenen Vorschubgeschwindigkeiten. http://www.youtube.com/watch?v=_DuFRqfCkQU F= 1 mm/min http://www.youtube.com/watch?v=WrQPoUfoy4s F= 1 mm/min http://www.youtube.com/watch?v=-ghOse1TRFU F= 50 mm/min http://www.youtube.com/watch?v=IxBZi4cdKkk F= 400 mm/min http://www.youtube.com/watch?v=u2E24_DfCM4 F= 2400 mm/min Steffen
moin moin, @Steffen, welche Steigung hat die Spindel? Meine Spindel hat 16mm Steigung bei 8x Microstepping, da habe ich den Eilgang auf 3600mm/min begrenzt. Was ist die Anwendung für 1mm/min? Mit Gruß Peter
Pieter schrieb: > welche Steigung hat die Spindel? Die Spindel die ich anvisiere hätte 4mm Steigung. Macht bei 16fach Microstepping und 1,8° Schrittmotor 800Steps/mm oder halt 1/4 Umdrehung am Schrittmotor für 1mm Vorschub. (theoretische Auflösung von 0,00125mm/Step) Pieter schrieb: > Was ist die Anwendung für 1mm/min? Na irgendwo will ja auch ein Kreisbogen gefräst werden. Da musst du schon runter mit der Geschwindigkeit im den Scheitelpunkten. Oder für eine lange leichte Schräge. Da gilt das Selbe. So, hab heute den Strom-Chopper oszilloskopiert. Sieht sehr gut aus. Ohne Störungen im Signal. So wie es laut Trinamic aussehen soll. Also ist das Layout gut geworden. Gruß Steffen
Hallo Steffen, mit den Geschwindigkeiten...das glaube ich nicht! Ich setze F=800 und fräse damit alle Bewegungen. Die unterschiedlichen Geschwindigkeiten beim Kreis ergeben sich durch die sin/cos-Berechnung automatisch. Bei der Berechnung der Zeit zwischen 2 Steps wird allerdings die Anzahl der gleichzeitig aktiven Motore berücksichtigt, da die Wegstecke des Fräsers unterschiedlich lang ist. 1 Motor Zeit * 1 2 Motore Zeit * SQRT(2) 3 Motore Zeit * SQRT(3) Ausserdem, es gibt einen Zusammenhang zwischen Fräservorschub, Zähnezahl und Fräserdrehzahl. Die Bewegungsrichtung spielt dabei keine Rolle. Bei 1mm Vorschub schleift der Fräser nur am Werkstück und nutzt unnötig ab. Mit Gruß Peter
Hallo Peter! Du musst unterschieden zwischen der Geschwindigkeit des Fräsers - das ist ein Vektor v(x,y,z) im Raum. Die Achsgeschwindigkeiten sind dagegen v_x(X,0,0), v_y(0,y,0) und v_z(0,0,z). Je nach Winkel zwischen dem Fahrvektor des Fräsers und den Achsen kann es für eine der Achsen zu einer extrem niedrigen Geschwindigkeit kommen. Wenn da die Achse anfängt spürbar schrittweise zu fahren, sieht man das nachher in der gefrästen Oberfläche. Einfaches 2D-Beispiel: 100mm lange Gerade von (0;0) nach (99,875;5), Vorschub 10mm/s. v_x beträgt dann 9,875mm/s, v_y dann nur 0,5mm/s. Trotzdem "schleift" der Fräser nicht, weil der Vorschub konstant 10mm/s beträgt. Mit freundlichen Grüßen Thorsten Ostermann
@All, Heute hab ich bei einer Auflösung von 3200 Schritte/Umdrehung mit dem Schrittmotor 1500U/min geschafft. Das macht eine Step Frequenz von 80kHz. Dadurch dass bei der Einstellung von 16µSteps die Step-Resolution des TMC262 noch auf 256µSteps interpoliert werden kann, macht das also 51200 Schritte/Umdrehung. Diese kann man dann zwar nicht zur Positionierung benutzen aber die Interpolation lässt den Schrittmotor noch sanfter seine Arbeit verrichten. Video dazu: (diesmal bessere Qualität) http://www.youtube.com/watch?v=O-Iv-rHaEG8 Gruß Steffen
Hallo Steffen, ich habe das o.a. "Du-Röhre" Video von dir gesehen. Was dir allerdings noch fehlt, ist die Adaption an die Mechanik. Dein Stepper dreht frei, mit anderen Worten, du hast bisher das Massenmoment noch nicht mit ins Kalkül gesetzt. Ob du die 3200 Schritte/Umdrehung im Video mit Wirkmechanik erreichst, wage ich zu bezweifeln.
Michi schrieb: > Dein Stepper dreht frei, > mit anderen Worten, du hast bisher das Massenmoment noch nicht mit ins > Kalkül gesetzt. Ob du die 3200 Schritte/Umdrehung im Video mit > Wirkmechanik erreichst, wage ich zu bezweifeln. Ja, das wird er dann sicher nicht mehr schaffen. Wenn man hier den Schrittmotor nicht fest hält, kommt er auch manchmal durch seine Eigenresonanz nur bis ca. 940U/min. Für mehr als 1500U/min reicht dann das Drehmoment nicht mehr und reißt ab. Sind ja auch nur Tests für die Endstufe gewesen um mal zu sehen, wie warm die Mosfets da werden. Und die Mosfets bleiben erstaunlich kühl. Am wärmsten werden die Mosfets bei der niedrigsten Geschwindigkeit von 0.25U/min. Gruß Steffen
moin gibt es zu der Schrittmotorendstufe schon eine Dokumentation? Michael
Michael P. schrieb: > moin > > gibt es zu der Schrittmotorendstufe schon eine Dokumentation? > > Michael Ich denke der Anschluss der Schrittmotorendstufe ist aus oberen Bild ersichtlich und benötigt keine weitere Dokumentation. - Motorversorgungsspannung 10..36V anschließen - Digitale Versorgungsspannung 5V anschließen - Schrittmotor anschließen - Step, Dir und /EN Signale an einen µC anschließen ..und los gehts Bei dieser Version wird die benötigte digitale Versorgungsspannung leider noch nicht aus der Motorversorgungspannung gebildet. Deshalb ist die unbedingt bereit zu stellen. Dies soll sich in der nächsten Version ändern. Bin aber noch am testen eines geigneten StepUp Reglers dafür. Über USB kann man dann den Treiber (TMC262) noch an die unterschiedlichsten Schrittmotoren anpassen. Dazu hab ich ja eine kleine GUI geschrieben. Was die einzelnen Parameter zu bedeuten haben steht in der Dokumentation zum TMC262. Es gibt auch von Trinamic ein Tool um mit den Motordaten wie Phasenstrom, Phaseninduktivität, Phasenspannung und Phasenwiderstand die Parameter auszurechnen. Siehe: http://www.trinamic.com/tmctechlibcd/integrated_circuits/TMC262/TMC262_datasheet.pdf http://trinamic.com/tmctechlibcd/integrated_circuits/TMC262/Application_notes/Appnote_spreadCycle.pdf trinamic.com/tmctechlibcd/integrated_circuits/TMC262/Application_notes/t mc262_calculations.xls Gruß Steffen
Hallo Steffen, wolltest du mir nicht noch einen Prototypen deiner Endstufe zusenden? grüße martin
Steffen H. schrieb: > Michael P. schrieb: >> moin >> >> gibt es zu der Schrittmotorendstufe schon eine Dokumentation? >> >> Michael > > Ich denke der Anschluss der Schrittmotorendstufe ist aus oberen Bild > ersichtlich und benötigt keine weitere Dokumentation. Hallo Steffen, deine erste TMC Platine die du mir geschickt hast, werkelt immer noch zuverlässig an meiner CNC Fräse. Ich habe mit Interesse gesehen, dass du erfolgreich eine einzelne Stepper Driver Platine (TMC & ext. MOSFETs) entwickelt hast. Ich bin auch an dieser Interessiert. Würdest du den Schaltplan / das Layout hier einstellen wollen? Diese fehlen hier leider. Viele Grüße, Dirk
Hallo, auch ich bin gerade am Überlegen einen solchen Treiber zu Layouten. Ich würde eher etwas größere Mosfets verwenden, da ich an 48V/4A Motoren gedacht habe. @ Steffen, magst du Schaltplan und Layout hier veröffentlichen? Viele Grüße Christian
Hallo, ich hätte auch interesse an dem Layout. Wäre toll wenn du das hier einstellen könntest. @Stormracer Ich habe den gleichen Plan wie du. 48V, allerdings 6A für meine CNC. Vielleicht kann man sich ja für ein Layout zusammen tun.
Hallo Leute, Nach mehrmonatiger Abstinenz hier nun wieder ein Lebenszeichen von mir. Martin J. schrieb: > Hallo Steffen, > wolltest du mir nicht noch einen Prototypen deiner Endstufe zusenden? Ja, das wollte ich. Nachdem ich dir aber geschrieben habe und wenigstens die Unkosten haben wollte, hast du dich nicht mehr gemeldet. Ich dachte daraufhin die Sache wär erledigt. Für alle anderen die hier gerne die Schaltung oder das Layout haben wollen hab ich gute Nachrichten. Ihr findet diese im Anhang. Ich bin gerade dabei eine neue Revision der Platine zu machen. Neu dazukommen soll noch ein Schaltregler (LTC3990) der aus der Versorgungsspannung gleich die 5V für Atmel und der restlichen Elektronik bereit stellt. Den Schaltregler habe ich getestet mit bis zu 40V Eingangsspannung und 100mA Last auf der 5V Seite. Für bis zu 60V am Eingang und 350mA am Ausgang soll der kleine Käfer laut Datasheet verkraften. Gruß Steffen
Hallo Steffen, prima dein Schaltplan kommt zur rechten Zeit :) Ich werde zwar die USB Geschichte rausschmeißen und dafür eine RS485 einbauen. Den Teil vom TMC262 und der MOSFET's werde ich so übernehmen. Warum hast du nicht die 5V aus dem TMC262 verwendet (Pin 9)? Nur um dir die 3,3V Vcc Möglichkeit offen zu halten oder hast du Bedenken wegen Störungen? Einen Jumper hast du ja vorgesehen. Die möglichen 100mA sollten ja reichen... LED LD2 und R17 sind nicht im Schaltplan vorhanden ;) Gruß Dirk
:
Bearbeitet durch User
@ Steffen H. Sry, dann war das ein Missverständnis, natürlich hätte ich dir das Zeug bezahlt. Also wenn du noch ein Board hast, dann wäre ich noch interessiert. Kann auch unbestückt sein, die Teile sollte ich da haben. ... einen schönen Sonntag noch :-)
Dirk R. schrieb: > Warum hast du nicht die 5V aus dem TMC262 verwendet (Pin 9)? > Nur um dir die 3,3V Vcc Möglichkeit offen zu halten oder hast du > Bedenken wegen Störungen? Einen Jumper hast du ja vorgesehen. Die > möglichen 100mA sollten ja reichen... 3,3V muss leider verworfen werden oder man kann den mega48 nur noch mit 8MHz betreiben. Die Angaben im Datasheet zu 5Vout des TMC262 sind in Sachen Strombelastbarkeit mir zu schwammig gewesen. Deswegen lieber einen eigenen Regler mit auf das Board. Außerdem ist der interne 5V Regler auch derjenige der den Chip ganz schön einheizt. Dirk R. schrieb: > LED LD2 und R17 sind nicht im Schaltplan vorhanden ;) Ja, ich glaube da war die Pin-Begrenzung von Target dran Schuld.. Martin J. schrieb: > @ Steffen H. > Sry, dann war das ein Missverständnis, natürlich hätte ich dir das Zeug > bezahlt. Also wenn du noch ein Board hast, dann wäre ich noch > interessiert. Kann auch unbestückt sein, die Teile sollte ich da haben. Eine fertig bestückte funktionsfähige Leiterplatte hab ich noch. Wie gesagt, für 50€ + Versand geb ich die ab. Grüße Steffen
Dirk R. schrieb: > Ich werde zwar die USB Geschichte rausschmeißen und dafür eine RS485 > einbauen. Der USB ist nur zum konfigurieren des Treibers da. Wenn man das über RS485 machen will muss man noch die Firmware des mega48 umschreiben. Man muss dann ja zwischen Senden/Empfangen umschalten, oder? Gruß Steffen
Ja klar, eine neue Firmware muss ich sowieso erstellen. Ich will mir einen X Achsen Antrieb für meine manuelle Fräse bauen. Um für die Zukunft (CNC) schon gerüstet zu sein, will ich einen Stepper verwenden anstatt wie sonst üblich einen DC Motor mit PWM Drehzahlsteuerung. Der Stepper wird 2:1 Untersetzt mit einem HTD 3M Zahnriemen an die Achse gekoppelt. Der Treiber bekommt zwei Steuerungseingänge, einmal über einen Links - Stop - Rechts Schalter und ein Poti (Geschwindigkeit) für die manuelle Steuerung sowie eine Step/Dir/Enable/RefSw Schnittstelle für eine spätere Zentrale CNC Steuerung. Auch will ich noch drei Schaltereingänge für Limit- und Referenzschalter vorsehen. Die RS485 soll zur Konfiguration und sonstigen Dingen dienen. Als Controller will ich einen ATmega328P verwenden. Die ganzen Änderungen haben natürlich ein neues PCB Layout zur folge, nur am Stepperleistungsteil werde ich mich an deinem Layout orientieren. Ich baue die Platine auch nicht an den Stepper sondern in das Zahnriemengehäuse ein. Gruß Dirk
Hallo, seit dieser Woche ist endlich meine neue GRBL PC-Terminal und G-Code Viewer Software "jCNC" fertig. Die Software verarbeitet Standard G Code. Dieser Code kann in einem Editor, mit Syntax Highlightning, erstellt, bearbeitet und parallel 3D visualisiert werden. Durch die zeitgleiche Visualisierung kann man den erzeugten Code sofort kontrollieren und entdeckt somit schnell Fehler in dem erstellte CNC Code. Die CNC Steuerungs Software "JCNC" habe ich speziell zur Kommunikation mit dem ATmega GRBL CNC Controller Board geschrieben, sie sollte aber auch mit jeder anderen CNC Steuerung mit einer GRBL Firmware funktionieren. Dank der PC Software kann man relativ einfach den zuvor im Editor oder einem externen CAM Programm erstellten G-Code als kompletten "Job" an die Firmware der GRBL CNC Steuerung senden, welchen diesen dann nacheinander selbständig abarbeitet. Weiterhin gibt es auch verschiedene Möglichkeiten die Maschine durch eine manuelle Eingabe von Befehlen zu steuern. Software JCNC: http://www.jtronics.de/software/jcnc-cnc-steuerung.html hier das Board für welches ich die Software geschrieben habe: http://www.jtronics.de/avr-projekte/atmega-grbl-cnc-controller.html
sry... bei dem einem Bild hab ich das Original mit 3MB erwischt
Hallo Martin, Sieht sehr schick aus deine PC Software GUI. Gefällt mir wirklich. Mit welcher Grbl Firmware Version arbeitet deine Software zusammen? Und wie wird der Job zur Grbl Firmware gesendet? Hast du da eine Hardware (CTS Flow Control) oder die Software Flow Control Steuerung über Xon/Xoff eingebaut? Auch dein Gehäuse für dein Board sieht sehr interessant aus. Das ist doch Platinen Material, oder? Gruß Steffen
Die Software arbeitet eigentlich mit jeder Grbl Version ab Verseion 0.6. Es werden von den älteren Versionen halt nicht alle Features unterstützt, aber das ist nicht weiter schlimm. Die Kommunikation erfolgt per USb und einer Software Flow Control Steuerung, so dass der interne Speicher des Controllers nicht überläuft. Das Gehäuse auf dem Bild ist aus 1mm Sperrholz welches mit einem CO2 Laser geschnitten wurde. Es ist natürlich auch möglich das Ganze aus Plexiglas oder farbigem Acryl zu realisieren. Je nachdem was einem gefällt. :-) Momentan arbeite ich viel an der PC Software für das Board, damit diese einem alle Einstellungen und Datenverwaltung erleichtert. Die nächste Version werde ich daher sicher am Wochenende veröffentlichen. Hier die Infos zu den Projekten... letztes Wochenende frisch aktualisiert Eigenbau-Fräse: http://www.jtronics.de/werkstatt/cnc-pcb-fraese.html Controllerboard: http://www.jtronics.de/avr-projekte/atmega-grbl-cnc-controller.html PC Software: http://www.jtronics.de/software/jcnc-cnc-steuerung.html Das Controllerboard wird es demnächst auch ohne Schrittmotorendstufen geben. Stattdessen werden die Schritt- Richtungssignale auf einem Stecker herausgeführt. Parallelport oder so... damit kompatibel zu bestehenden Aufbauten ist.
Hey, das klingt gut. Ein Board ohne Endstufen ware für mich perfekt. Danke Martin für die tolle Arbeit!
was findet ihr besser? ... parallelport stecker also Sub D und somit kompatibel zu Mach3 Steckern und CO oder was würdet ihr verwenden?
Persönlich nutze ich die einfachen Platinenverbinder im 2,54er Raster gern z.B.: http://www.csd-electronics.de/200/cgi-bin/shop.dll?AnbieterID=2&bnr=016-S030&PKEY=EF49&Hauptseite=detail.htm Bevorzugt für jede Achse einen 3-poligen Stecker. Dann kann man die Achsen einfach wechseln. Spart gegenüber einem 25pol Sub-D auch etwas Platinenplatz. Ich finde einen 25poligen Stecker mit drei Kabeln zu den jeweiligen Endstufen etwas unflexibel. Das sieht aber bestimmt jeder anders. Gruß Einhart
Es ist grade die neue JCNC 1v01 Version der PC Software für Grbl fertig geworden. Es werden jetzt einige weitere Grbl Features unterstützt... den Download gibt es hier: http://www.jtronics.de/forum/viewtopic.php?f=17&p=404#p395
Steffen H. schrieb: > Ich bin gerade dabei eine neue Revision der Platine zu machen. Neu > dazukommen soll noch ein Schaltregler (LTC3990) der aus der > Versorgungsspannung gleich die 5V für Atmel und der restlichen > Elektronik bereit stellt. Hi Steffen, ich bin grade auf diesen Thread gestoßen und finde deine Step-Drive Platinen super! Da ich demnächst mit dem Bau einer CNC-Fräse anfange, wollte ich mal fragen, ob es denn schon Neuigkeiten bzgl. der Version mit Schaltregler gibt? Viele Grüße Chris
Hi Martin, ich sehe mit Interesse das deine Software wächst. Ich habe mir auch schon deine Webseite angeschaut. Die JCNC und die Firmware für dein Atmega GRBL CNC Controller habe ich zum Download gefunden. Was mir fehlt sind die Infos über die Hardware des Controllers z.B. Schaltplan, Layout, Stückliste, usw. Habe ich da etwas übersehen? Gruß Dirk
Chris schrieb: > Steffen H. schrieb: >> Ich bin gerade dabei eine neue Revision der Platine zu machen. Neu >> dazukommen soll noch ein Schaltregler (LTC3990) der aus der >> Versorgungsspannung gleich die 5V für Atmel und der restlichen >> Elektronik bereit stellt. > > > Hi Steffen, > > ich bin grade auf diesen Thread gestoßen und finde deine Step-Drive > Platinen super! > Da ich demnächst mit dem Bau einer CNC-Fräse anfange, wollte ich mal > fragen, ob es denn schon Neuigkeiten bzgl. der Version mit Schaltregler > gibt? > > > Viele Grüße > Chris Hallo Chris, Getestet ist der LTC3990 bis 60V sowie der LTC3631 bis 40V. Doch leider bin ich noch nicht dazu gekommen, dass Layout anzupassen. Martin J. schrieb: > Es ist grade die neue JCNC 1v01 Version der PC Software für Grbl fertig > geworden. Es werden jetzt einige weitere Grbl Features unterstützt... Hast dir da echt Mühe gegeben, gefällt mir sehr gut Martin. Deine neue GUI muss ich unbedingt mal testen. Komm im Moment nur nicht dazu.. Gruß Steffen
Hallo Martin, Die Software ist vielversprechend. Gerade läuft sie neben mir und steuert die X-Achse testweise. Wenn ich einen Job gestartet habe, dann schaffe ich allerdings weder eine Pause noch einen Stop mit dem Buttons unter "Job". Die Texte der Buttons ändern sich, aber mir erschließt sich deren Funktion nicht. Der Job läuft unbeirrbar weiter. Schön wäre, wenn die Zeile markiert würde, die gerade abgearbeitet wird. So wie es bei der Simulation schon funktioniert. Vielen Dank dass du uns dein Programm zur Verfügung stellst! Gruß Einhart
Hallo Einhart, danke für das Feedback. Nur so komme ich wirklich weiter mit dem Tool. Jetzt wo du es sagst, fällt mir ein, dass der Funktion noch kein Befehl hinterlegt ist. Ich hab sie noch nie benötigt, daher fällt es mir selber nicht auf. Werde es auf jeden Fall schnell ändern. Das mit der Anzeige der Zeile ist momentan nicht möglich. GRBL liefert dazu nicht die benötigten Informationen. Selbst mit der Anzeige der aktuellen Position bin ich noch nicht zufrieden. Die Idee kam mir auch schon, aber so richtig ist mir noch keine Lösung eingefallen, ohne dass ich den ganzen Grbl Code ändern muss und das möchte ich nicht. Wenn dir noch mehr auffällt gib mir bitte Bescheid. Danke
Hallo Martin, Ich denke es wäre schon eine Hilfe wenn die zuletzt an GRBL gesendete Zeile links in der Liste gezeigt würde. Es ist schon klar, dass GRBL noch Kommandos im Puffer hat. Solltest du 'mal langeweile haben ;-) - Ich fände es gut, wenn man eine Kommandozeile markieren könnte, an der die Übertragung pausiert. Gruß und vielen Dank Einhart
so es gibt ein neues Update :-) ... einige Bugfixes und sonstige Änderungen. - Progressbar - Hold, Feed, Start - Userabfragen bei Jobstart - Abfangen von Fehlern - Position des Werkzeugs wird im 3D Fenster live angezeigt (gelb) download: http://www.jtronics.de/forum/viewtopic.php?f=17&t=297 Einhart Pape schrieb: > Schön wäre, wenn die Zeile markiert würde, die gerade abgearbeitet wird. > So wie es bei der Simulation schon funktioniert. da bin ich noch am grübeln.
Hallo, sehr schönes Projekt. Wir bauen gerade was ganz Ähnliches, allerdings auch mit den Trinamic Controllern und auf Basis Arduino/BeagleBone. Genaueres gibts hier: http://www.tbone.cc Sind dankbar für Anregung und Kritik! Viele Grüße, Andreas
Hallo, eine neue Version der Software JCNC ist jetzt fertig. Neben vielen Bugfixes wurde die komplette Software neu designend und dabei gleich auf die aktuelle Version QT 5.1 umgestellt. Pluginmodul Durch Integration eines Plugin-Moduls ist es jetzt relativ einfach auch für andere CNC Steuerungen ein Interface zu erstellen. Dieses wird dann beim Start der Software erkannt und mit eingebunden. Zur Zeit wird schon neben der Standard GRBL Version mit bis zu 3 Achsen auch das leistungsfähigere Board TinyG mit bis zu 4 Achsen unterstützt. Für jede Steuerung können Änderungen der Firmware-Einstellungen mit der Software gemacht werden. Weiterhin wurde die 3D OpenGl Visualisierung erweitert und verbessert und der GCode Parser komplett überarbeitet. Durch diese Änderungen können jetzt auch sehr große Dateien mit über 200T Zeilen GCode flüssig dargestellt werden. Den Download für das Programm findet man hier: http://www.jtronics.de/forum/viewtopic.php?f=17&t=297&p=395#p395 Über Rückmeldungen und Ideen würde ich mich freuen.
Hi Martin, vielen Dank für Deine Software. Ich hatte eine vorherige Version getestet. Super zu bedienen. Ich werde übers Wochenende die neue Version probieren. Gruß Kay
mach das... es hat sich einiges geändert und vieles verbessert :-)
Hallo, kann jemand die Software testen, ob auch alle benötigten Bibliotheken vorhanden sind, und ob es auch auf den verschiedenen Windows Versionen läuft. Beitrag "Re: G-Code-Interpreter und µStep-Controller mit ATmega644" Ich selbst habe nur Win07 x32 zur Verfügung. Danke
Hi, ich habe die neue Version gerade installiert. Erhalte aber eine Fehlermledung. Siehe Anhang. Gruß Kay PS: System ist Win7 32bit HomePremium
Hallo, ich glaub ich habe das Problem, bzw. die fehlende dll gefunden. Anscheinend muss man seit Qt5 unbedingt noch eine qtplatform dll einbinden. Nutzt man qt selbst so ist diese schon im System installiert, daher erscheint der Fehler bei mir nicht. ich habe den Downloadlink schon aktualisiert. Würde mich freuen wenn du mir sagen kannst, ob es jetzt geht.
Na anscheinend geht jetzt alles, hab schon mehrere positive Rückmeldungen bekommen. Ich hab soeben noch ein Update der Software gemacht, so dass man jetzt die Dateien auch mit dem Programm verknüpfen kann (öffnen mit) und dass immer nur eine Instanz der Software läuft, in welcher dann auch alle weiteren Dateien geöffnet werden. So das war's für heute. Ich mach dann mal Feierabend :-) Martin
Ich probiere es heute abend mal aus. Gruß Kay
Hallo Steffen H., mal eine OT-Frage: Wie hast du die Durchkontaktierungen auf der Platine im Eröffnungsposting gemacht? Gruß.
Abend, Michael L. schrieb: > mal eine OT-Frage: Wie hast du die Durchkontaktierungen auf der Platine > im Eröffnungsposting gemacht? Bohren der Platine mit Bohrständer platzieren von ca. 3mm Abstandshaltern unter der Platine Drahtstückchen durch die Löcher schieben Drahtstückchen auf der Oberseite verlöten Drahtstückchen auf der Unterseite verlöten Drahtstückchen mit einem scharfen Seitenschneider abschneiden gefällig Löthügel mit Sandpapier abschleifen mehr findest du auch hier... http://www.jtronics.de/werkstatt/durchkontaktierung.html
martin schrieb: > ... > mehr findest du auch hier... > http://www.jtronics.de/werkstatt/durchkontaktierung.html Danke für die Info. Sieht interessant aus, aber der Aufwand mit dem Abknipsen und Schleifen ist nicht ohne. Und ein "Mü" zu viel geschliffen, und die Durchkontaktierung ist zumindest fraglich. Also, auch wenn's schöner aussieht, bleibe ich wohl dabei, die Drahtenden oben und unten vor dem Verlöten einfach in Richtung der weiteführenden Leitebahn umzubiegen. Grüße.
Das mit dem Abschleifen ist manchmal notwendig wenn man Durchkontaktierungen unter den Bauteilen hat. Bei SMD Macht sich das nicht gut wenn die Hälfte das Bauteils 2mm über der Platine hängt ;-)
So es gibt nach langer Zeit mal wieder etwas neues. ich habe mich jetzt endgültig vom GRBL Projekt gelöst und meine komplette Hardware auf die leistungsfähigere Steuerung TinyG umgestellt. Das ist auch ein open source projekt auf basis eines Xmega Controllers oder in der Version 2 sogar auf einem Arm basierend. Die Daten zu dem Board findet ihr hier: http://www.jtronics.de/avr-projekte/xmega-tinyg-cnc-controller.html unterstützt wird es auch von der bisherigen PC Software. Viel Spass damit
Hallo Martin, ich sehe, Du nutzt Deine Stepcraft-CNC als "pick and place". Das heißt ich sehe nicht, ich ahne nur - leider gibt das Foto ja nicht viel her. Hast Du zu diesem Projekt eine Beschreibung? Viele Grüße W.T.
Hallo, es ist schon eine Weile her, aber nun bin ich endlich fast fertig mit meiner Eigenbau Pick and Place Maschine. Den Versuch eine StepCraft CNC Fräse für die Achsen zu verwenden habe ich aufgegeben, da diese einfach zu langsam ist. Stattdessen habe ich mir mit einfachen Mitteln und meinem 3D Drucker etwas eigenes gebaut. - fast alle Kunststoffteile sind mit einem 3D Drucker erstellt - 2 nozzels - 2 cameras (top and bot) - 44 feeder für role's - 18 feeder für tubes - integrierter Vakuumpumpe - CNC TinyG controller für 4 Achsen Als Steuerung habe ich di schon oben beschriebene TinyG CNC Steuerung verwendet. Diese bietet die treiber für 4 und einen PWM-Drehzahlausgang den ich zu Ansteuerung eines Servos verwendet habe. Im ersten Video wurde ja nur die Funktion der Achsen und der Feeder gezeigt. Jetzt habe ich schon erfolgreich die ersten Platinen bestückt. https://youtu.be/uInt3xAkXCw
:
Bearbeitet durch User
Martin J. schrieb: > ich habe mich jetzt endgültig vom GRBL Projekt gelöst und meine > komplette Hardware auf die leistungsfähigere Steuerung TinyG umgestellt Wenn darin kompl. G-Code intergriert sind, bin ich sehr interessiert. Martin J. schrieb: > Den Versuch eine StepCraft CNC > Fräse für die Achsen zu verwenden habe ich aufgegeben, da diese einfach > zu langsam ist. Es kommt auf Steuersoftware an. Ich habe z.B SerialComCNC mit JCNC verglichen. Bei macher Fräskontur braucht JCNC bis zu 5 facher Zeit wie SerialCNC. Vielleicht liegt's daran?
Tany schrieb: > Wenn darin kompl. G-Code intergriert sind, bin ich sehr interessiert. Links zum Projekt und dem Board gibt es hier https://github.com/synthetos/TinyG/wiki http://www.jtronics.de/avr-projekte/xmega-tinyg-cnc-controller.html Tany schrieb: > Es kommt auf Steuersoftware an. Ich habe z.B SerialComCNC mit JCNC > verglichen. Bei macher Fräskontur braucht JCNC bis zu 5 facher Zeit wie > SerialCNC. Vielleicht liegt's daran? Das hat nix mit der Software zu tun. Die Mechanik ist einfach zu langsam. Stepcraft ist ein Spindelsystem mit mx. 1800mm/min, bei der Pick Place kam dann ein Riemen zum Einsatz, wodurch wesentlich höhrer Geschwindigkeiten möglich sind.
Martin J. schrieb: > Links zum Projekt und dem Board gibt es hier > https://github.com/synthetos/TinyG/wiki Vielen Dank für den Link. Ich habe für mich die Variante mit Arduino DUE entdeckt (TinyG2). Gestern war das Board angekommen, FW drauf geflasch und läuft... 6 Motoren und max 200 kHz: Es bleibt mir erstmal keine Wünsche offen.
Hallo Steffen, schöne Arbeit mit den TMC 262 und dem GUI. Leider ist jedoch das Thema mit dem ATMEGA48 für mich Neuland. Kannst du vielleicht kurz Hilfestellung geben wie der Bootloader und das eigentliche Programm draufzuspielen sind? Wie sind die Fuses einzustellen? Wie sieht deine Hardware aus? Den Bootloader bekomme ich via ISP noch drauf. Bekomme dann jedoch keine Verbidung über TXT und RXD mittels USB to UART zustande um das Programm aufzuspielen.
Hallo Robert, Wie hast du denn den Bootloader auf den AVR bekommen? Denn wenn du den AVR via ISP programmierst, kannst du ja gleich das eigentliche Programm übertragen und den EEPROM beschreiben. Die Fuses sollten für den Reset auf den Bootbereich stehen. Welche Größe/ Adresse das jetzt nochmal war, weiß ich gerade nicht mehr. Wenn der Bootloader drauf ist sollte man nach einem Reset auch mit dem Flash Programm die Software updaten können.
Die Software und Firmware hattest du von hier? www.mikrocontroller.net/topic/413502#new Grüße Steffen
Steffen H. schrieb: > Die Fuses sollten für den Reset auf den Bootbereich stehen. Welche > Größe/ Adresse das jetzt nochmal war, weiß ich gerade nicht mehr. Welches Programm nutzt du denn zum Flashen? Gruß Steffen
Hallo Steffen, den Bootloader hatte ich via Boot-o-Mat (AVRDude GUI) auf den AVR bekommen. Ich hatte die Anleitung für den Bootloader so verstanden, dass das eigentliche Programm dann nicht über ISP sonder z.B. über UART oder 1-Wire geschickt werden muss. Ich hatte es daher über FBOOT und Updateloader mittels FTDI-Adapter probiert. Die Fusebits habe ich mir gerade mal mit "Engbedded Atmel AVR® Fuse Calculator" nochmal zusammengestellt: lfuse 0x62 hfuse 0xcf efuse 0xfe Werde das heute Abend mal testen. Vielleicht kannst du da ja nochmal reinschauen wie du die Fuses gesetzt hast. Dann könnte ich das schonmal als Fehlerquelle ausschließen. Software und Firmware hatte ich von deinem Link. Vielen Dank für deine Hilfe Gruß Robert
Hallo Steffen, die Anleitung für den Bootloader hatte mir nicht wirklich weiter geholfen. Der Atmega48 hat ja leider kein BOOTRST und BOOTSZ so wie ich das verstanden habe. Gruß Robert
Hallo Dirk,
Vielen Dank für deine Antwort.
> Das ist ein ATmega644 drauf, kein 48...
Bei meiner Frage geht es jedoch um den TMC262 Treiber von Steffen.
Der hat einen ATmega48 drauf.
Gruß
Robert
So Robert, Jetzt habe ich es selber noch einmal alles ausprobiert. Und es funktioniert. Vorausgesetzt der Bootloader ist geflasht und der Quarz hat 16Mhz. Fuses wie oben im Bild einstellen. Der m48 hat da diese "SELFPRGEN". Diese muss für den Bootloader auch ausgewält werden. "CKDIV" deaktiviert. Vergessen im Bild habe ich noch die "CKOUT" welche auch aktiviert werden muss, damit der TMC262 seinen Takt bekommt. Die "SUT_CKSEL" Fuses sollten auf ext. Crystal Oscilator 8-16Mhz mit max. Start-up time stehen. Ein Reset des m48 ist zwingend nach folgenden Aktionen auszuführen: - nach dem Flashen des Bootloaders - nach dem Flashen der Firmware oder eines Updates der Firmware über den Bootloader Auf meiner gerooteten Platine habe ich den RESET des m48 nicht angeschlossen. Ich muss dafür dann den Controller für kurze Zeit stromlos machen. Zum Flashen/Update der Firmware bitte das Programm "Flash21" (befindet sich im ZIP-Ordner "Bootloader_AVRFlash21.zip". Dieses muss installiert werden. Flash21 1) unter Datei/Auswahl -> die "TMC_config.hex" auswählen 2) unter Port -> den COM Port der USB-RS232-Brücke auswählen (dazu vorher verbinden, bevor man das Programm Flash21.exe ausführt) 3) unter COM-Port -> 115200 Baud einstellen (sollte aber eigentlich egal sein) 4) unter Passwort -> "Peda" ohne die Anführungszeichen eintragen 5) Button "Flash" drücken ..warten, Fertig! *Hinweis:* Um Flash21 richtig zu beenden bitte unter Datei/Beenden gehen. Der Click auf das X lässt das Programm offen und legt es nur in die Schnellstartleiste. Gruß Steffen
:
Bearbeitet durch User
Hier nochmal ein funktionierender Link zum Board mit dem TMC262 TMC262 Stepper Shield
:
Bearbeitet durch User
Hallo Steffen, Das mit den Fuses und dem Bootloader scheint soweit zu funktionieren. Leider habe ich jedoch nur einen 8Mhz Quarz zum bespielen dran. sollte ja reichen wenn ich die Fuses entsprechend setze oder meinst du den Quartz der später auf dem Board drauf ist? Bei Flash21 blinkt leider nur !Reset! für ein paar Sekunden und danach kommt die Meldung "Timeout". Wie sieht denn die Schaltung aus, mit der du das Programm geflasht hast? Vielen Dank für deine Mühe und Hilfe Gruß Robert
Hallo Robert Womöglich musst du dann die Baudrate in Flash21 auf 19200 verringern. Und nach jedem Versuch die Firmware zu flashen musst du das Passwort neu eingeben und vorher den m48 reseten. Der m48 ist über PD0 (RXD) und PD1 (TXD) an eine TTL RS232 angebunden. Steffen
Hallo Steffen, ich habe das ganze jetzt via ISP und ATmel Studio 7 drauf bekommen. Die Fuses bis auf SUT_CKSEL habe ich auch gesetzt. Sobald ich die setze wie du beschrieben hast komme ich nicht mehr mit ISP drauf. Ich komme aber auch nicht mit UART und deiner GUI drauf. Müsste das nicht möglich sein solange ich SUT_CKSEL auf intern und 8Mhz habe? Kann ich das alles irgendwie testen bevor ich den ATmega einlöte? Mittels Flash21 hatte ich übrigens weiterhin keinen Erfolg. Vielen Dank Gruß Robert
Hallo Robert, Dann hast du irgendwo noch einen Fehler. Beschreibe mal genau deine Testumgebung. So wie es sich anhört testest du gerade alles auf einen ATmega48 ohne Peripherie. Hast du da einen Quarz dran? Wenn ja wie groß? Wie sieht deine RS232 Schnittstelle genau aus. Welchen COM-Port benutzt du? Wie überträgst du den Bootloader? Mit AtmelStudio7 hab ich noch nicht getestet. Ich benutze immer noch das AVR Studio4. Die Clockfuses musst du auf ext. Crystal (ext.Quarz) stellen, vorausgesetzt du hast einen externen Quarz dran. Bitte möglichst einen 16Mhz nehmen. Ich weiß jetzt gerade nict so genau, ob ein anderer Quarz an dieser Stelle irgendwelche negativen Auswirkungen hat. Beschreibe mir also einfach kurz wie Du den Atmel testest, damit ich dir helfen kann. Also wie sieht deine Testumgebung aus? Gruß Steffen
Hallo Steffen, zum Testen habe ich erst nur den ATmega48 ohne Peripherie über einen CP2102 angeschlossen und dabei auf int. Quarz stehen lassen. Ohne Erfolg. Dann habe ich das ganze auf der Platine testen wollen. Hier mit 16Mhz Quarz und dann Fuses auch auf ext. Quarz umgestellt. Steuerspannung 5V angelegt und mit USB verbunden. Bei beiden Versuchen bekomme ich bei der GUI die Meldung, dass kein Board gefunden wurde. Den Bootloader habe ich mittels Atmel Studio 7 und dem Olimex AVRISP Mk2 übertragen. Meinst du das macht da einen Unterschied? Ich denke mal das Übertragen der Firmware mittels ISP hat nicht wirklich funktioniert. Leider bekomme ich die Firmware aber auch nicht mit AVRFlash21 drauf. Hier habe ich schon verschiedene Wandler probiert: FTDI, CP2102, 6in1 TTL/232/USB, BUS-Pirate auf UART. Ich bekomme da einfach keine Verbindung. Mache ich beim Reset nach den übertragen des Bootloader etwas falsch? Nach dem Übertragen hatte ich zum Reset den Anschluss kurz auf GND gesetzt um dann über COM-Port mit der Firmware weiter zu machen, was ja naicht klappt. Geht das überhaupt mit so einem billig Wandler aus der Bucht? Gruß Robert
Den OLIMEX AVRISP Mk2 bekomme ich übrigens nicht mit AVR Studio 4 zum laufen. Auch nicht mit den dafür bestimmten Treibern.
Mach mal bitte einen Screenshot aus AVR Studio7 zu den Fuseseinstellungen. Wir müssen eigentlich nur den Bootloader drauf kriegen und die Fuses richtig einstellen. Dann muss auch der Rest klappen. Welchen USB zu TTL-RS232 Wandler du benutzt sollte egal sein. Gruß Steffen
Das sind die Fuses wie ich sie jetzt eingestellt hatte. Gruß Robert
Natürlich nur nicht im Simulator sondern beim Olimex
Welchen Bootloader benutzt du denn? Denn ich habe gerade gesehen, im Bootloader_ATmega48.zip ist doch nur das zurückgelesene hex-File drin.. Mein Fehler, sorry Probiere mal den Bootloader im Anhang! Was ich auch noch festgestellt habe ist, dass Flash21 nur mit COM-Ports bis COM7 klar kommt! Gruß Steffen
Hallo Steffen, habe jetzt den Bootloader aus deinem Anhang per ISP und Atmel Studio 7 in den Flash programmiert. Ich komme jedoch weiterhin nicht mit dem AVRFlash21 drauf. ich schätze mal dann brauche ich auch nicht probieren die Firmware via ISP drauf zu schicken und dann den Atmega einzulöten. Ich vermute mal dass irgendetwas mit dem Bootloader bei mir schief geht oder ich hier einen Fehler mit dem RS232 Adapter habe. Welchen RS232-Adapter verwendest du? Wie schließt du den an? Wie setzt du den reset? Gruß der verzweifelnde Robert
Also den Bootloader solltest du richtig drauf bekommen. Davon gehe ich jetzt erst einmal aus! Jetzt müssen wir herausfinden warum Flash21 bei dir nicht funktioniert. Was heißt denn: "Ich komme mit Flash21 nicht drauf" ? Welchen COM-Port stellst du ein und was passiert denn in Flash21 wenn du uploaden willst? Kannst du nicht mal ein paar Screenshots/Fotos mit anhängen? Ich verbinde den Atmel über einen ADUM1201 mit dem CP2001. Der ADUM1201 ist ein galvanisch getrennter Pegelwandler. Denn der CP2001 bringt mir nur 3,3V. Also habe ich: AVR TXD -> ADUM1201 -> RXD CP2001 AVR RXD <- ADUM1201 <- TXD CP2001 Ich hab dir mal den Schaltplan angehangen. Verwendest du einen fertigen USB zu RS232TTL Wandler??? Wenn ja, welchen? Steffen
Hallo Steffen, als Wandler habe ich die beiden im Anhang verwendet. Den CP2102 habe ich über den ADUM1201 angeschlossen inklusive der beiden Widerstände die auch in deiner Schaltung drin sind. Auf beide XTAL Eingänge habe ich jetzt einen 16MHz Oszillator dran. Den Reset habe ich über 10K Widerstand auf VCC angeschlossen und setze den zum Reset dann auf GND. Anbei auch mal ein Foto wie das bei mir aussieht. Auf dem Prototype shield ist der ADUM1201 aufgelötet. Hatte bei AVRFlash heute 2x eine andere Fehlermeldung. Habe leider keinen Screenshot gemacht. Angezeigt wurde irgendetwas wit "onewire" Ich versuche das nochmal zu simulieren. Übertragen wurde dabei aber auch nichts. Gruß Robert
Robert H. schrieb: > Auf beide XTAL Eingänge habe ich jetzt einen 16MHz Oszillator dran. Das geht so nicht! Ein Oszillator hat nur einen Taktausgang, V+ und GND. Ein Quarz kommt an XTAL1 und XTAL2. Zum schwingen des Quarzes werden noch je ein Kondensator von 22pF von dem Quarz zu GND benötigt. Dieses nennt sich dann "ext. Crystal Osc." in den Fuses. Wenn du einen Oszillator verwendest dann musst du folgendes tun: Oszillator V+ -> 5V Oszillator Takt -> XTAL1 Oszillator GND -> GND Die Fuses dem entsprechend ändern. Müsste "ext.Clock" oder "ext. CLK" heißen. Dann sollte auch das Programmieren des Bootloaders mit Oszillator und ISP funktionieren. Ich check jetzt mal noch deinen USB-RS232 Wandler. Der sollte definitiv 5V TTL Signale an den AVR senden. Mit welcher Spannung betreibst du den AVR? Du sagtest mal was von 5V? Gruß Steffen
Hallo Steffen, das mit dem Oszillator und das mit den beiden Quarz werde ich probieren. Ja, betreibe den mit 5V die ich von dem Steckbrett nehme. Gruß Robert
Hallo Steffen, im Anhang ist der Fehler, den ich sporadisch bekomme. Gruß Robert
Du kannst den Oszillator nehmen. Doch dann musst du die Fuses auf "ext. Clock" stellen und den Clock nur an XTAL1 anschließen. Dann sollte auch Flash21 funktionieren. Steffen
Hallo Steffen, habe den ADUM1201 jetzt rausgeschmissen. Und was soll ich sagen. ES FUNKTIONIERT!!! Vielen Dank für deine Hilfe und die Mühe die du dir mit allem gemacht hast!!! Meine ganze Familie ist nun erleichtert! Gruß Robert
Ich vermute es hat am Quarz gelegen. Ich habe nun wie du beschrieben hattest den Quarz mit den beiden Kondensatoren angeschlossen.
Hey Robert, Toll, dass es endlich funktioniert. :-) Ich denke mal der ADUM1201 ist hinüber. Ich habe den wirklich nur als Pegelwandler dazwischen. Wenn dein Kleiner USB zu RS232 Wandler auch mit verschiedenen Spannungen klar kommt, geht es auch ohne Pegelwandler. Ich hatte eben auch den UpdateLoader 2.4 und 2.6 ausprobiert. Beide funktionieren für ein Firmware update jetzt auch. UpdateLoader 2.4 Beitrag "Re: UpdateLoader: Benutzeroberfläche für FastBoot AVR-Bootloader" UpdateLoader 2.6 Beitrag "Re: UpdateLoader: Benutzeroberfläche für FastBoot AVR-Bootloader" Gruß Steffen
:
Bearbeitet durch User
Hallo Steffen, Habe das ganze jetzt auf der Platine. Nun habe ich wieder das Problem, dass ich nicht auf den Atmega drauf komme. Sobald ich Spannung auf die Platine gebe leuchtet die rote LED kurz und geht dann langsam aus. Wenn ich den Button "Verbinden" in der GUI betätige und dann direkt danach die Spannung auf die Platine gebe wird das Board kurz gefunden sobald ich dann jedoch auf "read" klicke kommt wieder die Meldung "No Board Found" Hast du eine Idee woran das liegen kann? Könnte sowas an falsch herum eingelöteten LED's liegen? Bin mir gerade nicht sicher ob die richtig sitzen. Gruß Robert
Bricht vielleicht deine Versorgungsspannung ein? Auf welches Bord hast du den mega48 gelötet?
An den LEDs sollte es nicht liegen. Die haben einen Vorwiderstand. Somit kannst du durch falsch herum eingelötete LEDs nichts kaputt machen.
Habe den ATmega48 auf dein Board gelötet. Das mit dem Einbruch der Versorgungsspannung passt zumindest zu dem Verhalten der LED. Werde das heute Abend mal messen.
Hallo Robert, Hast du nun den Fehler finden können? Gruß Steffen
Hallo Steffen, ich habe leider bisher nicht wirklich Zeit gefunden um mich wieder mit den Platinen zu befassen. Aber wenn ich das richtig gesehen habe hat sich ein Lötpad von der Platine gelöst. Ich schätze mal dass dies beim Nachlöten mit dem Lötkolben passiert ist. Gruß Robert
Hallo Steffen, ich bin nun wieder dabei die Treiber in Betrieb zu nehmen. Dabei hat sich mir die Frage gestellt was den der Anschluss /int macht/kann? Gruß Robert
Hallo Robert, Der /INT ist momentan noch nicht benutzt. Dieser war geplant um einen Interrupt auszugeben, falls einer der beiden Endschalter ausgelöst wird. Gruß Steffen
Was ich jetzt aber gerade sehe, ist die Versorgung des Atmels mit 3,3V ist falsch. Denn dieser muss mit 5V versorgt werden, da er mit 16Mhz läuft..
Hallo Steffen, ok, Vielen Dank. Habe im Moment leider bisher noch keine Funktionsfähige Platine zustande bekommen. Hast du irgendwelche Besonderheiten beim Löten beachtet? Hast du zu der letzten Version eine entsprechende Stückliste? Ich habe das Gefühl, dass bei mir etwas nicht stimmt. Gruß Robert
Hallo Steffen, vielleicht kannst du Dir ja nocheinmal etwas Zeit für mein Problem nehmen. Die Treiber Funktionieren nach dem Löten einwandfrei. Auch die Config lässt sich über dein GUI bearbeiten. Doch bei beiden Platinen habe ich dann plötzlich das Problem dass das GUI nach dem Verbinden kurz noch den Treiber erkennt und dann einfriert. Unter Windows 10 wird auch kein Fehler angezeigt. Im Kompatibilitätsmodus Windows XP bekomme ich dann die im Bild dargestellten Fehler. Kannst du sagen woher das kommt?
Hallo Robert, Sorry dass ich jetzt erst antworte. Ich denke mir mal dass es nicht an Windows liegt. Ich vermute du hast vergessen das EEPROM File in den ATMEL zu laden. Denn es sieht so aus, als ob das Programm nur Kauderwelsch empfängt. Leider habe ich einen Plausibilitätscheck beim lesen des EEPROM's hier nicht implementiert. Also nicht nur das "TMC_config.hex" File in den Flash laden sondern auch das "TMC_config.eep" File in den EEPROM schreiben. MfG Steffen
Hallo Steffen, vielen Dank. Ich werde das am Wochenende mal testen. Ich kann jedoch jetzt schon sagen, dass ich keine .eep hochgeladen habe ;-)
Hallo Steffen, verstehe ich das richtig, dass ich das eep-file zusammen mit dem Bootloader via ISP schreiben muss? Gibt es eine Möglichkeit das über USB im verbauten Zustand zu übertragen? Gruß Robert
Hallo Steffen, habe das jetzt mal in der folgenden Reihenfolge getestet. 1. Fuses setzen 2. Bottloader schreiben 3. EEPROM schreiben 4. TMC-config schreiben Beim Verbinden mittels GUI wird das Board dann kurz gefunden. Anschließend friert das GUI jedoch leider ein. Lasse ich den EEPROM unbeschrieben bleibt die Verbindung und das GUI zumindest vorläufig bestehen und ich kann Änderungen durchführen. In diesem Zustand, also ohne EEPROM zum beschreiben hatte ich bereits ein Platine verbaut. Alles hat dort wunderbar funktioniert. Nun ca. 4 Wochen später kann ich auch hier keine Verbindung mehr aufbauen. Stimmte die Reihenfolge eventuell nicht? Habe ich irgendetwas vergessen? Wie, Wann und Womit Schreibst du die .eep? Gruß Robert
Ich hab noch 2 industriell gefertigte unbestückte Leiterplatten rumliegen. Je eine der Generation1 und eine Generation2. Ich stelle mir für die LP der G1 einen Preis von 8€ + Versand und für die LP der G2 einen Preis von 10€ + Versand vor. Versand würd ich jetzt nur im Polsterbrief für 1€ versenden. Bei Interesse bitte kurz mail an mich. MfG Steffen
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.