parallel seriell wandler

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

parallel seriell wandler

Beitrag von PIC18F2550 »

Hallo,

ich suche ein PASM schnippsel der einen longwert seriell an einem Pin ausgibt.

Meine Suche bei Parallax brachte zwar ein paar Infos aber das Kernthema ist mir nicht aufgefallen.
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
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: parallel seriell wandler

Beitrag von PIC18F2550 »

Das ist mein Versuch, da kein Proppeller zur Hand :oops: ist es ungetestet.

Code: Alles auswählen

DAT
entry
            org 0

            mov     sadr,   par
            mov     outa,   #$000           'P0 auf 0 setzen
            mov     dira,   #$001           'P0 als Ausgang
loop
'--------------------------------------------
            mov     outa,   #$001
            mov     temp,   loopx
loop1
            djnz    temp,   #loop1  wz
'--------------------------------------------
            mov     outa,   #$001
            mov     temp,   loopx
loop2
            djnz    temp,   #loop2  wz
'--------------------------------------------
            rdlong  temp,   sadr
            cmp     temp,   #$000   wz
    if_z    jmp     #loop
'--------------------------------------------
            mov     pos,    sadr
            add     pos,    #001            '
            mov     posz,   #032            '32 longwerte ausgeben
loop3
            mov     bitz,   #032            '32 Bits ausgeben
loop4
            rdlong  wert,   pos
            add     pos,    #001
'--------------------------------------------
            mov     outa,   #$001
            mov     temp,   looph
loop5
            djnz    temp,   #loop5  wz
'--------------------------------------------
            mov     outa,   wert
            shr     wert,   #001
            mov     temp,   loopx
loop6
            djnz    temp,   #loop6  wz
'--------------------------------------------
            mov     outa,   #$000
            mov     temp,   looph
loop7
            djnz    temp,   #loop6  wz
'--------------------------------------------
            djnz    bitz,   #loop4  wz
            djnz    posz,   #loop3  wz
            jmp     #loop
'--------------------------------------------
temp    long    0
wert    long    0
pos     long    0
posz    long    0
bitz    long    0
sadr    long    0
loopx   long    40000
looph   long    loopx/2

            fit $1ff
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: parallel seriell wandler

Beitrag von yeti »

Ich bin grad noch nicht wach genug zum selber denken (ich arbeite noch am Koffeinpegel...) und hab daher nur mal 'n bissl im Forum jenseits der Riesenpfütze rumgestochert und diese Lösung in Assembler für C entdeckt: http://forums.parallax.com/showthread.p ... ost1326959

Die kriegst Du doch sicher ins Spin/PASM-Land übersetzt... da bin ich hoch optimistisch...
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: parallel seriell wandler

Beitrag von TuxFan »

Moin moin!
PIC18F2550 hat geschrieben:Hallo,
ich suche ein PASM schnippsel der einen longwert seriell an einem Pin ausgibt.
Meine Suche bei Parallax brachte zwar ein paar Infos aber das Kernthema ist mir nicht aufgefallen.
Schau Dir mal die Schreib- und Leseroutinen in Assembler von Kwabena W. Agyeman in der FAT-Engine an. Die machen ja nichts anderes wie parallel-seriell- (Schreiben) bzw. seriell-parallel-Wandlung (Lesen) für SPI-Bus.
Siehe hier : http://obex.parallax.com/object/16
Du mußt nur von byte auf long erweitern. Siehe unten im Assemblerteil die writespi und readspi Routinen nebst anderem wichtigen Zubehör.

So jetzt muß ich aber wieder an meine Grobmotorikbaustelle.
Gruß
TuxFan
Wunder gibt es immer wieder.......
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: parallel seriell wandler

Beitrag von PIC18F2550 »

:SCHRAUBEN ich glaub der MUXC ist die Lösung.
Muss ich morgen mal testen.

Danke.
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: parallel seriell wandler

