ja1yaz’s diary

感動したいおやじの備忘録的ブログ 

JDS6600をRaspberrypiでちょっと使ってみた その2 

前回の試みで、大まかには使えそうなことが分かった。

しかし、同時に任意波形は2048ポイント固定であることも判明した。

手始めに疑似ランダム符号を作ってみようと考えた。

でも、2の累乗じゃないんだよね。波形長が。

PRBS11だと2047ポイントなので、最後の1ポイントはゼロでいいやということにしてやってみた。

例によってPython初心者のオヤジなのでいろいろググりながらのプログラミングになる。しかし、どうしてもわからなかったのが、LISTの最初の項目をプラスするという、レジスタをシフトするやり方だった。しかしエイヤーでやってみたのがソウをこコウしたようだ。困難でほんとによいの?

import serial
from time import sleep
ser= serial.Serial('/dev/ttyUSB0', baudrate=115200, timeout=3.0)

cmd=':w20=0,0.\r\n'        #Output=off
bcmd=cmd.encode()
ser.write(bcmd)
a=ser.readline()
bcmd=a.decode()
print(bcmd)

 

 

c=0
cmd=''
prbs_reg11=[1,1,1,1,1,1,1,1,1,1,1]          #PRBS11 modoki signal 
while c<2047:
    temp=prbs_reg11[8]^prbs_reg11[10]     
    prbs_reg11=[temp]+prbs_reg11    
    c=c+1
    if c<2047:
        cmd=cmd+str(temp*4095)+','
    else:
        cmd=cmd+str(temp*4095)
        
cmd=':a05='+str(cmd)+'.\r\n'             #write to Arbmem 05 
print(cmd)
bcmd=cmd.encode()
ser.write(bcmd)
sleep(0.05)
bcmd=''
a=''
a=ser.readline()   
bcmd=a.decode()
print(bcmd)

cmd=':w21=105.\r\n'       #waveform=Arbmemory 05
bcmd=cmd.encode()
ser.write(bcmd)
a=ser.readline()
bcmd=a.decode()
print(bcmd)


cmd=':w23=1950000.\r\n'     #Repeat Freq=19.5kHz
bcmd=cmd.encode()
ser.write(bcmd)
a=ser.readline()
bcmd=a.decode()
print(bcmd)


cmd=':w20=1,1.\r\n'
bcmd=cmd.encode()
ser.write(bcmd)
a=ser.readline()
bcmd=a.decode()
print(bcmd)

ser.close()

 

これで信号が作成できたようだ。

JDS6600_PRBSもどきを作成してみた

これにより任意波形の作成もできたようだ。

でも、本物ではないのが残念だなー

PRBSもどきの信号をオシロスコープで確認

1/19500000*11=275ns

大体あってるかな。まあ、飽く迄もどきなので・・・

相関関数どうなってんだろうね。まあいいや。