synchronisation von mehreren COGs

Allgemeine Themen rund um den Propeller Mikrocontroller und Elektronik
Antworten
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

synchronisation von mehreren COGs

Beitrag von PIC18F2550 »

Hallo,

Wie synchronisiere ich mit PASM 4 COGs.

Ideal wäre wenn alle Flankengleich laufen würden.
Ich glaube aber das das nicht möglich ist.

Also suche ich nach einer Variante wo der Versatz bekannt ist.

Mir fällt nur eine externe Methode mit waitpeq ein.
Ich glaub das auch einige VGA-Treiber so was benutzen nur aber wie?

Es werden nur Daten eingelesen und keine Ausgegeben.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: synchronisation von mehreren COGs

Beitrag von yeti »

Theoretisch müsste CNT zum Synchronisieren reichen.

...aber z.B. Hub-Zugriffe haben variable Längen und das ist Teufelszeuch fürs Cog-Synchronschwimmen...

Der Thread "Propeller DEMO: SYNCing multiple COGs together...and...SYNCing multiple Propell###!!!Titel-zu-lang-Mööööp!!!###" macht sich darüber Gedanken...
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: synchronisation von mehreren COGs

Beitrag von PIC18F2550 »

Danke yeti,

An das CNT habe ich erst mal nicht gedacht.
Das werde ich nächstes Wochenende mal Testen.

Auf dem ersten Blick sieht es aber gut aus.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: synchronisation von mehreren COGs

Beitrag von yeti »

PIC18F2550 hat geschrieben:An das CNT habe ich erst mal nicht gedacht.
Das werde ich nächstes Wochenende mal Testen.
...und dann erfahren wir auch, woran Du in Deiner Häxxerküche köchelst?

Ich sterb doch jetzt schon fast ganz nah an bald mal kurz vor Neugier...
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: synchronisation von mehreren COGs

Beitrag von PIC18F2550 »

4x 8.42 Meg Baud als 4Bit Parallelbus. :SCHRAUBEN

<EDIT>
Die Variante mit mehreren Cogs ist gerade in den Eimer gerutscht.
Das Testmodul für den HIVE kann ca 32Mb mit nur einem COG auf dem Bus schaufeln.

Code: Alles auswählen

DAT
              org 0
RXPropeller
              rdlong    tempRx, DataIndexRx     wz
        if_z  jmp       #RXPropeller

SYNC_Start    waitpeq   $0001, $0001            'Wait for SYNC - HIGH
              waitpne   $0001, $0001            'Wait for SYNC - LOW

              mov       tempRx, ina        '  4
              and       tempRx, #$0FF      '  8
              mov       BuffRx, #0         ' 12
              or        BuffRx, tempRx     ' 16
              mov       tempRx, ina        ' 20
              and       tempRx, #$0FF      ' 24
              shl       BuffRx, #8         ' 28
              or        BuffRx, tempRx     ' 32
              mov       tempRx, ina        ' 36
              and       tempRx, #$0FF      ' 40
              shl       BuffRx, #8         ' 44
              or        BuffRx, tempRx     ' 48
              mov       tempRx, ina        ' 52
              and       tempRx, #$0FF      ' 56
              shl       BuffRx, #8         ' 60
              or        BuffRx, tempRx     ' 64

              wrlong    BuffRx, DataIndexRx'Write Data Value to Indexed location

              mov       tempRx, #0         'Clear the Ready Flag
              wrlong    tempRx, DataIndexRx

              jmp       #RXPropeller

'initialized variables

'uninitialized variables
DataIndexRx   long      0
BuffRx        long      0

'aliased variables
tempRx
              fit
Irgend wie fehlt noch der Quittungsimpuls. :shock:
</EDIT>
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Antworten