Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Microcontroller, kein Problem für Elektronikpraktiker!
#1
Hallo in die Runde,

ohne jetzt irgendwelche Diskussionen zum Für und Wider diverser Compiler und/oder uProzessorfamilien vom Zaune zu brechen, möchte ich hier kurz meinen eigenen - praktisch übrigens sehr erfolgreichen - Einstieg in diese Technik schildern.

Als Elektronikbastler, Rundfunk- und TV-Reparateur, Nachrichtentechniker und mit MSR befasst, wurden diverse Projekte in reiner Elektronikhardware gelöst, auch heute ist das noch oft der Fall.

Seitdem ich vor Jahrzehnten in den Besitz eines Atari800XE kam, wurde zwar erstmal gespielt, danach BASIC programmiert, letztendlich hat mir das nicht gereicht und die Peripherie (Joystickports) wurde für I/O-Projekte extern genutzt, übrigens trotz BASIC maschinennah vorwiegend mit PEEK und POKE. Grosser Nachteil; BASIC war, wie viele andere Sprachen auch, interpreterorientiert, jedoch für Leute, wie mich, welche lieber löten, als "kompliziert programmieren" ziemlich erfolgsgekrönt.

Professionell sind Interpreter nicht, ebenso kleine Systemkomponenten mit extra PCs steuern zu müssen, ganz zu schweigen, Elektronik- und Radiobastler damit mit uProzessortechnik zu begeistern.

Dann bekam ich das AVR-Buch von R.... W.....
Danach wurde einerseits alles anders andererseits hat sich vieles bestätigt ... PRAXIS PUR!

Fortsetzung folgt ...
VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#2
(17.12.2019, 22:06)hardware.bas schrieb: Dann bekam ich das AVR-Buch von R.... W.....
Danach wurde einerseits alles anders andererseits hat sich vieles bestätigt ... PRAXIS PUR!

Hallo Micha, 

