Hardware PIC Register

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 29 11 2024  00:52:00      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Hardware PIC Register
Suche nach: pic (2056)

    







BID = 771874

chris24

Stammposter



Beiträge: 217
 

  


Hallo,

nach einer Diskussion mit einem Bekannten über den physikalischen Aufbau eines PICs, möchte ich euch kurz um eine Meinungs bzw. Auskunft bitten.
Wo werden Registerinhlate, wie z.B. die das Statusregister gespeichert?
Bei movwf STATUS verschiebe ich in eine Bank des File-Registers? Sind die Register dann zusammen mit oder in dem RAM gespeichert?


Danke.

_________________
Gruß

Chris24

BID = 771887

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

 

  


Zitat :
verschiebe ich in eine Bank des File-Registers?


Ich denke ja, siehe mein Bild im Anhang aus dem Datenblatt des 16F628


Zitat :
Sind die Register dann zusammen mit oder in dem RAM gespeichert?


Die Frage versteh ich nicht.


BID = 771895

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
eines PICs,
Welchen meinst du?
Mittlerweile gibt es eine stattliche Zahl davon und nicht alle sind gleich.

BID = 771897

chris24

Stammposter



Beiträge: 217

Es handelt sich um die PIC16F87XA Familie.

Auf Mikrochip.com sind nur Blockdiagramme dargestellt, welche das Arbeitsschema zeigen sollen. Hardware wird dort nicht erklärt.

Mir geht es hier konkret um den Speicherort. Der RAM wird über das F-Register beschrieben. Die anderen Register werden auch über dieses beschrieben, bzw. befinden sich in diesem. In dem Blockdiagramm sind sie aber außerhalb dargestellt.
Frage: Ist es Tatsache, dass sich der komplette Speicher im F-Register befindet oder ist der Assemblerbefehl nur so geschrieben?

Danke.

_________________
Gruß

Chris24

BID = 771910

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Ist es Tatsache, dass sich der komplette Speicher im F-Register befindet
Nein, zumal es gar kein F-Register gibt.

Die Bytes des Registerfiles werden ja über den Adressdecoder adressiert, der bei der direkten Adressierung die auszuwählende Adresse in einem Feld des Opcode vorfindet.
Die Abtrennung des Adressfeldes und der eventuelle Ersatz seines Inhalts durch den Inhalt des FSR besorgt der Befehlsdecoder.
Deshalb wird das FSR-Register in dessen Nähe angeordnet sein, ebenso wie sich das Statusregister gewöhnlich in unmittelbarer Nähe der ALU befindet.

BID = 771916

Bartholomew

Inventar



Beiträge: 4681

Auf die Schnelle aus dem Gedächtnis:
Die meisten Systemregister liegen im normalen RAM und lassen sich mit den für GP-Registern üblichen Befehlen auslesen/verändern. Eine Ausnahme bildete früher bei alten kleinen PICs (12-Bitter, weiß nicht mehr genau welche) das Option-Register, das seine eigenen Befehle hatte (es gab max. ein Dutzend Register, und das Option-Register hatte aus Address-Platzgründen keine eigene richtige Addressnummer, sondern wurde über einen eigenen Befehl angesprichen).
Ferner liegt der Rücksprungadressen-Stack nicht im RAM, sondern hat seine einen davon separaten Speicherzellen (die auch fast immer länger als die normalen Wortlängen sind, wenn ich mich nicht irre).
Separat neben dem RAM müsste in der Hardware auch noch das Überlauf-Bit (Carry) vorhanden sein, dass dann ins Statusregister kopiert wird (mag mir nicht vorstellen, dass der Akkumulator/W-Register mit dem Bit im Statusregiser hartvertrahtet ist); gleiches gilt für's DC-Bit (Überlauf an Stelle 5).
Und dann gibt's natürlich noch die Konfigurations-Bits (Taktgeschwindigkeit, Kopierschutz usw.), die beim Brennen festgelegt werden.
Das Work-Register selbst liegt natürlich auch nicht im Ram.
Das müsste es gewesen sein an Speicher außerhalb des RAMs (abgesehen von evtl. vorhandenem EEPROM).


Zitat :
Frage: Ist es Tatsache, dass sich der komplette Speicher im F-Register befindet oder ist der Assemblerbefehl nur so geschrieben?

Das F-Register ist eine beliebige Adresse im RAM, die mit dem Befehl an die ALU übergeben wurde.


Gruß, Bartho


Edit: Perl war schneller
(Telefon kam dazwischen)


Zitat :
... ebenso wie sich das Statusregister gewöhnlich in unmittelbarer Nähe der ALU befindet.

Kannst Du bestätigen, dass das Carry-Bit auch noch separat neben dem Akkumulator vorhanden ist, oder stimmt meine Theorie nicht?
Andererseits: Dann müsste ja irgendwo im Takt auch noch das Statusregister separat manipuliert werden... hmm...

[ Diese Nachricht wurde geändert von: Bartholomew am 22 Jun 2011 22:22 ]

BID = 771942

chris24

Stammposter



Beiträge: 217

Kurzum:

Das F-Register gibt die Befehle an den RAM weiter.
Dort stehen einige Register, u.a. auch das Statusregister.

Danke.

_________________
Gruß

Chris24

BID = 771945

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
dass das Carry-Bit auch noch separat neben dem Akkumulator vorhanden ist, oder stimmt meine Theorie nicht?
Diese Frage verstehe ich wohl nicht.
Das Carry ist ein separates Flipflop, das von der ALU im Bedarfsfall gelesen und beeinflusst werden kann.
Überhaupt ist das Statusregister oft kein kompaktes Register wie die anderen, sondern es handelt sich um einzelne Bits, die auf dem Chip etwas verstreut liegen und nur gemeinsam adressiert werden.

BID = 771949

Bartholomew

Inventar



Beiträge: 4681


Zitat :
chris24 hat am 22 Jun 2011 23:42 geschrieben :

Das F-Register gibt die Befehle an den RAM weiter.
Dort stehen einige Register, u.a. auch das Statusregister.

Nein, Die ALU holt sich den Befehl aus dem Programmspeicher (fetch), liest ein evtl. darin angegebenes Register ein (read), führt die eigentliche Arbeit aus (modify) und schreibt das Ergebnis evtl. zurück (write). Das gilt für die meisten Befehle, und deswegen braucht ein Befehlszyklus auch vier Quarztakte (manche auch acht, wie goto). Genaueres steht in den Datenblättern; ist viel zu lesen, lohnt sich bei Bedarf aber.


Zitat :
Diese Frage verstehe ich wohl nicht.

Hast sie trotzdem beantwortet, Danke
Ich wollte wissen, ob dieses Carry-Flipflop separat außerhalb des RAMs nahe der Alu liegt, und ob es im Status-Register innerhalb des RAMs noch mal gedoppelt ist.
Deiner Antwort entnehme ich, dass das RAM nicht kompakt und räumlich abgeschlossen auf dem Chip verortet ist (wovon ich fälschlicherweise ausging), sondern dass einzelne funktionale Bits durchaus auch außerhalb der übrigen Speicherzellen liegen (nahe der ALU beispielsweise, wie das Carry-Flipflop), und dennoch über eine normale RAM-Adresse Byteweise ausgelesen/manipuliert werden können.

Bin schlauer geworden

Gruß, Bartho

BID = 771966

chris24

Stammposter



Beiträge: 217

Ja, dass der RAM nicht selbst rechnen kann ist mir klar.
In ihm befinden sich teilweise die Register und der restliche Speicher, die ausgelesen werden können.

Danke.....

_________________
Gruß

Chris24

[ Diese Nachricht wurde geändert von: chris24 am 23 Jun 2011  7:24 ]


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 182421085   Heute : 124    Gestern : 5459    Online : 285        29.11.2024    0:52
1 Besucher in den letzten 60 Sekunden        alle 60.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0600612163544