Forum: Mikrocontroller und Digitale Elektronik PIC Frage


von Petah (Gast)


Lesenswert?

Hallo
Ich muss mich bald an eine arbeit ran machen. nun weiss ich nicht ob
das überhaupt machbar ist mit einem pic (ich programmiere
ausschliesslich assembler). es soll ein hex file (das hex file kann
sich ntürlich verändern) auf einen speziellen port ausgegeben werden.
der pic soll das hexfile an diese schnittstelle schicken nur hab ich
keine plan wie ich das machen soll.
wie kann ich mit dem pic ein solches hexfile übermitteln?

gruss

von Frank Linde (Gast)


Lesenswert?

Kenne mich mit PICs nicht aus, aber das geht damit sicherlich. Wie soll
das hex-file denn in den PIC kommen und in welcher Form soll es
ausgegeben werden (8 Bit parallel, 4 Bit parallel, seriell ...)? Wenn
es  erstmal im PIC drin ist und 8 bit parallel ausgegeben werden soll,
ist die Sache recht einfach:

1. Zeiger auf Tabellenanfang;
2. Tabellen-Byte einlesen und auf Port schreiben;
3. Tabellenende erreicht?
   ja: Programmende
   nein: Tabellenzeiger inkrementieren und Sprung nach 2.

Etwas umfangreicher würde es, wenn bestimmte Zeitanforderungen
einzuhalten wären.

Gruß, Frank

von Wolfram Hildebrandt (Gast)


Lesenswert?

Das ist prinzipiell kein Problem.
Du kannst den HexFile fest in den Programmspeicher brennen.
Den kann man dann per table read auslesen und ausgeben.
Die Ausgabe kann eigentlich erfolgen wie du willst. Z.B. einfach an
einen 8 Bit Port ausgeben, wie Frank Linde es vorschlägt, oder an
Rs232, oder wie auch immer.

Was willst du denn genau machen? Nur festen einen HexFile ausgeben? Was
hat das für einen Sinn? Soll der HExFile immer fest im PIC stehen, oder
soll sich das während des Betriebs ändern?
Hast du irgendwelche Vorgaben.
Die Aufgabenstellung sollte auch sicher helfen.




mfg   Wolfram Hildebrandt

von Petah (Gast)


Lesenswert?

hallo, also erstmal danke für die antworten.
das hexfile (ist eigentlich ein pof file, configuration file fürs fpga)
ist natürlich variabel. die daten sollen dann seriell über
lichtwellenleiter auf ein board geschickt werden welches die
empfangenen signale auswertet und diese für JTAG aufteilt (clock, tdi
und tdo). habt ihr erfahrung mit fpgas?
ich frage mich einfach wie ich dem pic das hex file 'beibringe'...
fest einbrennen kann ich es ja nicht da es eben ändern kann.

das projekt sollte eigentlich so eine art direct programmer für fpgas
sein.

von Andreas Jäger (Gast)


Lesenswert?

Über den USART kannst Du beliebige Daten (HEX-Files) in den PIC hinein
und auch wieder hinausbefördern. Die Frage ist, wie gross das File sein
wird und ob das interne RAM des PIC ausreicht oder ob externes RAM
benutzt werden muss.

Es gibt auch PIC's mit 2 USART's. Dann spart man sich die Arbeit
einer Softwareimplementation bzw. das Umschalten nur eines USART's.

Andreas

von Manfred Glahe (Gast)


Lesenswert?

Hallo,

wie groß soll das File denn werden können? Ich benutze zum PIC16F84
extern ein FRAM für den Setup einer Gerätesteuerung und bilde den SPI
Port nach. Wenn Du mit einem Lichtleiter übertragen willst, dann würde
ich nicht die langsame RS232 Schnittstelle nehmen sondern den
Parallelport. Du mußt doch sowieso Parallel/seriel Wandler mit
Taktreproduktion einsetzen.
Warum schickst du das File nicht direkt ans FPGA und integrierst dort
eine Empfangslogik (möglicherweise direkt im FPGA in Verbindung mit der
externen S/P/T Logik)?

MfG  Manfred Glahe

von Petah (Gast)


Lesenswert?

also, habe mich ein bisschen weiter erkundigt!
die zu programmierenden files sind im bereich zwischen 200-500kb. ich
denke deshalb ein externes ram wird benötigt.
nun frage ich mich wie denn das ram mit dem hexfile am besten geladen
wird?! der datenaustausch zwischen ram und pic wird über usart
stattfinden. habt ihr erfahrungen mit externem ram?! könntet ihr mir
welches empfehlen?

danke & gruss
peter

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.