8-Bit
            Datenbreite
        
        (PIC12Fxxx
            /PIC16Fxxx)
14-Bit-Kern-Typen-Historie
      Übersichtsgrafik
      
       
    
zurück
zur
          PIC-Flash-Controller Gesamtübersicht
      
      
        
Wenn man die
      14-Bit-Kern-PICs
      in Gruppen einteilen will, dann orientiert man sich dabei am
      Besten an
      der Anzahl der Pins der DIL-Gehäuse. Dabei ergeben sich dann
      drei
      Gruppen, deren Mitglieder direkt verwandt sind:
    
    
Am Anfang war
      der
      PIC16F84 ..............
      Natürlich gab
      es schon vorher PICs, aber deren Programmspeicher ließ sich
      nur
      ein Mal beschreiben und nicht wieder (oder nur mit UV-Licht)
      löschen (OTP). Für den experimentierfreudigen Bastler
      war das
      alles andere als ideal. Erst PICs mit Flash-Prorammspeicher
      machten es
      den Bastlern einfach.
    
Wenn man sich
        dann
        die zeitliche Entwicklung seit dem Erscheinen des PIC16F84
        ansieht,
        dann erkennt man vor allem das Bestreben der Entwickler, den
        Energieverbrauch der PICs zu optimieren. aber es wird auch stets
        versucht, dass "Brennen" der PICs zu beschleunigen sowie mehr
        Hardware
        in die Chips zu integrieren.
      
    
1.
        Generation
        (1998..2000)
    
Mit dem PIC16F84 (18 Pins) kam der erste PIC mit
      Flash-Speicher auf den Markt, den man praktisch unbegrenzt oft
      programmieren konnte. Ein Programm musste also nicht schon beim
      ersten
      Mal perfekt funktionieren, man konnte Fehler nach und nach finden
      und
      den PIC mit immer neuen verbesserten Programmen beschreiben.
      Allerdings
      war der 18-beinige PIC16F84 sehr spartanisch ausgestattet.
      Außer Flash, RAM, EEPROM und drei Timern hatte er nicht viel
      zu
      bieten. 
    
Es folgte die PIC16F87x-Familie mit 28 und 40 Pins. Die hatten
      nicht nur
      mehr Pins, sondern auch eine Reihe zusätzlicher
      Interface-Hardware. Außerdem integrierte man eine
      Typenkennung,
      die von Programmiergeräten ausgelesen werden konnte und
      erhöhte den maximalen Arbeitstakt auf 20 MHz. (der PIC16F84
      hatte
      nur 10 MHz). 
    
Der mit dem
      16F87x
      gesetzte Standard wurde auf den 16F84 übertragen und das
      Ergebnis
      war der PIC16F84A. Das
      ist ein
      16F84 mit einer auslesbaren Typenkennung und einer maximalen
      Taktfrequenz von 20 MHz.
    
Als
      preisgünstigeren Alternative zu den PIC16F87x produzierte man
      PIC16F7x, die nicht
      über einen
      EEPROM verfügten.
    
    
1.5 Generation
Die 16F87x
      wurden
      überarbeitet, und das Ergebnis waren die PIC16F87xA. Aus Sicht des
      Anwenders
      ist der einzige größere Unterschied zum Vorgänger
      die
      Integration von Comparatoren. Das Hauptziel war aber wohl die
      Beschleunigung des Brennprozesses. Für Industriekunden mit
      laufender Serienproduktion ist das ein bedeutender Parameter,
      für
      den Bastler interessieren ein paar Sekunden Zeitgewinn beim
      Basteln
      kaum.
    
    
2.
        Generation  (INTOSC)
      
Alle bisherigen
      Flash-PICs benötigen einen externen Oszillator oder Resonator
      zur
      Takterzeugung. Im RC-Mode reicht zwar ein Widerstand und ein
      Kondensator, aber an Genauigkeit oder Stabilität des Taktes
      durfte
      man dann keine hohen Ansprüche stellen. Mit den nächsten
      PICs
      führte man interne Oszillatoren ein. Das vereinfacht zum
      einen die
      Schaltung, ermöglicht es aber auch, zwei zusätzliche
      Pins
      für I/O-Funktionen zu benutzen.
      Der Vorreiter war hier der PIC16F62x
      (18 Pins) der eigentlich
      den
      16F84A überflüssig machte, da er ihn mehr als ersetzen
      konnte. Der Chip wurde später zum 16F62xA überarbeitet.
      Das
      einzige, was den 16F62x im Vergleich zu den großen 16F87x,
      fehlte
      war ein ADC.
    