schreibe doch "das AVR-Buch von Roland Walter" (http://www.rowalt.de/mc/avr/avrbuch/index.htm)  Ich weiß gar nicht warum Du den Namen nicht nennst? Ist der verflucht oder liegt da ein Bann drüber? Ich stelle doch auch hier Bücher im Forum vor und mache kein Geheimnis draus.  Das Buch war auch mein Einstieg in die ATmega-Prozessoren, auch mit der Experimentierplatine vom Walter und natürlich Basic. Das gab es damals (2003/04) glaube relativ günstig im Set von der Zeitschrift Funkamateur.

Übrigens wird das BASIC dort doch vom Compiler in richtigen Maschinencode für den Prozessor übersetzt, nichts mit Interpreter und co. !!!
Es läuft also keine virtuelle Maschine auf dem Prozessor, sondern richtiger Maschinencode für ATmegas!!!
Du kannst den Code auch in jeden Simulator direkt laden und schauen wie sich der Prozessor verhalten soll. 

Ob Basic, C, Pascal, Assembler oder direkt Maschinencode. Ich habe schon alles genutzt und darin programmiert. Wichtig im Hobby ist doch, das die Entwicklungswerkzeuge verfügbar sind. Möglichst ohne Codelimit, möglicht Open Source und nicht mit Lizenzen beschnitten.

Gruß 
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#3
Hallo, zusammen,

nun bereits eine sehr zeitnahe Fortsetzung.

Die basic-orientierte Quelltextsprache des AVR-BASCOM ist seit langem bereits kein Interpreter für HC oder PC mehr, sondern ein Compiler (wie C und co) und bietet eine exzellente Konvertierung zum Maschinencode in den AVR.

Leute, welche einen Rechner mit XP und LPT-Schnittstelle, also einen richtig guten "Radiobastlerrechner" haben, sind hervorragend aufgestellt, bei den anderen geht's auch.

Die im Buch von R... W... vorgestellte Experementierplatine ist super, kann jedoch durch den Anwender gleich in dessen
avisiertes Endprojekt integriert werden, also; gleich Endprojektplatine als Schulungsplatine nutzen.

Habe ich auch so gemacht, schließlich darf man ja 10000mal flashen.

Warum kompliziert, Wenn's für den Praktiker auch einfach geht. Fortsetzung folgt ...
VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#4
Hallo, Bernhard,
ich wollte Werbung vermeiden,
das Buch ist meines Erachtens, DER HAMMMEr,
VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#5
Ich hoffe, daß dies hier nicht die "hunderttausenste" Diskussion über
die "bessere" Programmiersprache C oder Bascom wird...

Beide Sprachen haben ihre absolute Berechtigung und jeder MC-Bastler
entscheidet sich für diese oder jene, genau wie er sich entscheidet, ob AVR oder PIC.

Bernhard hat mit großer Zustimmung einen MC-Kurs AVR/C gestartet und
nun scheint Micha eine Darstellung der AVR-Welt mit Bascom zu starten.

Prima, da kann sich der Interessierte gleich über beide Programmiersprachen
ein eigenes Urteil bilden und sich für dies oder das entscheiden.

Ich empfinde das als eine Bereicherung des Bildungsangebots des RBF und
das sollte genutzt und nicht verdiskutiert werden

Gruß
Wilhelm
Niemandes Herr, Niemandes Knecht,
so ist es gut, so ist es recht

von Fallersleben
Zitieren
#6
(17.12.2019, 23:27)hardware.bas schrieb: Hallo, Bernhard,
ich wollte Werbung vermeiden,
das Buch ist meines Erachtens, DER HAMMMEr,
VG Micha

Das ist keine Werbung, sondern eine Buchempfehlung Micha!
Von den Qualitäten des Buches, der ATmegas und auch von BASCOM Comiler kann sich jeder selbst überzeugen. Der Roland Walter hat die zweite Auflage hier komplett veröffentlicht: www.rowalt.de/mc/avr/AvrbuchOnline/AvrLehrbuch000.htm

Weiter hinten wird glaube auch C mit dem AVR-GCC kurz gezeigt. 
Das Buch ist allerdings schon etwas in die Jahre gekommen. Die Programmiergeräte die dort zum Nachbau gezeigt werden sind praktisch nur noch auf alten PCs nutzbar, wie Micha schon richtig gesagt hat. Neuen PCs oder gar Laptops fehlen einfach Schnittstellen wie Parallelport oder RS232. Heute läuft in Sachen Programmiergerät praktisch alles über USB, bzw. bei größeren Prozessorfamilien sogar über WiFi. Das ist auch der Grund warum ich in meinem Kurs die Arduino-Familie (dort sind vom 8-Bitter bis zum großen 32-Bitter vertreten) gewählt habe. Eine breite Gattung verschiedener Prozessoren die einfach mittels USB-Kabel oder per Netzwerk programmiert werden können. Ich wollte das die Anschaffungskosten für Kursteilnehmer so gering wie möglich sind, das man keinen Programmer erst noch bauen muss und wir brauchen einen kostenlosen Compiler der kein Code-Limit hat, da spätestens im Fortgeschrittenenkurs die Programme doch größer werden und dann die Limits der Demoversionen anderer Compiler meist überschritten wird.

Wenn Du Lust hast Micha, kannst Du alle Programmbeispiel und Musterlösungen des uC-Einsteigerkurses parallel in Basic codieren und zeigen.  Der Leser wird schnell merken, das die Unterschiede so gering sind, das jeder der C lesen und schreiben kann auch mit Basic klar kommt und umgekehrt! Gern kann ich an anderer Stelle mal ein kurzes Programm in Basic, dann in C und in Pascal vergleichend darstellen! Das sind wirklich nur geringe Unterschiede in der Notation, die Logik im Programm bleibt überall gleich. Es gibt also eigentlich gar keine Grundlage warum sich "Fanboys" im Netz permanent den Kopf einschlagen!

PIC/AVR? Beides kommt heute vom gleichen Hersteller. Man nehme den Controller, der für das Projekt am Besten geeignet ist, also welche Schnittstellen brauche ich nach außen. CAN, Profibus, Ethernet, ...

Schwieriger ist dann schon die Frage ob 8-Bit Prozessor, 16- oder gar 32-Bitter. Spätestens nach dem Einstiegerkurs werden viele Leute hier im Forum aber keine Probleme haben auch andere Prozessoren und Prozessorfamilien zu Programmieren. Das schwierigste ist dann nur die Einrichtung der Programmierumgebung (IDE) auf einem PC, siehe hier: https://radio-bastler.de/forum/showthread.php?tid=9023


Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#7
Hallo, Miteinander,
um Missverständnisse aus dem Weg zu räumen, kann ich das AVR-Buch von Roland Walter seit Jahren nur jedem Einsteiger empfehlen. Werbung ist in diversen Foren (Beispiel: ich bestelle beim großen C) verpönt, auch wurde ich im hiesigen Forum schon zurechtgewiesen, detaillierte Layoutfotos nicht anzufordern, nur um jemanden zu helfen.
Nun gut, das ist jetzt Geschichte.
Desweiteren soll meine Treaderöffnung keine Konkurrenz zu weiteren Aktivitäten in Sachen MC-Programmierung darstellen, jedoch weiß ich aus eigener Erfahrung, wie schwer es war, als "Elektroniklöter" den Einstieg in die MC-Technic ohne zuviel Theorie - vorausgesetzt logisches Denken - erfolgreich hinzukriegen.
Also Fortsetzung folgt ... VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#8
Liebe Interessierte,
angefangen, als absoluter MC-Laie habe ich mit dem bereits erwähnten Buch von Roland Walter und einem ähnlichen Experimentierboard.
Nach anfänglichen Experimentiererfolgen, welche mich dermaßen beeindruckten, mit meinen Nurbasicprogrammierkenntnissen eigenständige intelligente Steuerungen zu realisieren, wurde dieses Board sehr schnell für ein industrieller Experimentierprojekt verhunzt, das heißt, ich lötete SPS-konforme Leistungsschaltstufen und Eingangspegelwandler wüst auf dieses Board.
Mit vollem Erfolg!
Seitdem baue ich die "Endhardware" für Projekte grundsätzlich auf, ohne nur die geringsten Vorstellungen für die zu entwickelnde Software zu haben, wähle jedoch im Vorfeld den hardwaremässig geeigneten AVR, welchen ich erstmal als zentralen Luxus-TTL-Schaltkreis betrachte.
Alles Weitere folgt, ihr werdet sehen, ganz einfach.
VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#9
Hallo, Zusammen,

AVR-Chips, ob Tiny oder Mega, verfügen fast alle über eine sogenannte ISP-Schnittstelle zum Programmieren, welche den Vorteil bietet, dass der AVR direkt in der finalen Endschaltung programmiert werden kann. Es ist also eine direkte Funktionskontrolle nach einem Programmflash mit der direkt verbauten Hardware möglich und das "mechanische Maltretieren" des AVRs durch ständiges Umsockeln entfällt. Der AVR wird genauso eingelötet, wie die restlichen BE, damit mechanische Kontaktprobleme minimiert werden.

Die ISP-Schnittstelle wird an 3 spezielle Pins des AVR angeschlossen, welche nur im Programmiermodus ihre speziellen Funktionen (MISO, MOSI, SCK) erfüllen, ansonsten für den normalen Programmablauf auch ganz normal zur Verfügung stehen. Da desweiteren für diese Programmierschnittstelle noch der RESET-Pin und die gemeinsame Masse notwendig ist, sind 5 Adern zum Programmiersystem (komme ich noch drauf zurück) notwendig. Bei dieser InSystemProgrammierung ist es tatsächlich unter Beachtung einiger Vorraussetzungen möglich, mit den "Programmierleitungen" voll in die komplette Schaltung "zu fahren", ohne dass es Probleme mit der Resthardware gibt, welche ja beim Programmiervorgang unter Spannung steht.

Die 3 genannten Pins, welche im Betrieb "ganz normal" funktionieren, werden erst beim LOW-Ziehen des RESET-Pins als ISP aktiviert. Um die nunmehr problemlose Programmierfunktion zu gewährleisten, dürfen an diesen Pins keine niederohmigen oder harten Pegel liegen, zB Taster gegen Masse oder 5V, direkte TTL-Ausgänge etc.
Deshalb sollten diese ISP-Pins möglichst als Ausgangspins zum Steuern hochohmiger Anzeigetreiber Verwendung finden, bitte nicht für Motoransteuerungen oder dergleichen. Wenns während des Programmflashs irgendwo flimmert, ist das dann normal und stört keinen.

Das sollst für heute erstmal gewesen sein.
Das Studium der AVR-Datasheets, zumindest vorerst der Pinbelegung ist sehr hilfreich.

VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#10
Erstmal die besten Neujahrswünsche an Euch alle,

in der Hoffnung, die Funktionsweise der InSystemProgrammierung hardwaremässig einigermaßen verständlich dargelegt zu haben, sind natürlich Ergänzungen und Hinweise, was eventuelle Fehler meinerseits betreffen könnten, ausdrücklich erwünscht. Es gibt hier genug Mitglieder, welche sich auch mit AVRs beschäftigen und dieser Threed soll keine Einbahnstrasse darstellen, sondern seinem Titel gerecht werden.

Als nächstes ist nunmehr notwendig, den für die Programmentwicklung zu nutzenden Rechner auf seine Aufgaben vorzubereiten. Es ist zunächst ein Compiler zu installieren, welcher einen einzugebenen Quelltext in den AVR-konformen Maschinencode übersetzt. Hier sollte man den Compiler aussuchen, welcher eine Programmiersprache zur Grundlage hat, mit welcher man persönlich am besten klarkommt bzw schon Erfahrungen gesammelt hat. Das ist wichtig, wenn man schnelle und motivierende Ersterfolge haben will. AVR-Compiler gibt es einige, darunter Assembler, C oder BASCOM, den ich nutze.
Der nächste Part besteht darin, das Compilat, also das vom Compiler zurechtübersetzte Maschinenprogramm, vom Rechner über die 3 ISP-Leitungen in den AVR zu stromausfallsicher zu bekommen.
Gestattet mir bitte erstmal meine Lösung vorzustellen, welche seit ca 15 Jahren funktioniert; da ich den BASCOM-Compiler nutze, welcher bereits ein Brennprogramm über die historische LPT-Schnittstelle innehat, besteht meine eigentliche Programmierhardware nur aus 3 Stück 220Ohm-Widerständen, wer also einen "alten" Rechner nutzen will und einen AVR-Compiler nutzt, welcher ebenfalls LPT als Programmierausgang unterstützen sollte, braucht also gewissermaßen kein extra Programmiergerät. 
Nunja, derartige Rechner werden heutzutage kaum noch genutzt, USB als direkte PC-Schnittstelle die Norm, jedoch zur direkten ISP-Programmierung nicht geeignet.
Das ist jedoch kein Grund zur Panik, AVR-ISP-Programmer für den USB-Anschluss gibt es für wenige EURO zuhauf.
Hier können sicherlich Mitleser Empfehlungen geben, denn ich nutze bisher immer noch BASCOM mit LPT.

Zusammenfassend nochmal:
- Wahl des AVR-Compilers und Installation
- Wahl des AVR-ISP-Programmers und Einbindung

Empfehlung:
Auf der Zielschaltung, welches Kernstück eures Projektes darstellt, sollte eine Buchse oder Klemmleiste für die 3 ISP-Leitungen MISO, MOSI und SCK zuzüglich Masse und Reset vorhanden sein, also 5 Pole.
Die ersten Erfolge machen süchtig nach mehr, das Finale Anwenderprogramm bedarf diverser Testflashs, diese Schnittstelle wird also oft benutzt.

Das erstmal für heute. VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#11
Hallo, Zusammen,

Ihr habt jetzt eine Vorstellung eines Projektes, welches ihr verwirklichen wollt. Spätestens jetzt ist es an der Zeit, sich für einen AVR, also den Typ des zentralen "Luxus-TTL-Schaltkreises, den ich beeinflussen kann" zu entscheiden.
Das können Projekte von der Emulation von Tastensteuerungen von Röhrenradios über Haussteuerungen, SDR-Radiokomponenten bis hin zu komplexen Industriesteuerungen und beliebig vieles mehr sein. Der Kreativität sind keine Grenzen gesetzt.

AVR bieten nicht nur softwaremässig diverse Lösungsmöglichkeiten, sondern beinhalten diverse Hardwarekomponenten, welche dazu beitragen, den Programmieraufwand extrem zu minimieren und Speicherplatz, sowie Rechenzeit zu reduzieren.

Folgende Kriterien sind nunmehr für das zu realisierende Projekt im Bezug zur Auswahl des AVR relevant;
- wieviel Ausgänge brauche ich für die periphere Schaltung
- wieviel Eingänge muss die Zentraleinheit (AVR) bieten
- brauche ich Analogeingänge - ja/nein
- brauche ich eine serielle Schnittstelle nach außen - ja/nein
- brauche ich I2C, LED-Treiber, etc
Diese Fragen können bereits beantwortet werden, ohne dass man sich mit MC beschäftigt hat.
Durch Konsultation der ersten Seiten, sprich PIN-Belegung der AVR-Datasheets kann bereits die Entscheidung gefällt werden, welcher Chip (Mega oder Tiny) passt.

Die weiteren Datasheetinfos sind ERSTMAL uninteressant.
Weiteres folgt. VG Micha


,
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#12
Hallo, Zusammen,

berichtigend möchte ich noch kurz erwähnen, das man bei der Auswahl der notwendigen Ein- und Ausgänge des notwendigen AVRs diese zusammenzählen kann, im Erstzustand lassen sich diese eh uneingeschränkt als Ein- oder Ausgang einstellen.

Desweiteren möchte ich nochmals das AVR-Buch von Roland Walter als literarische Praxisgrundlage empfehlen, dort ist zwar BASCOM Grundlage, jedoch auf Grund seiner doch ziemlich registerorientierten Erklärweise stehen auch Nutzer anderer Compiler nicht ganz im Regen. Leider hab ich persönlich diese dort integrierte kleine C-Kapitel nicht im Geringsten begriffen. Nun ja, jeder hat sein Faible.
Die Eröffnung dieses Threads sollte ja auch lediglich dazu dienen, Elektronikpraktikern die Angst vorm Programmieren mit übrigens fabrikfrischen, also "programmtechnisch jungfräulichen AVRs" zu nehmen, welche man direkt ins private Projekt einlöten kann.

Ein Feedback - das soll hier ja keine Einbahnstrasse sein - währe jetzt gar nicht so verkehrt, ist jedoch langfristig nur sinnvoll, wenn sich User in unserem Forum, welche beabsichtigen, sich damit praktisch beschäftigen zu wollen, oder es bereits tun.

Hier geht's wirklich nur um erste und spätere Erfolge für Quasinurlöter, also auch pure Radiobastler.
Also kein Compilerlehrgang, dafür gibts genug Foren.

Als nächstes würde ich dann meine speziellen Erfährungen und eventuell Empfehlungen für AVRs kundtun.

Auch hier ist es interessant, wer für was welches eingesetzt hat. VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#13
(12.01.2020, 22:51)hardware.bas schrieb:  sollte ja auch lediglich dazu dienen, Elektronikpraktikern die Angst vorm Programmieren mit übrigens fabrikfrischen, also "programmtechnisch jungfräulichen AVRs" zu nehmen, welche man direkt ins private Projekt einlöten kann.

Ein Feedback - das soll hier ja keine Einbahnstrasse sein - währe jetzt gar nicht so verkehrt, ist jedoch langfristig nur sinnvoll, wenn sich User in unserem Forum, welche beabsichtigen, sich damit praktisch beschäftigen zu wollen, oder es bereits tun.

Hallo Micha, 

um etwas Gegenverkehr auf der aktuell noch Einbahnstrasse zu produzieren, möchte ich noch darauf hinweisen, daß "jungfreuliche" 
AVR-Controller noch bestimmte FUSE-Bits haben, die genau nach den Anforderungen des Zielprojektes gesetzt werden müssen!
Da wählt man aus welcher Taktgeber am Controller hängt, ob ISP überhaupt möglich sein soll oder nicht, aber auch ob die Firmware gegen Auslesen geschützt werden soll. Setzt man als Anfänger da die falschen Bits, dann kann die Freude schnell vorbei sein. Wenn man sich nämlich ausgesperrt hat (weil man nur einen ISP hat), diese Programmierart aber gerade durch ein falsches Sicherungs-/Konfigurationsbit abgestellt hat, dann ist der Controller erstmal "defekt".

Hat man irgendein Sicherungsbit gewählt, der den Controller als OTP (One Time Programmable) schaltet, war es das wirklich für weitere Programmierversuche! Dann "brennt" der Controller die Verbindung zu den Programmierpins intern dauerhaft durch und man kann nie wieder eine andere Programmversion aufspielen. Blöd wenn die Firmware aber noch Fehler hat und nun nicht mehr berichtigt werden kann. 

Solche FUSES gibt es auf vielen Controllern, ich wollte es auch nur erwähnen, denn meiner Meinung nach geht der Walter in seinem Buch da zu wenig drauf ein. Er zeigt auf einer Seite per Foto eine Beispielkonfiguration die für sein Buch funktioniert, lässt den Leser dann aber doch irgendwie im Wald stehen. Mag sein das das in späteren Ausgaben noch etwas ausführlicher wurde, in meinem Exemplar ist das jedoch wirklich so knapp wie beschrieben. 


Hast Du Lust als AVR-"Deflorateur" zu den FUSE BITs eine Übersicht zu geben? Klippen die Gefahren bergen dabei zielsicher zu umsteuern und die Berechnung für gängige Programmierprogramme wie avrdude, … zu zeigen?

In meinem C-Kurs bin ich Dank der Arduino-Welt weit genug von den Fuses entfernt, um dort den Anwender aufklären zu müssen.
"Bare-Metall" Programmierer, die die Chips direkt ab Werk und nicht in Form eines mit Bootloader vorprogrammierten Arduinos bekommen, kommen um die FUSE-Sache nicht herum.


Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#14
Hallo, Bernhard,
als erstes möchte ich Dir meine Hochachtung für Deinen Lehrgang aussprechen und für Deine Ausführungen danken.
Möglicherweise werde ich mich bald auch mit Ardunios beschäftigen, habe jedoch jetzt nur Zeit für einige direkte AVR-Projekte.
Was ich hier ins Leben rufen wollte, richtet sich an ein anderes Klientel, also bitte nicht als Konkurrenz verstehen.
Es ist auch kein Lehrgang für Compiler oder Löten, sondern soll Interesse wecken (und natürlich auch Gleichinteressierte finden), welche vorwiegend bauelementeorientiert basteln.
Dein Einwand mit den Fuse- und Look-Bits ist an sich richtig, jedoch für absolute Einsteiger erstmal kein Thema.
Am Anfang erstmal Finger weg, das hätte auch ich nächsten Beitrag empfohlen. Die ersten Schritte müssen sitzen und man kann ohne erstmal rumzufusen schon SEHR viel anstellen. Also erstmal mit dem Einfachen beginnen!
Deshalb ist es nicht schlimm, sondern sogar EMPFEHLENSWERT mit einem fabrikfrischen AVR zu beginnen, die Typenempfehlungen kommen noch.
Fusen bedeutet Konzentration, was ein guter Elektronikamateur hat, es ist nicht schlimmer, als aufzupassen, ICs richtigrum einzulöten.
Ansonsten möchte ich hier nochmals anregen, ruhig Literatur, Datasheets, spezielle Foren und Erfahrungsaustausch zu nutzen, denn ich wollte hier nie einen Lehrgang daraus machen, da würde mir warscheinlich nicht nur die Zeit, und die Professionalität fehlen.
VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#15
Hallo, Zusammen,
heute möchte ich ein paar persönliche Erfahrungen zur Auswahl des einzusetzenden Microcontrollers fürs zukünftige Projekt zusammenfassen.
Ich bitte nochmals um Verständnis, dass Beispiele meinerseits, auf Grund meiner Kenntnissgrenzen, sich lediglich auf AVRs mit BASCOM beschränken.
1. Reicht bereits ein Attiny?
Für kleine LED-Spielereien auf jeden Fall. Auch für die Datenaufbereitung von externen digitalen Messstellen vor Ort, Sendeaufbereitung für längere Kabellängen, einfache Protokollanwendungen und dergleichen. ZB für einen Morsetongeneratur sind sie ausreichend. Voriges Jahr realisierte ich eine automatische selbstkalibrierende Schüttgutabfüllanlage in Verbindung mit einer KERN-Waage und RS232-Schnittstelle mit einem Attiny.
2. Darfst ein bisschen mehr sein?
Schaut man sich die Preise der Chips an, eindeutig ja!
Auch ist meisstens genug Platz auf der Platine für einen DIL-40beiner vorhanden, in historischen Radios sowieso.
An I/O-Pins sollte kein Mangel herrschen, die sind schneller "verbraten", als man denkt. Mindestens eine Hardware-UART zum Anschluss von RS232/485-Pegelwandlern auch.
Die Möglichkeit der Analog/Digitalwandlung nicht zu vergessen. Bei mir hat sich deshalb als Quasistandartchip der Atmega16 herauskristallisiert.
3. Warum die Empfehlung Atmega16?
Der Atmega16 ist der grosse Bruder des Atmega8. Für den Atmega8 existieren unzählige Applikationen, Experimentierboards, Lehrgänge, Beispiele, Projekte, etc.
Der Atmega16 hat jedoch mit 32 I/Os, auch im DIL-Gehäuse mehr Pins, weiterhin sind die Pins für Reset und Quarz extra vorhanden. Meine Beispiele beziehen sich also auf den Atmega16, obwohl universell anwendbar.
4. Warum erstmal fabrikfrisch in Betrieb nehmen?
Der Chip arbeitet erstmal mit einer internen Taktfrequenz von 1MHz. Diese ist nicht extrem genau, reicht jedoch locker aus, Baudraten bis 2400 problemlos zu verarbeiten. Desweiteren ist ein Takt von 1 Mikrosekunde für erste Verständnissfragen besser, als ein "krummer" Quarztakt.
Da ich hier im Forum nicht grosse Datenmengen hochladen will, empfehle ich unbedingt, den kompletten Datasheet des Atmega16 runterzuladen, den braucht man schneller als man denkt, besonders, wenn man nach den ersten Anfangserfolgen "Blut geleckt" hat.
VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren
#16
Als kleinen Vorgeschmack gibts jetzt ein Miniprogramm für einen 1Hz-Wechselblinker, dabei ist an PortB.0 und an PortB.1 jeweils eine rote LowCost-LED in Reihe mit 4,7k an Masse geschaltet.
Die Kommentierung "REM" ist jetzt "Heimcomputergerecht", muss bekanntlich nicht im Quelltext erscheinen, ebenso habe ich den Programmablauf erstmal so gestaltet, dass im Rahmen der Möglichkeiten bei BASCOM, ein C64 oder ATARI800 Nutzer es ähnlich gemacht hätte;

$Regfile="m16def.dat"   REM AVR-Typ festlegen
$Crystal=1000000          REM Taktfrequenz festlegen
DDRA=&B00000000       REM PortA komplett Eingang
PORTA=&B11111111     REM PortA alle Pullups ein
DDRB=&B00000011       REM nur PortB.0 und B.1 Ausgang
PORTB=&B11111100     REM PortB.0 und B.1 L-Pegel
DDRC=&B00000000       REM dito
PORTC=&B11111111     REM dito
DDRD=&B00000000       REM dito
PORTD=&B11111111     REM dito
REM Alles Bisherige war nur Grundinitialisierung fuer die
REM spaetere Anwendung, die Initialisierung der nicht
REM benutzten Ports als Eingang mit Pullup dient dazu,
REM undefinierte Eingangszustaende zu vermeiden,
REM dadurch konnte die Stromaufnahme erhoeht werden.
REM Nichtbenutzte Pins als Ausgang zu konfigurieren
REM wuerde auch gehen, birgt jedoch Kurzschlussgefahr
REM bei der weiteren Schaltungsentwicklung.
REM Es gibt keine Zeilennummern mehr, koennen beliebig
REM viele Marken gesetzt werden, siehe nächste Zeile
Halbwellenstart:              REM Marke
Toggle PortB.0                 REM Schalte PortB.0 um
PortB.1 = Not PortB.1     REM PortB.1 ist negiert von B.0
Waitms500                       REM Warte 500 Millisekunden
Goto Halbwellenstart      REM Starte nächste Halbwelle
End                                     REM Hier nicht noetig

Dies war ein Beispiel zur Erklärung, tippt man diesen Quelltext mit oder ohne Kommentare ein, compiliert Diesen, wird er schon funktionieren, wie gesagt, es soll eine Erinnerung an die HC-Nutzer sein, welche den Einstieg in die Compilerorientierte MC-Technik wagen wollen.
Nun soll das Programm nochmals unkommentiert und pur wiederholt werden;

$Regfile="m16def.dat"
$Crystal=1000000
DDRA=&B00000000
PORTA=&B11111111
DDRB=&B00000011
PORTB=&B11111100
DDRC=&B00000000
PORTC=&B11111111
DDRD=&B00000000
PORTD=&B11111111
Do
Toggle PortB.0
PortB.1 = Not PortB.0
Waitms500
Loop

Das wars schon!
Weitere praktische Beispiele folgen.

VG Micha
Viele Grüsse, Micha

Ich wohne am deutschen Elbkilometer 358 westelbisch ... und genieße die Natur ... die Röhrentechnik zeigt, dass sich der Strom nur von Minus nach Plus bewegt ... und damit die echte technische Stromrichtung erkennbar macht ... dem Praktiker sind jedoch die irren Halbleiterstrompfeile egal








Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  PC Problem mit Acer Inspire 5 Notebook anton 9 593 09.12.2023, 22:50
Letzter Beitrag: anton
  PC-Problem, Bitte um Hinweise DAU 9 3.568 01.05.2020, 10:48
Letzter Beitrag: DAU
  Audioerzeugung mit Microcontroller Bernhard45 18 10.331 15.04.2020, 23:39
Letzter Beitrag: Bernhard45
  Win 10 - NF Einspielung Problem Wellenjäger-02 15 5.122 01.03.2020, 20:49
Letzter Beitrag: Gelhaar
  SSD Problem? laurel1 6 2.900 30.08.2019, 20:38
Letzter Beitrag: Peter-MV

Gehe zu: