Hallo!
Ich denke, dass die Hardware schon nicht geändert wird. Ich schätze, dass nach der Detection gewählter Flanke, das Ablegen der Eingangsdaten in den RAM des PIC´s wird nach ca. 10 Systemtakten starten. Deswegen muss man die Daten um ca. 5 Takten des FIFO´s verzögern (Takt des FIFO´s = Systemtakt/2). Es scheint möglich zu sein den FIFO aus 4 Schieberegister 74HC164 zu erstellen. Sie sind 8 bit lang, was ergibt max. Verzögerung um 16 Systemtakte. Vorteil ist, dass sie nach jeder Stufe Ausgang haben, und man kann hardwaremässig die Verzögerung festlegen, was die Software vereinfacht. Ich habe die Version auch schon geskizzed und werde sie wahrscheinlichst anwenden.
MfG
Code:
VCC 1,2.--------.13
+ /-------|74HC164 |------->D0
Ri 330 | | /----|IC5 |--\
____ /->|---o | | 8'--------'9 |
K1 >--|___|-+-------|-o-/ | 1,2.--------.13|
\-|<-\ | | /--|----|74HC164 |--|---->D1
Ri 330 | | | | o----|IC6 |--o
B ____ /->|-|-o | | | 8'--------'9 | z
K2 >--|___|-+-----|-|---/ | 1,2.--------.13|
\-|<-o | | /--|----|74HC164 |--|---->D2
u Ri 330 | | | | o----|IC7 |--o
____ /->|-|-o | | | 8'--------'9 | u
K3 >--|___|-+-----|-|---/ | 1,2.--------.13|
c \-|<-o | | /--|----|74HC164 |--|---->D3
Ri 330 | | | | o----|IC8 |--o
____ /->|-|-/ | | | 8'--------'9 | m
h K4 >--|___|-+-----|-----/ | .-----.14\ +VCC
\-|<-o | \----|74HC |/1|
8x | | 12| 73 o--|-------<SCK
s 1N4148 === | VCC |IC3/1|--o
MD >-----------\ GND | + '--o--'3 |
| | | 2| | P
e | | \--o--o---o-----/
| | | 7|.-----.
GND >-\ | | |5 \|74HC |----\ _
| | o-----|---o 73 |9 | |_ I
=== | | /--|---|IC3/2| o
GND | | | | 10'--o--' ----o->SLP
| | === | 6\----\ o _
| | GND o-----\4 | | _| C
| | | 2.--o--.5| |
| | \---|74HC |-|--/
| \---------| 74 | |
| 3'--o--' |
LA Input | IC2/1 1\---o--------<CTR
\ -------------------------------->MD
Lesezeichen