Gleichzeitig
      erschien die PIC1xF6xx-Familie
(12F629/675,
      16F630/676)
      auf dem Markt. Die gibt es als PIC12F6xx mit 8 Pins sowie als PIC16F6xx mit
      6
      zusätzlichen I/O-Pins (also 14
        Pins). Es gab sie von Anfang an mit internem Oszillator
      und es
      gab auch sofort Versionen mit ADC. Die kleine Gehäusebauform
      führte zu geringen Kosten und reichte für viele einfache
      Anwendungen aus. Während der interne Oszillator des 16F62x
      noch
      einen Frequenzfehler von einigen Prozent aufweisen konnte, konnte
      der
      Oszillator des1xF6xx per Software justiert werden. Den
      nötigen
      Korrekturwert brannte der Hersteller in den Programmspeicher. Das
      war
      etwas umständlich (der Kalibrierwert konnte durch Brennfehler
      verloren gehen) garantierte aber Frequenzfehler von unter 1
      Prozent.
    
    
3.
        Generation  (nanoWatt  2003..2010)
      
Die nachfolgende
      Generation zeichnet sie durch einen weiter verbesserten internen
      Oszillator aus. Dieser konnte zwar immer noch per Software fein
      abgestimmt werden, allerdings war das kaum nötig, da er schon
      während der Herstellung auf einen Fehler von unter 1 %
      justiert
      wurde. Außerdem war nun  nicht mehr nur eine oder zwei
      Frequenzen verfügbar, sondern es konnte aus einer ganzen
      Reihe von
      Frequenzen ausgewählt, und diese im Betrieb umgeschaltet
      werden.
      Das Ziel war ein PIC mit minimiertem Stromverbrauch.
      Für praktisch alle bisherigen PICs wurden Nachfolger mit
      dieser
      nanoWatt-Technik hergestellt. 
    
| ° | 
          12F629/675 |   ==>   | 
          12F635/683 | ||
| ° | 16F630/676 | ==> | 16F636/684/688 | ||
| ° | 16F84A | ==> | 16F87/88 | ==> | 16F818/819 | 
| ° | 16F7x | ==> | 16F7x7 | ||
| ° | 16F87xA | ==> | 16F88X | 
Obendrein wurden
      aus den 14-Pin Typen 16F6xx neue 20-Pin Typen
      entwickelt, indem man noch einmal 6 zusätzliche I/O-Pins
      hinzufügte.
      Spezielle Typen zur Ansteuerung von LCDs wurden mit 28, 40 und
      erstmals
      auch mit 64 Pins herausgebracht.
    
4.
        Generation  (enhanced  2009 ....)
      
Was immer man
      bisher auch an den PICs verändert hatte, so war doch der
      eigentliche CPU-Kern nicht angetastet worden. Das hatte es
      für die
      Entwickler sehr einfach gemacht, ein Programm von einem PIC auf
      einen
      anderen zu portieren. Die alten 14-Bit-Kerne hatten aber auch
      einige
      Schwachpunkte, insbesondere wenn man  sie nicht in Assembler
      programmieren wollte. Deshalb überarbeitete man den Kern,
      spendierte ihm eine 16-bittige indirekte Adressierung, die
      Möglichkeit einen zusammenhängenden linear
      adressierbaren
      Speicher abzubilden sowie einige zusätzliche Befehle, die
      eine
      Programmierung in C deutlich vereinfachten. Dabei blieb der Kern
      aber
      abwärtskompatibel zu den herkömmlichen PICs. Alter Code
      lässt sich problemlos auf den Enhanced-PIC portieren. Der
      umgekehrte Weg ist nicht uneingeschränkt möglich, aber
      warum
      auch. Schließlich wurden praktisch für aller
      herkömmlichen Familien nun Nachfolger mit Enhanced-Kern
      produziert.
      Man erkennt sie an der 4-stelligen Subtypennummer.
    
| ° | 16F88x |   ==>   | 
          16F151x | 
| ° | 16F9xx |   ==>   | 
          16F19xx | 
| ° | 16F7x7 |   ==>   | 
          16F178x | 
| ° | 16F818/819 |   ==>   | 
          16F?? | 
| ° | 16F62xA | 
            ==>   | 
          16F1826/1827/1847 | 
        

Quelle: Datenblätter der Firma microchip