Manchester 14x8bit 4mbit, wie empfangen?!

Gast #4246787
Lesenswert?
• ▲
▼
Hallo Leutz,

ich hab folgendes Problem, es gibt ein Bus auf Manchster-Basis.
Ich muss im Fehlerfall einmalig Datenpaket empfangen siehe Bild,
senden geht perfekt, es werden alle 1.5ms Pakete via SPI und XOR 
generiert, das funktioniert wunderbar!
Ich weiß nicht, wie ich das Empfangen soll, vielleicht über "Input 
Capture"?!
Meine Hardware ist PIC32MX470 120Mhz! Welche Möglichkeiten hätte ich 
noch?

Wäre für jede Hilfe Dankbar.

Gruß
Angehängte Dateien:
#4246798
Lesenswert?
• ▲
▼
@ Industry-Sniffer (Gast)

>senden geht perfekt, es werden alle 1.5ms Pakete via SPI und XOR
>generiert, das funktioniert wunderbar!
>Ich weiß nicht, wie ich das Empfangen soll, vielleicht über "Input
>Capture"?!

Nein, auch mit SPI, nur halt mit Überabtastung. Sprich, die Taktrate des 
SPI sollte 4-8 mal höher sein als die Bitrate des Signals. Ausserdem 
muss die Abtastung lückenlos laufen, der PIC hat hoffentlich einen FIFO 
für's SPI. Die Daten schreibt man in den Speicher und kann dann Offline 
dekodieren.
Gast #4246847
Lesenswert?
• ▲
▼
hab ich da was falsch verstanden:
RxD 4Mbit wird mit SDI Pin von PIC32 verbunden und mit 4-8facher 
Geschwindigkeit abgetastet/ausgelesen?!

Falk B. schrieb:
> SPI sollte 4-8 mal höher sein als die Bitrate des Signals. Ausserdem
> muss die Abtastung lückenlos laufen, der PIC hat hoffentlich einen FIFO

Klar hat er FIFO = 128bit, aber das wird mit FIFO nicht funktionieren, 
weil FIFO nicht reicht:
14 x 8bit x 4fache Abtastung = 448bit FIFO werden benötigt!
#4246850
Lesenswert?
• ▲
▼
@ Industry-Sniffer (Gast)

>hab ich da was falsch verstanden:

Nö.

>RxD 4Mbit wird mit SDI Pin von PIC32 verbunden und mit 4-8facher
>Geschwindigkeit abgetastet/ausgelesen?!

Jain! Bei SPI muss der Master immer senden, nur dann wird auch parallel 
dazu empfangen. Du musst also mit 16 oder 32 MHz Dummywerte senden.

>Klar hat er FIFO = 128bit, aber das wird mit FIFO nicht funktionieren,
>weil FIFO nicht reicht:
>14 x 8bit x 4fache Abtastung = 448bit FIFO werden benötigt!

Niemand hindert dich, den FIFO zwischenzweitlich auch mal auszulesen und 
in den RAM zu kopieren. Macht jede gescheite UART-Empfangsroutine so. 
Und da di sowieso bei SPI Daten senden musst, um auch zu empfangen, kann 
man beides sinnvoll kombinieren.
Gast #4246874
Lesenswert?
• ▲
▼
Ok Danke.

Falk B. schrieb:
> Jain! Bei SPI muss der Master immer senden, nur dann wird auch parallel
> dazu empfangen. Du musst also mit 16 oder 32 MHz Dummywerte senden.

ja das ist klar.

Falk B. schrieb:
> Niemand hindert dich, den FIFO zwischenzweitlich auch mal auszulesen und
> in den RAM zu kopieren. Macht jede gescheite UART-Empfangsroutine so.
> Und da di sowieso bei SPI Daten senden musst, um auch zu empfangen, kann
> man beides sinnvoll kombinieren.

das muß ich mal mit SPI ausprobieren, oder vielleicht mit DMA mal 
testen?
#4247000
Lesenswert?
• ▲
▼
Manchester braucht immer erstmal eine Vereinbarung, wie ein Paket 
anfängt.
Z.B. eine Pause und dann immer eine bestimmte Flanke.
Oder ein Strom von 1010-Bits gefolgt von 11 als Start.
Ein Strom von nur 0 oder nur 1 geht nicht, da sich der Empfänger nicht 
darauf synchronisieren kann.
Gast #4247052
Lesenswert?
• ▲
▼
Peter D. schrieb:
> Ein Strom von nur 0 oder nur 1 geht nicht, da sich der Empfänger nicht
> darauf synchronisieren kann.

nicht nur, wenn das Galvanisch getrennt ist (zB. HF-Trafo), dann wurde 
das auch nicht funktionieren.

Aber egal, ich will erstmal mit FIFO oder per DMA testen.
Gast #4247067
Lesenswert?
• ▲
▼
Industry-Sniffer schrieb:
> ... schrieb:
>> Einfach ein Monoflop das vom Datenstrom getriggert wird,
>> unf bei 75 % der Bitzeit die dann anstehenden
>
> wie soll ich die 75% generieren??

Ein UART macht das auch bei 75%. Aber nicht mit einem (zeitgesteuerten) 
Monoflop, sondern mit einer vierfachen Taktfrequenz, wo dann zu jedem 
drittten Taktimpuls das Signal abgesampled wird. Das funktioniert bei 
jeder Frequenz.

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