Forum: Mikrocontroller und Digitale Elektronik PIC: Programme aus externem SRAM ausführen


von Sebastian H. (sebihepp)


Lesenswert?

Hallo,

ich möchte mit einem PIC-uC Programme in einem externen SRAM
ausführen. Ich habe mir dazu zwei möglichkeiten überlegt:

1. Inhalt des SRAMs mit zweitem PIC in den ersten brennen und dann
ausführen.
+ Recht einfach
- FlashSpeicher schnell erschöpft, wenn häufig benutzt (Bsp. Start)

2. Kompletter ASM-Interpreter in den PIC brennen, welcher SRAM liest
und interpretiert
+ PIC muss nie mehr gebrannt werden
- Sehr langsam
- SEHR VIEL Arbeit

Ziel ist ein PC ähnliches System zu erstellen. Man soll damit
Programme schreiben können und diese sollen dann natürlich auch
ausführbar sein.
Hat jemand vlt. noch einen anderen Vorschlag?

Viele Grüße
Sebihepp

von Michael L. (Firma: Ingenieurbüro Lehr) (ml-net)


Lesenswert?

nimm einen Controller der das kann! Cortex M3 ist eh schon billiger als 
PIC

von Michael H. (morph1)


Lesenswert?

oder wenns ein pic sein muss: pic32 kann was du wünscht :)

von Sebastian H. (sebihepp)


Lesenswert?

Eigentlich wollte ich bei den PICs bleiben.

Sagt mal, ich finde nirgends einen Cortex M3. Weder bei Reichelt,
noch bei Conrad. Lediglich die ATTiny und welche mit ARM7-Core
gibt es dort. Suche ich vielleicht falsch? Das sind doch
Prozessoren/Mikrocontroller, oder?

von xmax (Gast)


Lesenswert?

> oder wenns ein pic sein muss: pic32 kann was du wünscht :)
sicher???

Es gibt ein paar PIC18F, die standardmäßig Code aus externem 
(SRAM-)Speicher ausführen können. Z.B. der PIC18F8720:
http://www.base32.de/EMI1.html
bzw. der neuere 18F8722, den gibt es auch bei Reichelt.

von Sebastian H. (sebihepp)


Lesenswert?

Ich habe mir mal das Datenblatt des PIC32MX360F512L angesehen.
Da steht aber nix davon drinnen, dass der das kann. =)

Ich werde mir mal ein Interpreter durch den Kopf gehen lassen.
Und zur Not kann ich ja immer noch das "Self-Programming"
benutzen. Muss nur drauf aufpassen, dass während des schreibens
nicht der Code zum Schreiben überschrieben wird. XD

Viele Grüße
Sebihepp

von Michael H. (morph1)


Lesenswert?

Zitat http://ww1.microchip.com/downloads/en/DeviceDoc/61143F.pdf:

In addition, the data memory can
be made executable, allowing PIC32MX3XX/4XX to
execute from data memory.

PDF-Seite 27.

büdde :)

das mit dem pic18 war mir neu, dabei benutze ich genau die 8722 und 
8723, das seh ich mir nochmal an :)

von Dieter W. (dds5)


Lesenswert?

Schau mal nach 18C601 und 18C801, das sind Typen die nur mit externem 
Programmspeicher arbeiten können.

Die gibt es auch noch im "bastlerfreundlichen" PLCC Gehäuse.

von Sebastian H. (sebihepp)


Lesenswert?

> In addition, the data memory can
> be made executable, allowing PIC32MX3XX/4XX to
> execute from data memory.

Ist "data memory" nicht der EEPROM?

> Schau mal nach 18C601 und 18C801, das sind Typen die nur mit externem
> Programmspeicher arbeiten können.
>
> Die gibt es auch noch im "bastlerfreundlichen" PLCC Gehäuse.

Danke für den Tipp. Bisher dachte ich, dass die C-Typen nur einmal
programmierbar wären. Ich schau sie mir nochmal genauer an. =)

Viele Grüße
Sebihepp

von VCOM (Gast)


Lesenswert?

>> In addition, the data memory can
>> be made executable, allowing PIC32MX3XX/4XX to
>> execute from data memory.

>Ist "data memory" nicht der EEPROM?

Nein, das wird bei den PIC32 nämlich nicht getrennt vom Programm-Flash 
verwaltet. MC meint mit 'Data Memory' das RAM. Du holst den Inhalt 
deines externen Programmspeichers ins RAM und führst ihn von dort aus.

von Maik W. (werner01)


Lesenswert?

Also Pic's mit so nem Parallelport können das doch denke ich!

von Dieter W. (dds5)


Lesenswert?

> Danke für den Tipp. Bisher dachte ich, dass die C-Typen nur einmal
> programmierbar wären. Ich schau sie mir nochmal genauer an. =)

Die 18C601 und 18C801 sind Spezialtypen, die lassen sich überhaupt nicht 
programmieren, da sie keinen internen Programmspeicher haben.

von Stampede (Gast)


Lesenswert?

>>Also Pic's mit so nem Parallelport können das doch denke ich!
Nein, der PIC32 kann nur Daten im internen RAM ausführen, nicht über den 
"Parallelport". Du müsstest also den Code von einem externen Speicher in 
den RAM kopieren und dann dort ausführen.
Von einem exteren Baustein Code ausführen können nur PIC mit einem 
"External Memory Interface", was beispielsweise der 18F8722 hat.

von Maik W. (werner01)


Lesenswert?

Servus,

super das ich das jetzt auch weis, werde mir das Teil gleich mal 
anschauen!
War zwar nicht mein Thema aber danke trotzdem..


mfg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.