Beitrag von kuroneko »

Code: Alles auswählen

        movi    ctra, #%0_00100_000       ' NCO
        movs    ctra, #pin
        max     dira, mask                ' counter now drives pin

        mov     phsa, data                ' bit 31 now appears at pin
        mov     bcnt, #31+1               ' 31 bits left (plus back to idle)

        shl     phsa, #1                  ' next bit/idle
        djnz    bcnt, #$-1                ' for all of them

        waitpeq $, #0

mask    long    |< pin
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: parallel seriell wandler

Beitrag von PIC18F2550 »

Danke kuroneko für den Tipp.
Leider ist das Bit mit einer zeitlichen Maskierung versehen so das phsa nicht geht.
Ein Bit besteht am ende aus :
1/6 H
2/6 Bit Info
2/6 Bit Info negiert
1/6 L

Hintergrund : Ich möchte verschiedene Daten meines multicopters über den bislang nicht genutzten Audio Kanal des Fpv Systems übertragen.
Die Maskierung sorgt für eine symmetrische signalübertragung.
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
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: parallel seriell wandler

Beitrag von PIC18F2550 »

Was hab ich mir den hier für einen Schwachsinn ausgedacht neeeee
Das ist doch ein Audio und kein Glasfaser.

Bei der Audioübertragung muss ich aufpassen das die Anteile von H und L Pegel in einer schmalen Zeiteinhet immer gleich sind.

Das erreicht man mit unterschiedlichen Frequenzen und einem Tastverhältnis von 1:1.

Ebenso sollte die höhere Frequenz nicht dem Vielfachen der unteren Frequenz entsprechen.
Sonnst besteht die Gefahr durch Verzerrung der Grundfrequenz versehendlich die höhere erkannt wird.

z:B. 600/1000/1325Hz Space/0/1

Also
1. Frequenz/Periodendauer Festlegen abhängig ob eine 1 ofer eine 0 übertragen wird ansonsten wird der space Wert geladen.
2. Ausgabe einer H und L Periode.
Ferdig.

Auf der Empfangsseite muss mann sich nicht um die Phasenlage kümmern da ja die information in beiten enthalten ist.
Einfach die Impulsbreite messen und schon ist alles klar.
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
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: parallel seriell wandler

Beitrag von TuxFan »

Moin,
Dein letzter Beitrag hat jetzt aber völlig andere Randbedingungen als der erste Beitrag.
Wenn Du einen fertiges Transmittermodul für die Drohne und ein Empfänger Modul für die Bodenstation nimmst brauchst Du Dir doch um ein Übertragungsverfahren wie FSK keine Gedanken machen. Byte, Word oder long seriell ins Modul rein und beim Empfänger wieder Raus. Dazu gibt es fertige briefmarkengroße Module und fertige Libs. Vieĺeicht geht es auch mit den WLAN Modulen mit ESP8266 bei Reichweiten von 300 bis 400m.
Vielleicht willst Du aber noch was ganz anderes, was man aus deinen Beiträgen aber nicht erkennen kann?!
Gruß
TuxFan
Wunder gibt es immer wieder.......
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: parallel seriell wandler

Beitrag von PIC18F2550 »

Ja TuxFan ich weiß.

Leider bin ich mit dem Projekt schon weiter als die hinterlassenen Fragen für einen Rattenschwanz so nach sich ziehen.

Die Frage war eigentlich schon mit dem MUXC beantwortet so das ich erst mal keinen weiteren Erklärungsbedarf sah.

Kuroneko zeigte noch einen anderen Weg so das ich noch etwas aus dem Entwicklungsstand erzählte.

Die WLAN Module haben nicht die Reichweite (1000m) des weiteren würden die Module die Empfänger (2,4GHz) bei größeren Entfernungen stören.

Das FPV-System arbeitet mit 5,8Ghz das besitzt bessere Ausbreitungseigenschaften.
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