2014.6.4

前へ
次へ
ホームページトップへ戻る

CPLD+SIMMを使ってUSBプロトコルの解析を!
VHDLを速習! XC95144XL+16MB・SIMMを使ってUSBプロトコルアナライザを作ってしまいました!
主目的は差し迫った事情からUSBプロトコルの解析をすることだったのですが、その手段として選んだのがコレ!


[第60回]


●PIC18F14K50のRead−modify−writeの怪(3)

前回からの続きです。
Legacy8080のPIC18F14K50で発生した異常現象のウラを取るために、簡単なテスト回路とテストプログラムを使って確認をしてみることにしました。
過去記事「PICでUSBを」[第78回]にあったテスト回路とテストプログラムを利用することにしました。
といいましてももう何年も前のことですから、探してはみたのですがどこへいったのやら回路もプログラムもみつかりませんでした。
何。たいした回路ではありませんから、作ってしまいました。



こちらが回路図です。


PICの有難いところは周辺にほとんどパーツを必要としないで、ご覧の通り、ただ電源をつなげばよいという簡便さでありましょう。
さっそくプログラムを書いて試してみました。



上(CH1)がRB5で下(CH2)がRB4です。
おや、今回はRB4もちゃんと出力されているようですねえ。
CH2の信号がなまっているのは、CH2にちょいと安物のプローブを使っているからで、信号そのものがなまっているわけではありません。

下がテストに使ったプログラムです。

;;;pic p18f14k50 test program
;f14k50test2
;10/5/21
;14/6/1
;
;
        #include<p18f14k50.inc>
;cpuclock=16MHz internal oscillator
;
        CONFIG FOSC = IRCCLKOUT,WDTEN=OFF,LVP=OFF;not WDT          
;
        org 00
        movlw 77;clock=16MHz
        movwf OSCCON
        clrf ANSEL;PORTA,PORTC are digital
        clrf ANSELH;PORTB,PORTC are digital
        clrf TRISA;porta=out
        clrf TRISB;portb=out
        clrf TRISC;portc=out
;
        movlw 0ff
		movwf PORTB		
loop
		bcf PORTB,4
		bcf PORTB,5			
        xorwf PORTC
		bsf PORTB,4
		bsf PORTB,5
        goto loop
;
        end

「PICでUSBを」[第78回]で使ったテストプログラムを下敷きにして、そこにRB4とRB5のビットセット、ビットクリア命令を追加しただけの簡単なプログラムです。
とりあえずはそのときのテストと同じ16MHzクロックで試してみました。

ついでですのでLATBレジスタについても試してみました。
PORTBの代わりにLATBに置き換えてみましたが、結果は全く同じ動きになりました。



下がそのプログラムです。

;;;pic p18f14k50 test program
;f14k50test2
;10/5/21
;14/6/1
;
;
        #include<p18f14k50.inc>
;cpuclock=16MHz internal oscillator
;
        CONFIG FOSC = IRCCLKOUT,WDTEN=OFF,LVP=OFF;not WDT          
;
        org 00
        movlw 77;clock=16MHz
        movwf OSCCON
        clrf ANSEL;PORTA,PORTC are digital
        clrf ANSELH;PORTB,PORTC are digital
        clrf TRISA;porta=out
        clrf TRISB;portb=out
        clrf TRISC;portc=out
;
        movlw 0ff
		movwf PORTB		
loop
		bcf LATB,4
		bcf LATB,5			
        xorwf PORTC
		bsf LATB,4
		bsf LATB,5
        goto loop
;
        end

今回のテスト結果を見る限りではPORTBに対するBCF、BSF命令で、read−modify−writeの影響があるようには見えません。
さて、どういうことでしょう。

次回、ついにことの真相が明らかになります。

CPLD+SIMMを使ってUSBプロトコルの解析を![第60回]
2014.6.4upload

前へ
次へ
ホームページトップへ戻る