Fahrzeugelektrik & -spez. Fragen - AMTEL 128 cg-systems - Mo 16 Apr, 2007 11:50 Titel: AMTEL 128
Hi Leute!
Jetzt bin ich hier schon des öfteren über die MEGa 128 Controller gestossen und finds cool, was man damit alles machen kann (wenn mans kann).
Jetzt wollt ich mal fragen, wo man darüber gute Informationen bzw. Dokumentationen findet.
Eventuell gibts gute Bücher darüber, oder aber auch im Netz fertige, gute Anleitungen.
Um das ganze noch ein wenig zu erschweren, wirklich viel Erfahrung in der Programmierung mit Mikrokontroller...
Aber geil find ichs was man damit alles machen kann....
Chris da_user - Mo 16 Apr, 2007 12:13 Titel:
der Mega 128 ist schon ziehmlich groß, je nach andforderung gits den auch kleiner, Mega 8, oder die Tiny. Lassen sich auch relativ einfach Programmieren (einfachster Programmer sind zwei Widerstände am Parallelport, bessere gibts für ca. 15€ bei ebay)
Finden tust du ne Menge auf www.mikrocontroller.net u.A. sogar ein Tutorial philipp_c - Mo 16 Apr, 2007 12:17 Titel:
Sehr gute Doku zu den Controllern gibt es bei www.atmel.com (wer hätte das gedacht? ) Lade dir mal die große Version des Datenblatts runter. Da sind auch Beispiele usw drin.
Gruß Philipp cg-systems - Mo 16 Apr, 2007 12:35 Titel:
Oh Man.....ob ich diese Idee nicht gleich wieder verwerfen sollte.... spaceduck - Mo 16 Apr, 2007 12:54 Titel:
Für den Einstieg ins Programmieren dürfte ja Bascom sehr gut geeignet sein.
Assembler ist wohl zu kompliziert, ausser man ist wirklich freak.
Ich habe vor einigen Jahren mit Bascom angefangen und habe es nicht bereut. Einarbeitungszeit ist realtiv kurz und der Programmcode ist einfach zu verstehen, Basic eben. www.mcselec.com
Ein guter Anlaufpunkt zu AVR Grundlagen ist auch das Forum auf www.roboternetz.dephilipp_c - Mo 16 Apr, 2007 15:15 Titel:
Also ich würde dringend von Basic abraten. Da lernt man gar nichts über Mikrocontroller.
Wenn du es wirklich verstehen willst fang mit ASM an. Das ist überhaupt nicht schwierig, da gibt es ein paar Befehle und keine komplizierten Schleifen oder so. Wenn du damit deine ersten LEDs usw zum blinken gebracht hast würde ich dir C empfehlen. Das ist bei größeren Projekten meiner Meinung nach übersichtlicher und erspart einem auch einige LowLevel Sachen wie zB große Zahlen zu bearbeiten usw. Man bleibt aber trotzdem noch einigermassen dicht an der Hardware und kann nachvollziehen was passiert.
Gruß Philipp da_user - Mo 16 Apr, 2007 16:35 Titel:
Kommt halt darauf an, wie schnell er funktioniernde Sachen haben will.
Aber cg-systems, du solltest dir auf alle fälle mal ein paar Möglichkeiten anschauen und dann selbst bewerten. philipp_c - Mo 16 Apr, 2007 19:07 Titel:
Also, wenn du noch ganz unbefangen bist rate ich dir wirklich die Finger von Basic zu lassen. In C kann man Software genausoschnell entwicklen (mindestens) und man weiß was man tut und auch was der Controller tut. Und wenn du dich mit µC beschäftigen willst, dann würde ich dir einen Einstieg in ASM sehr empfehlen, um so eine Ding effektiv nutzen zu können muss man schon wissen wie so ein Teil funktioniert und was wann wie passiert, da kriegst du bei Basic nicht viel mit. (mal ganz abgesehen davon wie hässlich diese Sprache ist )
Ein paar Digitaltechnik Grundlagen solltest du auch beherschen oder dir aneignen. Also AND, OR, XOR usw sollte für dich klar sein und auch was man mit einem Shift so anstellen kann. Dann kannst du das Teil später auch vernünftig einsetzen.
Gruß Philipp spaceduck - Di 17 Apr, 2007 09:45 Titel:
Zitat:
mal ganz abgesehen davon wie hässlich diese Sprache ist
Wieso? ist doch sehr übersichtlich und einfach zu verstehen... dridders - Di 17 Apr, 2007 11:39 Titel:
spaceduck:
Wat is an einer Sprache die es erlaubt alle Typen nach belieben wild zu mixen und miteinander zu vergleichen, und dazu noch wild zu Zeilennummern oder Labeln zu springen uebersichtlich? Wenn bei den Typvergleichen wenigstens was reproduzierbares raus kaeme... Selbst C erlaubt ja schon einiges an Dummfug, unter anderem auch Gotos, aber wenigstens sind die Typen dort strikter.
philip_c:
Naja... man denkt man weiss was der Compiler macht... aber oft genug schaut man dann doch irgendwann in den generierten ASM-Code (der ja mehr als ekelig ist) um rauszufinden was er wirklich macht Nur weil der z.B. bei Multiplikationen eine andere Ansicht der Datengroesse hatte als der Programmierer...
cg-systems:
Wenn du grundsaetzlich Ahnung vom Programmieren hast ist es kein Problem. Hast du die nicht wirst du das erstmal lernen muessen und viel Geduld aufbringen. Ob ein uC mit seinen Besonderheiten da der richtige Einstieg ist weiss ich nicht... die Fehlersuche gestaltet sich bei einem uC-Programm halt wesentlich schwerer als bei einem PC-Programm, da Debugging nur eingeschraenkt machbar ist. Ansonsten sind die Atmels schon feine Teilchen, und dank der verfuegbaren guten Doku sowie der Tools drumrum auch gut zu programmieren. cg-systems - Di 17 Apr, 2007 12:57 Titel:
Hi Leute!
Danke für eure Antworten!
Also, was soll ich sagen.
Programmierkenntnisse sind vorhanden, digitale Grundlagen sind auch vorhanden. Gott sei dank.
aber ich habs schon öfters bereut, das ich damals in der Schulde nicht besser aufgepaßt habe. Nur dachte ich halt damals, wofür sollte ich das jemals wieder brauchen. Jetzt weiß ich es.
Aber noch unabhängig zur Programmiersprache, ich nehme an, ich brauche ja soweiso eine "externe" Beschaltung auch oder?
Wo ich die 12V-Signale anlege, die wohl dann auf 5V reduziert werden müssen um dann mit dme Mikrocontroller den logischen zustand auszuwerten.
Ich sehe, wenn ich das nich richtig im kopf habe irgendwie eher in der Elektronik und in der Leiterplattenherstellung das Problem.
Beim Mikroconrtoller eigentlich nur ein Problem, es gibt wohl zu viel und ich weiß nicht womit ich anfangen soll....
Chris dridders - Di 17 Apr, 2007 13:06 Titel:
Klar, der Microcontroller braucht erstmal Grundbeschaltung damit er ueberhaupt laeuft und programmierbar ist, und dann sollte man noch was mehr an ihm anklemmen, damit er auch einen Sinn ergibt Was genau haengt immer davon ab was du mit ihm machen willst. So oder so wuerde ich dir fuer die ersten Schritte zu einem Eval-Board raten, entweder von Atmel selbst, oder eines von den frei erhaeltlichen, die du dann aber halt auch selber bauen musst. Da ist dir erstmal die ganze Grundbeschaltung abgenommen und das Ding laeuft erstmal, du kannst dich erstmal mit der Programmierung vertraut machen. Wenn das dann klappt, dann uebergehen das alles in eigene Schaltungen zu integrieren. Ansonsten musst du permanent raetseln ob jetzt deine Software schuld ist, oder doch die Hardware, oder die Kombination,... da_user - Di 17 Apr, 2007 13:12 Titel:
Eval Boards gibts z.b. bei Pollin, das soll ganz gut sein.
Für deinen µC solltest du eine eigene 5V Spannungsversorgung aufbauen, die den µC auch vor "Dreck" in der Boardspannung schützt. Um digitale Signale ein und auszukoppeln würden sich Optokoppler anbieten. cg-systems - Di 17 Apr, 2007 13:19 Titel:
Hm. Gibts gute Shops, wo ich mal was günstig zum probieren kaufen kann?
Bei Pollin habe ich geschaut, aber nix gefunden. wohl mit dem weißen von den Augen geschaut....
Oder ich weiß nicht mal wonach ich suchen muß...
Wenn ich das Eval-Board selbst zusammenlöten muß wäre es auch kein Problem....
Chris
Edit: Kann ihc grundsätzlich davon ausgehen, das ich früher oder später, um das ganz ausnutzen zu können, auch mit Platinenätzen anfangen muß? dridders - Di 17 Apr, 2007 13:24 Titel:
guckstu hier, ist unter anderem auch ein Eval-Board bei Pollin verlinkt. Auch vom restlichen her solltest du dir die Seite merken, da gibts einiges an Infos zu dem Thema. Wurd aber ja oben auch schon geschrieben ;-)
Platinen aetzen: schaden wirds sicher nicht, vieles laesst sich gerade als Prototyp auch auf Loch/Streifenraster aufbauen, aber schoen is das net... und auch net immer haltbar. da_user - Di 17 Apr, 2007 13:32 Titel:
Zitat:
aber schoen is das net... und auch net immer haltbar.
für diese Fälle gibt es die Möglichkeit mit Harz ein Gehäuse auszugiesen...
Dann siehts keiner mehr, und ist auch mechanisch Belastbar...
Viele Streifenrasterplatinen halten übrigens länger, als industriell gefertigte Platinen, sind halt mit mehr "Liebe" gemacht dridders - Di 17 Apr, 2007 13:38 Titel:
da_User:
nur viel Spass wenn dann mal ein Chip aus welchem Grund auch immer abraucht Bei den Streifen/Lochrastern haste halt immer das Problem in der Fehlersuche, die deutlich unuebersichtlicher ist, erstrecht wenn dann kein Schaltplan mehr dazu existiert (jaja, ich weiss, was arbeite ich auch so schlampig ) da_user - Di 17 Apr, 2007 13:53 Titel:
och.... wenn was abraucht ist das persönliches Pech ^^
Ich baue nur Lochraster... habe keine Möglichkeit zum ätzen... philipp_c - Di 17 Apr, 2007 14:00 Titel:
Naja, dafür kann man bei Streifenraster noch flicken ich finde das für Prototypen sehr hilfreich.
Optokoppler brauchst du nicht unbedingt um 12V Signale in den Controller zu bekommen.
Ich würde mir an deiner Stelle ein Breadboard besorgen, da kannst du dann auch Dinge testen die etwas mehr an Beschaltung brauchen und das Programmieren usw lässt sich darauf auch machen.
@dridders: Mit wissen was man tut, meinte ich so Dinge wie Register beschreiben usw. Was ich da so ein Basic gesehen habe, war dann halt ein Befehl zum initialisieren und dann sowas wie print für den UART zB und man bekommt nicht wirklich mit, was da wo passiert und was man optimieren kann. In C kann ich wenn ich will bis ganz weit runter an die Hardware gehen gleichzeitig aber auch abstrakte Funktionen bauen. Ja, mit dem Compiler ist es so eine Sache Aber wenn man sich auf kleine Teilbereiche konzentriert kann man schon gut vergleichen wie er es löst und wie man es selbst gemacht hätte.
Gruß Philipp
PS: Zum Debuggen bietet Atmel das AVR Studio, da kann man auch sehr gut das Timing ansehen usw. dridders - Di 17 Apr, 2007 14:09 Titel:
da_user:
Ich auch... hab zwar Hobbymaessige Moeglichkeiten zu aetzen, aber ich weiss doch zu Anfang noch net was am Ende rauskommen soll... das geht bei mir alles nach Trial and Error
philip_c:
Jep, da haste schon recht, obwohl es fuer C inzwischen ja auch einiges an Bibliotheken wohl gibt... die aber halt auch die Abart haben den Code aufzublaehen und teilweise unnuetzen Platz zu vergeuden. A propos Platz: man muss sich z.B. auch immer bewusst sein, dass der Vogel Gleitkommazahlen nur in Software kann... kaum wird eine double-Berechnung oder aehnliches gemacht ist der Code immens aufgeblaeht, von der Geschwindigkeit nicht zu reden. Da hat man bei C dann wenigstens mehr Kontrolle drueber als beim Basic.
Problematisch beim Lesen vom Compiler-Code finde ich halt die exzessive Nutzung der Register... der haelt sich ja wo er nur kann die Variablen einfach in den Registern, was beim Lesen nicht sonderlich aussagekraeftig ist. Das ist bei anderen Chips mit weniger Registern dann schon schoener zu lesen philipp_c - Di 17 Apr, 2007 14:14 Titel:
Ja, aber die vielen Register sind ja gerade was gutes am AVR. Habe mit dem AT90S1200 mal angefangen, der hat sogar nur Register und gar keinen RAM.
Klar wenn man es einfach haben will, dann steht C Basic in nichts nach. Aber wenn man mal printf() oder so einbindet merkt man schnell was man sich da eingehandelt hat. Also am besten kleine Ausgaberoutinen für LCD oder UART selber schreiben. Da hat man dann die volle Kontrolle und kann in 99,9% der Fälle auch auf Gleitkomma verzichten.
Gruß Philipp dridders - Di 17 Apr, 2007 14:19 Titel:
Richtig, denn das meiste laesst sich auch ueber Fixkomma hinreichend genau loesen, und Fixkomma laesst sich ja problemlos in Integer rechnen. Man muss sich halt all der Sachen bewusst werden, sonst ist einem auch der groesste Atmel schnell zu klein. Und auf dem PC interessiert sowas ja heutzutage keinen mehr, reicht der Speicher nicht aus wird welcher dazu gekauft.
Klar seh ich die Vorteile der Register was die Geschwindigkeit anbelangt. Nur machen sie halt automatisch generierten Code nicht einfacher lesbar da_user - Di 17 Apr, 2007 14:51 Titel:
Also ich persönlich fänds am schönsten, wenn man die Teile Step7 artig in FUP Programmieren könnte, da hab ich schon ganze Anlagen mit gemacht. Geht zwar der Vorteil des schnellen Timings drauf, aber bei meinen geplanten Aktionen brauch ich des sowieso nicht philipp_c - Di 17 Apr, 2007 15:00 Titel:
Naja, aber sobald es etwas über logische Verknüpfungen hinausgeht ist FUP nicht mehr so der Bringer. Alleine schon Schleifen sind da ja nichts. Habe früher mal in der Schule Step7 gemacht in FUP und alle 2 klicks hab ich mir ne richtige Programmiersprache gewünscht Man kann sich natürlich Zustandsautomaten bauen usw und kommt auch an die meisten Ziele, aber ob das schneller und übersichtlicher ist weiß ich nicht.
Aber frag mal mcfloppy ob er sein Projekt noch weiter verfolgt, ich glaube er wollte sowas wie ne LOGO basteln um damit dann FUP Pläne zu interpretieren oder so.
Gruß Philipp da_user - Di 17 Apr, 2007 15:17 Titel:
Also mit FUP ist ne ganze Menge möglich, man muss nur wissen, wie mans anwendet. Das man das in der Schule nicht unbedingt lernt (weder normale Schule noch Berufsschule) ist klar.
Ich hab da ne relativ komplexe Anlage in meiner Ausbildung programmiert, große Teile hab ich selbst gemacht, kleiner Teile Kollegen, allgemein hatte ich überall meine Finger drin, da ich's am besten konnte. War ganz Spaßig uns sicherlich kein Zustandsautomat
Für Step7 gibts übrigens noch AWL und sogar Hochsprache!
Nicht umsonst werden in großen Anlagen zur Hauptsteuerung SPSen eingebaut, und keine µC's philipp_c - Di 17 Apr, 2007 16:13 Titel:
Wie machst du denn komplexe Abläufe ohne Zustandsautomaten? Wie zB ne einfache Ampelsteuerung?
Wir hatten da damals so eine kleine Strasse zum rumspielen, 7 S7 CPUs und an jeder war eine kleine Station durch die verschiedene Klötzchen mussten, das ganz hing an einem Profibus. Hätte man wohl auch locker alles in eine S7 bekommen, ging aber halt um Buskommunikation usw.
Naja, das in der Industrie eher FUP oder so benutzt wird liegt wohl eher daran, dass sich einfache Logikfunktionen schnell zusammenklicken lassen. In der S7 werkelt ja eh ein µC und das meiste ist doch das OS ja schon vorgegeben (da hast ja nichts mehr direkt mit den Schnittstellen am Hut, das funktioniert einfach).
Ja AWL kenne ich auch von der Hochsprache weiß ich nur, dass es Pascal ähnlich sein soll, hab damit aber nie was gemacht. Später nur ABEL und VHDL auf GALs bzw FPGA aber das ist dann wieder extrem dicht an der Hardware.
Gruß Philipp da_user - Di 17 Apr, 2007 16:33 Titel:
War ne schöne dicke Ablaufsteuerung. Die Maschine hat anschließend Aufputz-Schalter je nach vorwahl zusammengebaut, getestet und sortiert.
Bus-System war an der Anlage ASi, also nix gut integriert
Anschließend hätte noch TCP/IP dazukommen sollen, hat die Zeit aber nicht mehr gereicht.
Im großen und ganzen ein tolles Projekt, würde ich saugern wieder machen.
Jetzt hab ich mich ne Stunde damit rumgequält n Mega32-Evu-Board mit meinem angeblich STK500 komptiblen Programmer zu verbinden, erfolglos.. -_- *grml*
Zustandsautomat war auf das klassiche kleine (Ampelsteuerung) bezogen
Profils nehmen meist kein FUP sondern AWL. KOP ist was für Elektriker. philipp_c - Di 17 Apr, 2007 16:38 Titel:
Naja ne Ablaufsteuerung ist doch ein Zustandsautomat. Viel mehr Möglichkeiten als einen Mealy bzw Moore Automaten hast du bei reinen Logiksteuerungen ja auch nicht oder unterstützt AWL so Hochsprachenelemente wie Schleifen usw?
Bis zu TCP/IP sind wir auch nicht mehr gekommen, wir hatten nur einen PC mit Profibus Schnittstelle auf dem wir eine Visualisierung gemacht haben. Naja, aber alles schon ein paar Jahre her. Eine Station hatte meine ich auch ASI für ein paar Sensoren. (Das war doch dieses Flachkabel, was Daten und Stromversorgung auf den beiden Adern führt oder?)
Was denn das Problem beim programmieren? da_user - Di 17 Apr, 2007 17:13 Titel:
Also Mealy und Moore Automaten sagen mir jetzt ehrlich gesagt gar nix... o.O
Step7 hat auch Sprungmarken und unterstützt so auch Schleifen.
Bei ASi ist das gelbe zweiadrige Kabel, für ein paar kleinere Aktoren/Sensoren ist die Stromversorgung gleich mitdabei, für größeres gibts dann schwarzes Kabel mit dazu
Wenn ich mein Problem wüsste, hät ich's nicht
Ich hab noch'n paar Mega8 rumliegen, mal ein Adapterboard oder n extra Board löten. Evtl fahr ich morgen auch ma zum Conrad und hol mir ein Experimentierboard. philipp_c - Di 17 Apr, 2007 17:21 Titel:
Sprungmarken...bähh Wenn dann in ASM alles andere ist einfach nur schlechter Stil
Ein Mealy Automat ist eine Zustandsmaschine dessen Ausgang von dem Zustand und den Eingängen Abhängt. Ein Moore Automat kann zu jedem Zustand nur eine Ausgabe machen, dafür spart man sich das Ausgangsschaltnetz ist aber evtl. halt einen Takt langsamer (macht bei SPS ja nichts aus)
Womit versuchst denn zu programmieren und was geht nicht? Statt Experimentierboard würde ich mir eher so ein Steckbrett besorgen (oder meintest das?)
Gruß Philipp da_user - Di 17 Apr, 2007 17:26 Titel:
Naja... Step7 uns ASM spießt sich...
sind aber relativ einfach zu programmieren.. toll toll, ich glaub ich bau mir mal ne SPS ins Auto rein! CarSPS
Ich habs mit'm AVR-Studio und Bascom versucht. PonyProg unterstützt ja meinen Programmer nicht...
Und natürlich meinte ich ein Steckbrett ^^ philipp_c - Di 17 Apr, 2007 17:29 Titel:
legt doch mal das hässliche Basic beiseite!!!!
PonyProg unterstützt das STK500 nicht? hmm, sonst bau doch mal diesen 3 Widerstands Programmer der geht ja mit PonyProg zum programmieren find ich avr-dude auch praktisch, weil man das gleich ins makefile einbauen kann.
Gruß Philipp da_user - Di 17 Apr, 2007 17:38 Titel:
Bascom war jetzt nur zum probieren..
Eines ist mir aufgefallen: wenn ich in Bascom auf das Symbol Run programmer (F4) klick und dann Manual Program beschwert er sich bei mir, weil die def Datei und der Chip nicht zusammenpasst. Auffällig: den Chip den er anscheind ausliest ist der des Programmers! AT[wasweißich]
nein, PonyProg unterstützt des anscheinend nicht.
Wie schaut die Sache mit dem AVR-Dude aus? des Teil kenn ich gar nicht... philipp_c - Di 17 Apr, 2007 19:41 Titel:
avr-dude ist ein programmer für die Kommandozeile der ist zum Beispiel beim winavr Paket dabei. Wie gesagt sonst mal diesen super simplen Programmer probieren.
Gruß Philipp da_user - Mi 18 Apr, 2007 14:48 Titel:
So, gerade nochmal ausprobiert mit nem Mega8, ohne Erfolg...
Ich hab den verdacht, dass es an meinem seriell=>USB Adapter liegt, leider hab ich keinen seriellen Port zum testen... schei* moderne Technik eben xD
Sobald ich wieder ein bisschen Geld übrig hab (also Ende des Monats) kauf ich mir nen USB ISP, damit sollten die Probleme dann der Vergangenheit angehören.. ^^ philipp_c - Mi 18 Apr, 2007 14:57 Titel:
Einen LPT hast auch nicht?
Ja, zeitkritische Dinge kannst vergessen mit USB2RS232. Das funzt nur wenn du es wirklich als serielle Schnittstelle nutzt.
Gruß Philipp dridders - Mi 18 Apr, 2007 15:03 Titel:
eben, bau dir doch einfach das uralte STK200-Kabel in der Version Ultra-Einfach... DB25-Stecker + 6 Strippen + 10 oder 6-poliger Pfostenstecker (je nach Ausfuehrung). da_user - Mi 18 Apr, 2007 15:07 Titel:
nein... parallel hab ich auch nicht... keine Chance....
moderne Technik eben.... spaceduck - Mi 18 Apr, 2007 21:36 Titel:
Zitat:
Ich baue nur Lochraster... habe keine Möglichkeit zum ätzen...
Zum ätzen brauchst Du doch nur eine Schale und das Ätzmittel. Wo fehlen denn da die Möglichkeiten?