PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega // PIC



Softboy1
02.09.2016, 16:32
Hallo

Wie oft kann ein ATMEGA oder PIC programmiert werden?
Oder sind es OTP'S?
Wenn diese Teile öfters umprogrammiert werden können, wie wird dies gemacht?
Gibt es eine auslesen sperre?

Gr.
Softboy1

Klebwax
02.09.2016, 16:39
Hallo

Wie oft kann ein ATMEGA oder PIC programmiert werden?
Oder sind es OTP'S?
Wenn diese Teile öfters umprogrammiert werden können, wie wird dies gemacht?
Gibt es eine auslesen sperre?

Gr.
Softboy1

Das steht in den jeweiligen Datenblättern, meist schon auf der ersten Seite

MfG Klebwax

PICture
02.09.2016, 18:11
Hallo!


Gibt es eine auslesen sperre?

Bei PICs ja und ATMELs kenne ich nicht. ;)

021aet04
02.09.2016, 21:19
Gibt es eine auslesen sperre?
Bei PICs ja und ATMELs kenne ich nicht. ;)

Bei AVR (Atmega, Attiny) ebenfalls ja. Sind die lockbits bei den Fuses.

MfG Hannes

Softboy1
02.09.2016, 22:03
Hallo
Das heißt wenn der Lockmittel gesetzt wurde, kann er nie mehr gelöscht und neu programmiert werden?
Oder ist er dann nicht mehr aus zu lesen?

Gr.
Softboy1

PICture
02.09.2016, 22:24
Ein Programm aus einem gelockten PIC Mikrocontroller (µC) ist nur nicht mehr lesbar. Der µC kann aber gelöscht und neu programmiert werden.

021aet04
03.09.2016, 09:52
Du musst im Datenblatt des jeweiligen uC schauen. Z.B. beim Atmega48/88/168 gibt es 2 Lockbits mit denen du 3 Modes wählen kannst. Standartmäßig sind beide 1, kein Lock ist aktiv. Dann gibt es noch eine Sperre gegen das Programmieren von Flash, EEPROM und Fuses mit serieller und paralleler Programmierung. Der 3 Mode ist gleich wie der 2te nur das auch noch die Überprüfung gesperrt ist.

MfG Hannes

RoboHolIC
03.09.2016, 16:32
Exkurs bzw. Ergänzung zur Programmierbarkeit:

Bei PIC-Controllern (und meines Wissens nicht dort) kann man sich aber auch komplett aussperren, indem man den Resetpin zum I/O-Pin macht.
In diesem Zustand kann der Chip (mangels Reset-Pin ;) ) regulär weder gelesen noch gelöscht noch (um)programmiert werden.
Eine Entsperrung von PICs ist dann nur noch mit Tricksereien jenseits der Spezifikation möglich und kann zur Zerstörung des Chips führen.

Ceos
03.09.2016, 17:12
beim ATMega wird der Reset Pin einfach mit 10V angesteuert um den Reset auszulösen wennd er Pin abgeschalten ist und ich meine auch beim PIC gibt es einen Programmiermodus dem der gesperrte Reset Pin ziemlich egal ist.

Klebwax
03.09.2016, 17:36
In diesem Zustand kann der Chip (mangels Reset-Pin ;) ) regulär weder gelesen noch gelöscht noch (um)programmiert werden.
Eine Entsperrung von PICs ist dann nur noch mit Tricksereien jenseits der Spezifikation möglich und kann zur Zerstörung des Chips führen.
Quatsch. Jeder anständige Programmer kann das ohne irgendwelche Specs zu verletzen.

MfG Klebwax

PICture
03.09.2016, 18:44
Bei PIC-Controllern (und meines Wissens nicht dort) kann man sich aber auch komplett aussperren, indem man den Resetpin zum I/O-Pin macht.

Ich kann nur bestätigen, dass es passieren kann, wenn der Resetpin zum Ausgang programmiert wird.

Klebwax
03.09.2016, 20:42
Ich kann nur bestätigen, dass es passieren kann, wenn der Resetpin zum Ausgang programmiert wird.

Das ist nicht so.


