PIC Projekt (Neuling)

OP #614259
Lesenswert?

Hallo guten Morgen,

möchte ein größeres Projekt mit dem PIC18F452 mit einem 40 MHz Quarz 
erstellen.
Frage 1.
Wie schnell ist der SPI Bus um 1 Byte an die Hardware/Schieberegister zu 
übertragen ? Werde warscheinlich 8 Schieberegister x 8 Bit 
hintereinander schalten.
Frage 2.
Der Chip besitzt 1536 Byte Ram. Habe in einer Zeitschrift gelesen, das 
jeder Befehl im Programmspeicher 2 Bytes( 1 Word ) belegt. Bezieht sich 
dieses auch auf das Ram?
Frage 3.
Den Parallel Slave Port mit seinen steuerleitungen CS,WR,RD nutze ich um 
Informationen aus einem externen Bus (verbunden über eine Schnittstelle 
zum PC) zu übertragen. Im PIC existiert eine Tabelle, die die 
Informationen aufnehme. Soll ich dies auch als Schieberegister Prinzip 
aufbauen oder soll ich dem PIC Adressen-Pin bereitstellen welche z.B. 
bei Adresse 0h00001000 auf die Tabelle an der Adresse 0h00001000 zugriff 
bekommt.
Frage 3.
kann ich in einem PIC ein Array anlegen?

bis bald Siegfried
Gast #614477
Lesenswert?

Hi,

> möchte ein größeres Projekt mit dem PIC18F452 mit einem 40 MHz Quarz
> erstellen.

Bei den Fragen und "Neuling" im Betreff würde ich mit einem kleinem 
Projekt anfangen.

zu 1)  Kannst Du ausrechnen

zu 2)  Datasheet S. 1 (schon mal reingesehen?)

  On-Chip Program Memory: 32K Flash / 16384 Single Word Instructions
  On-Chip RAM           : 1536 bytes
  Data EEPROM           : 256 bytes

zu 3)  Habe die Frage nicht ganz verstanden. Wieso fragst Du uns, was Du 
machen sollst?

zu 4)  Sicherlich kannst Du im PIC ein Array anlegen. Kommt aber auf die 
Sprache an, in der Du programmieren willst.

TD
Gast #614814
Lesenswert?

Nur so als Anmerkung, es gibt keinen für den PIC brauchbaren 40MHz Quarz 
(das sind alles Obertonquarze, und die schwingen mit einem PIC auf der 
Grundwelle).

Entweder einen 10MHz Quarz nehmen und über die config bits die 4x PLL 
einschalten oder ein 40MHz Quarzoszillator nehmen (braucht aber mehr 
Strom).
OP #614849
Lesenswert?

Hallo,
@Dieter Werner
ich bin auch der Auffassung, das man mit der Frequenz nicht übertreiben 
soll. 10MHz ist doch in Ordnung.
@tastendrücker
habe es mal "größeres Projekt" genannt. Bin aber gezwungen, mit einem 
PIC auf einem Board DE-Karte 16 Gleichstrommotoren ( PWM mit 
FET-Endstufe ) in beide Richtungen anzusteuern.
das Array kommt in Verbindung mit dem Parallel Slave Port zu tragen.
Hoffe das ich dieses jetzt richtig rüber bringe.
z.B. Das Array kann 128 Bytes speichern.
Version a:
Wenn ich über Parallel Slave Port Daten empfange, kann ich dieses wie 
ein Schieberegister mit 128 Datenpakete ablaufen lassen. Ich sehe in 
dieser Version einen Nachteil, da ich immer 128 Bytes zu dem PIC 
übertragen muß um nur 1 Byte zu ändern.
Version b:
oder aus dem externen Bus 7 Adressenleitungen mit dem PIC verbinde und 
die Daten mit der jeweiligen Adresse je Byte in das Array schreibe.
Sehe in Version b den Vorteil, das ich zuerst dem PIC an einem Port die 
gewünschte Array-Adresse mitteile, und dann 1 Byte für die 
Datenübertragung habe.

Lasse mich aber gerne belehren, denn NEULING.

bis bald Siegfried
#614856
Lesenswert?

>Entweder einen 10MHz Quarz nehmen und über die config bits die 4x PLL
>einschalten oder ein 40MHz Quarzoszillator nehmen (braucht aber mehr
>Strom).

Laut den mir bekannten Datenblättern mag kein PIC mehr als 25MHz direkt 
als Taktquelle. Die 10MHz mit PLLx4 sind die geeignete Methode um auf 
40MHz zu kommen, ansonsten betreibst Du die Device ausserhalb der 
Spezifikation.

>Habe in einer Zeitschrift gelesen, das
>jeder Befehl im Programmspeicher 2 Bytes( 1 Word ) belegt. Bezieht sich
>dieses auch auf das Ram?

Nein, Du schreibst nämlich keine Befehle ins RAM. Nur einzelne Bytes.


Gruss,
Edson
OP #627394
Lesenswert?

Hallo,

ups... habe bemerkt, das ich im falschem Beitrag war.

Habe folgendes vor. Mehrere PIC 18F452 über ein 8adrige Leitung parallel
schalten. CLK,Data-In, Data-Out, Syn, rest GND. Die Übertragung ist
seriellel.
Habe mir folgendes vorgestellt: Übertragung des ersten Byts(Adresse),
vergleiche Byte mit einem Byte des EEPROM, bei übereinstimmung ubernimmt
der adressierte PIC das zweite Byte(Daten), usw.
Der SPI des PIC ist bereits durch Hardware-Erweiterung belegt.
Welche Möglichkeiten habe ich ?
bis bald Siegfried
(Firma: Promaxx.net) #627597
Lesenswert?

16 Motore vor/rück steuern...
16 H-Brücken

Da würde ich doch notfalls 16 Stück 18F2431 nehmen.

Aber das ist alles so sehr heavy, da würde ich nach H-Brücken mit 
I2C-Schnittstelle o.ä. suchen.

16 Motore mit einem uC und ellenlangen Schieberegistern, die auch noch 
PWM machen... viel Spaß !

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren