ich habe nach Interenetsuche die Idee mich mit PIC-Controller zu beschäftigen.
die gibt es ab 60cent mit 4 I/0 pins bis 28pol und 40pol dil, ordentlich I/O, teils I²C anschlußmöglichkeit usw.
Nach Internetstudium zeigt sich neben vielen Varianten und anderen ATmel, Aduino rapsberry eben PIc für MICH überschaubar und ausreichend.
Fragen: Softwarentwicklung, Assembler schreiben laden und brennen PICkit 2 2.6. Als eines der möglichen Programmiertools z.B. von Reichelt DIAMEX PIC KIT,
Reicht das um 28-pin "Käfer" lauffähig zu programmieren?
PC windows 8.1 und NUR USB!
Alternative für alt-PC mit XP und R232 und debug-Optionen?
Alternative für alt-PC mit XP und R232 und debug-Optionen?
Gruß Wolfgang.
Hallo Wolfgang,
ich habe einen Sprut8 Brenner (siehe Sven Brandt Seiten) und kann die schon vom Kollegen Fabian verlinkte Seite ebenfalls empfehlen. Um das Ding via USB an Windows 7 x64 zum Laufen zu kriegen, musste ich etwas "üben". Nicht jeder Treiber tut, nicht jedes Brennprogramm tut.
Aber letztlich flashe ich damit alle PICs auf den Sven Brandt Decodern (hauptsächlich LED Decoder, aber auch die motorischen Weichenantriebsdecoder).
Hallo, ersmal danke, dazu einige Verständnisfragen:
1. Die flash-pic-typen könne bei bei Programmierfehlern neu programmiert werden, 50-mal wäre kein Problem. 2. Es lässt sich ein "fuse-bit" setzen, dann nur neuprogrammierbar mit Spezialplantine und 12V... 3. OTP sind EPROM als Progranmmspeicher, sollte richtig funktionieren oder es ist Müll.
Hallo Wolfgang, OTP = one time programmable. Werden / wurden nur in der Industrie verwendet. Wenn das Programm fehlerhaft ist = Mülltonne. Alte Pics hatten ein Fenster wie Eproms = ebenfalls veraltet. Die heutigen Pics sind elektrisch löschbar und sollten mindestens 100 Programmierzyklen schaffen. Das Eeprom im Pic sogar noch weit aus mehr. Zum Schutz gegen Auslesen der Software gibt eine Fuse. Dabei kann man zwischen Programm und Data unterscheiden. Ich setze üblicherweise nur die Programm-Fuse. Sonst kann ein Programm auch selbst nicht mehr das Eeprom beschreiben. Als Programmer verwende ich PicKit2 und PicKit3. Laufen unter WIN 7 Pro 64bit, haben USB und benötigen keine weiteren Komponenten zum Programmieren. Was du dir ggfs. selbst anfertigen musst ist eine Lochrasterplatine mit Sockel für deinen PIC und den 6 Stiften, die mit dem Programmer verbunden werden. Natürlich geht auch Onboard-Programmieren, aber dazu müssen die I/Os, die zum Programmieren benötigt werden vom Rest der Schaltung getrennt werden (Jumper). Volker
ich würde dir das Pickit 2 oder 3 für den Anfang empfehlen. Das 3er ist neuer und kann auch die neueren Pics programmieren. Für das 2er ist der Support eingestellt. Wenn du wirklich noch in Assembler starten willst dann nimm z.B. das Pickit 2 im Set mit einem 16f690. Für C-Programmierung gleich in der 18f-Schiene starten.
Ich selber bin ja mehr in der AVR Welt zu Hause, aber das ist ja meistens reine Geschmackssache.
Was die Wiederbeschreibbarkeit angeht; bei Atmel werden meines Wissens für den flash 10.000 Zyklen angegeben, für die EEPROM 100.000 Den Flash bekommt man also auch mit vielen Anläufen nicht kaputt. Der EEPROM ist da schon kritischer, falls eine Software öfter darin schreibt. Ich denke, Mikrochip wird da einen ähnlichen Entwicklungsstand haben.
Gibt es einen speziellen Grund, noch in Assembler zu schreiben? Außer in extrem zeitkritischen Anwendungen lohnt sich dieser Aufwand zumindest bei den AVRs eigentlich nicht mehr. Die vorhandenen C Compiler sind in den meisten Fällen so weit entwickelt, dass man nur mit wirklich viel Ahnung effizientere Ergebnisse mit Assembler schafft. Für solche Fälle bleibt einem dann auch noch die Möglichkeit, per inline Assembler einige Zeilen einzuschieben.
Was die reine Hardware angeht, sind die verschiedenen Chips für normale Anwendungen ja quasi ebenbürtig. Deshalb würde ich an deiner Stelle vor Allem darauf achten, wie die Programmierumgebungen beschaffen sind, die in Frage kommen. Daran hängt meiner Meinung nach deutlich mehr, als an der Herstellerwahl.
Beispiel aus der AVR Welt: Ich persönlich komme mit den neueren AVR Studios wunderbar zurecht und bin froh, dass diese quasi dem Visual Studio von Microsoft entsprechen. Dagegen finde ich die Arduino Entwicklungsumgebung sehr bescheiden. Das bedeutet, dass das Gefühl bei der Softwareentwicklung für ein und den selben Chip massiv davon abhängt, wie die Programmierumgebung aussieht.
Hallo, warum nicht in C? Ich hab zwar auf PDP8, PDP11 und 386 ( MS-DOS-MicrosoftC ) in C-Programmiert, aber immerr nur von Tastatur zum Display. Von Bios-Funktionen gelang eben nur printf ( auf das Display ) zu nutzen, wenn ich Daten als Ergebniss speichern wollte per Tastatur das Programm mit Umleitung in Datei starten ( z.B. flaeche.exe > ergebniss.txt ). Dos-Batch-Befehle lieferten dann einen Ausdruck.
Aber Hardware ansteuern kenne ich nur von Bitslice AMD2901, 8085, Z80, 6809, 68020 in Assembler und bei SPS-Systemen wie S5 und GE-Fanuc. Da aber auch komplexe Werkzeugmaschinenbahnsteuerungen mit Reihenentwicklungen in Echtzeit für Winkelfunktionen usw.
Wie gesagt, ASM Programierung auf Mikrocontroller Ebene ist absolut möglich. Allerdings tut man sich meiner Meinung nach heute keinen Gefallen mehr, wenn man darauf zugreift, ohne absolut darauf angewiesen zu sein. Das Schreiben von C Syntax ist da doch deutlich übersichtlicher und mit den passenden Compilern auch in der Ausführungsgeschwindigkeit nur in seltenen Fällen unterlegen. Der Unterschied zu Programmen für PCs besteht im wesentlichen darin, dass man zusätzlich die Hardwareregister der Prozessoren anspricht. Das wird dir aus der Zeit mit asm vertraut vorkommen.
Die meisten Anwendungen sind ohnehin so zu gestalten, dass selbst ein 8bit Prozessor locker 50% seiner Zeit nichts tut als auf Interrupts zu warten. Wenn der langsam wirklich an seine Grenzen kommt, lohnt meist direkt der Umstieg auf eine größere Prozessorreihe. Zumindest im Hobbybereich. Wenn es um Stückzahlen geht, kann es natürlich wieder lohnen Code so zu optimieren, dass er auf der günstigeren Prozessorreihe funktioniert.
Ein sehr gutes Tutorial für die Atmelwelt ist finde ich dieses hier. Auf der Website gibt es übrigens auch die Assembler Entsprechung: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Für PICs wird es sicherlich ein vergleichbares geben.