beim ATMega wird der Reset Pin einfach mit 10V angesteuert um den Reset auszulösen wennd er Pin abgeschalten ist und ich meine auch beim PIC gibt es einen Programmiermodus dem der gesperrte Reset Pin ziemlich egal ist.

Richtig, man muß MCLR auf Vpp bringen, dann kann man den Chip löschen und neu programmieren. Und das ist auch nicht jenseits der Specs.
31978

Ich zeig jetzt nicht Ausschnitte aus allen PIC-Datenblättern, aber entsprechendes findet sich auch dort.

MfG Klebwax

PICture
03.09.2016, 21:57
In Datenblätter von PICs steht nix über Programmierung. Nur die neuere PICs lassen sich mit Vpp = 5V Programmieren. Die älteren benötigen dafür höhere Spannung Vpp.



Another issue with MCLR/VPP is that when the PICmicro device is programmed, this pin is driven to approximately 13V and also to ground.

RoboHolIC
03.09.2016, 22:12
Richtig, man muß MCLR auf Vpp bringen, dann kann man den Chip löschen und neu programmieren. Und das ist auch nicht jenseits der Specs.
31978

Ich zeig jetzt nicht Ausschnitte aus allen PIC-Datenblättern, aber entsprechendes findet sich auch dort.

Ist auch nicht nötig, denn das dürfte ein Ausschnitt aus den Maximum Ratings sein - das sagt in diesem Zusammenhang alles und nichts aus.

Aber gut, ich beuge mich ohne Ironie dem geballten Fachwissen. Dann ist das wohl auch ein Missverstehen aus meiner Anfangszeit.

Sprut.de schreibt zwar über eine Falle, wenn MCLR als I/O in Verbindung mit dem Internen Oszillator konfiguriert wird. Er erklärt dabei, dass der fehlende externe Reset beim Programmieren das Stoppen des Oszillators und damit ein Hochzählen des Program Counters nicht verhindern kann.
Und dass dadurch der Programmiervorgang in Unordnung gerät.

Vielleicht gilt das aber nur für die einfachsten Programmer-Hard- und Softwares und kommt mit Geräten a la PICkit2/3 und MPLAB(X) gar nicht zum tragen.:confused:
(Die Spec-Verletzung, derer ich mich erinnere, betraf im Übrigen das Timimg zwischen PowerUp- und /MCLR-Vpp, aber was soll's, ich finde nichts davon wieder).

Danke Euch, damit hätte sich ja eine gefürchtete Fehlerquelle in Luft aufgelöst.

witkatz
04.09.2016, 11:07
Ich kann nur bestätigen, dass es passieren kann, wenn der Resetpin zum Ausgang programmiert wird.
Bei welchem PIC ist das möglich?
Bei den mir bekannten PIC12F, PIC16F und PIC18F ist der als I/O konfigurierter Resetpin immer input only.

- - - Aktualisiert - - -


In Datenblätter von PICs steht nix über Programmierung. Nur die neuere PICs lassen sich mit Vpp = 5V Programmieren. Die älteren benötigen dafür höhere Spannung Vpp.
Zitat von PICmicro™ Mid-Range MCU Family Reference Manual:
> Another issue with MCLR/VPP is that when the PICmicro device is programmed, this pin is driven to approximately 13V and also to ground.



Dann folgen Hinweise für die Beschaltung des MCLR Pins. Das soll verdeutlichen, dass man den PIC nicht mehr per ICSP programieren kann, wenn der MCLR Pin niederohmig mit Vdd verbunden ist. Das kann eine Falle sein. Oder auch ein Feature, weil man mit einem versteckten Jumper oder Lötbrücke den ICSP Zugriff erschweren kann.

- - - Aktualisiert - - -


Wie oft kann ein [..] PIC programmiert werden?
Kann von µC Familie zu Familie unterschiedlich sein und steht wie schon gesagt im Datenblatt, suche nach Memory Endurance oder Cell Endurance.
Beispiel:
31979

PICture
04.09.2016, 11:12
Ich kann mir leider keine Details mehr erinnern. Mir ist das mal vor einigen Jahren bei einem PIC12F629 passiert. Möglicherweise wurde der Pin aus versehen als Output programmiert. Laut Datenblatt is es eben möglich:

REGISTER 3-2: TRISIO — GPIO TRISTATE REGISTER (ADDRESS: 85h)

bit 5-0: TRISIO<5:0> General Purpose I/O Tri-State Control bit

1 = GPIO pin configured as an input (tri-stated)
0 = GPIO pin configured as an output.

Note: TRISIO<3> always reads 1.

witkatz
04.09.2016, 11:46
Mir ist das mal vor einigen Jahren bei einem PIC12F629 passiert. Ich kann mich auch an so was erinnern - irgendwelche Probleme beim Programmieren des PIC12F629/675 mit PicKit2 und MCLR konfiguriert als I/O Pin. Hing irgendwie mit dem OSCCAL Register zusammen, aber Details weiss ich nicht mehr.

Softboy1
04.09.2016, 12:09
Danke an ALLE

Vielen Danke für die sehr nützliche info's!!

Sonntags Gruss
Softboy1

RoboHolIC
04.09.2016, 15:50
Nochmal zu Picture's Beitrag:

Aus dem Datenblatt zum fraglichen PIC12F629

3.3.4 GP3/MCLR/VPP
Figure 3-3 shows the diagram for this pin. The GP3 pin
is configurable to function as one of the following:
• a general purpose input
• as Master Clear Reset


Der GP3-Pin = MCLR kann auch bei diesem Chip nur Input sein.

Softboy1
04.09.2016, 17:05
Hallo Gemeinde

Welche IC werden am meisten verwendet mit DIP-Gehäuse.
Sind da grosse Unterschiede zwischen die ATMEGA und PIC.

Gibt es IC's mit 4 AnalogAusgänge +/-10V 12Bit und 2 Eingänge die als 16Bit Zähler dienen für A/B (sin/cos) Signal.

Gibt es irgendwo im Netz eine Site wo Programm Beispiele stehen von mir aus einfachen LED Lauflicht bis ...........

Wie wird ein Programm aufbaut (Struktur), wo muss auf geachtet werden und mit welchen Programmiersprachen wird gearbeitet.

Sind diese Programmiersprachen in Demo Kits enthalten?

Schönen Sonnigen Sonntag.

PS: Ich muss ein bisschen auf die sprünge geholfen werden.

Peter(TOO)
04.09.2016, 22:17
Welche IC werden am meisten verwendet mit DIP-Gehäuse.
Sind da grosse Unterschiede zwischen die ATMEGA und PIC.
Bei den PICs gibt es eine unüberschaubare Zahl von Varianten.
CPUs selbst gibt es nur eine kleine Anzahl aber die Peripherie ist bei jedem sehr unterschiedlich.
Die Grundidee der Familien war, möglichst alle Anwendungsfälle mit einem gut passenden und günstigen Chip abzudecken. Allerdings steigt der Aufwand für die Logistik und in der Fabrikation.
Für den Preis eines Halbleiters ist vor allem die Chipfläche ausschlaggebend, also die Zahl der verwendeten Transistoren.
deshalb gibt es PICs auch ab 6-Pins und die Peripherie ist sehr unterschiedlich, manche haben noch etwas analog mit drauf, wie z.B. OpAmps.
Bei den PICs ist die frage nach dem meistverwendeten Typ eher sinnfrei.

Die andere Idee war möglichst viel auf einen Chip zu packen und somit mit wenigen Modellen einen möglichst breiten Bereich abzudecken, wobei bei den typischen Anwendungen nur ein kleiner Teil der vorhandenen Möglichkeiten verwendet wird. Ergibt eine grössere Chipfläche aber eine einfachere Logistik und grössere Stückzahlen für die einzelnen Modelle. Zu dieser Art gehört der ATmega.



Gibt es IC's mit 4 AnalogAusgänge +/-10V 12Bit und 2 Eingänge die als 16Bit Zähler dienen für A/B (sin/cos) Signal.
Da man möglichst nur mit einer Betriebsspannung auskommen will, geht +/-10V nur mit einer externen Beschaltung mit zusätzlichen OpAmps.
Meistens sind aber nur DACs mit 8-Bit vorhanden, dies hängt auch mit den Fertigungstoleranzen zusammen und des verwendeten Herstellungs-Prozesses.
Für einen höhere Auflösung verwendet man meist externe DACs oder geht über PWM. Die Bits alleine sind aber nicht das einzige Kriterium. Auch der Rest der Schaltung darf keine grösseren Fehler oder Störungen erzeugen als die Bit-Auflösung vor gibt. Manche Schaltung mit einem 18-Bit DAC oder ADC erreicht praktisch nur 12- oder 14-Bit, weil der Aufbau nicht stimmt.

z.B. ist ein Prozess für die optimale Herstellung von EPROMs nicht optimal für Logik.
z.B. hatte Hitachi früher ein Abkommen mit Motorola und stellte Second Source der Motorola CPUs her. Streit gab es dann, weil Hitachi einen Prozess hatte, mit welchem sie ein EPROM zusammen mit der CPU und Peripherie herstellen konnten und so billige OTP herstellen konnten. Motorola schaffte dies damals nicht!
AMD lieferte bis zum 80286 auch Second Source der Intel-CPUs. Allerdings benötigten CPUs mit dem AMD-Prozess weniger Leistung, wodurch sie höher getaktet werden konnten. Das ergab dann auch eine Trennung der Zusammenarbeit.

Andere Hersteller haben ihre Prozesse z.B. auf analoge Anwendungen optimiert, wie z.B. Analog Device.



Gibt es irgendwo im Netz eine Site wo Programm Beispiele stehen von mir aus einfachen LED Lauflicht bis ...........

Wie wird ein Programm aufbaut (Struktur), wo muss auf geachtet werden und mit welchen Programmiersprachen wird gearbeitet.

Sind diese Programmiersprachen in Demo Kits enthalten?

Dies ist wiederum ein anderes Thema!

Für dich brauchbare Anwendungen und Unterstützung musst du bei fertigen Boards suchen und dann denjenigen Prozessor verwenden, welcher da drauf ist. Die grösste Gemeinde für so etwas hat sicher der Arduino. Der Raspberry Pi ist dann eine Leistungsklasse höher und geht mehr in die Richtung eines Mini-PCs, also für eine Kaffeemaschine eher etwas überdimensioniert, ausser man möchte einen 24" Monitor anschliessen und eine Datenbank mit Gesichtserkennung für den bevorzugten Kaffee umsetzen, damit wäre dann ein Arduino überfordert.

Programmieren kann man nicht mit 2 Sätzen lernen, das ist eine Aufgabe welche Jahre dauert! OK, einfache Resultate hat man schneller.

Verbreitet sind C(++) und BASIC (Bascom), aber auch eine Menge andere Programmiersprachen. Bei den PICs ist es C und Assembler.

Entwicklungsumgebungen gibt es einige, viele sind gratis im Netz zu finden und können nicht nur mit den fertigen Boards verwendet werden.
Ausser bei den PICs sind die von den IC-Herstellern angebotenen Demo-Boards eher etwas für Fachleute und weniger für Anfänger geeignet. Da wird viel Grundwissen vorausgesetzt. Das geht dann schon bei der Peripherie los, die muss man selber entwickeln.

Bei einem Arduino-Bord, bzw. den unzähligen Derivaten, sieht dies anders aus, diese wurden für "BASTLER" entwickelt und haben auch die entsprechende Unterstützung. Zudem gibt es jede Menge an Interfaces (Shields genannt), mit passenden Treibern, Bibliotheken und Beispiel-Programmen.

MfG Peter(TOO)

Softboy1
05.09.2016, 07:47
Danke Peter!!

witkatz
05.09.2016, 12:54
... mit DIP-Gehäuse ... Gibt es IC's mit 4 AnalogAusgänge +/-10V 12Bit und 2 Eingänge die als 16Bit Zähler dienen für A/B (sin/cos) Signal.

Für Motorsteuerungen werden von Microchip besonders die dsPIC33 der MC Serie empfohlen. Die parametrische Suche nach Mikrocontrollern im Bereich Motor Control (http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=55) bringt z.B. den dsPIC33FJ32MC302 zu Tage, mit 2 Quadraturencodern und 4 separaten PWM Generatoren zur Ansteuerung von Brückentreibern.