Armadilloフォーラム

UARTのエコーバック

a-mizutani

2015年12月3日 17時07分

お世話になっています、ディテクトの水谷です

ArmadilloとFPGAを接続して開発をしています

Armadillo840のCON8をFPGAと接続しています
SCIFA_RXD_4とSCIFA_TXD_4にFPGAのUARTを接続する事を試みています

Armadillo840からFPGAへはC言語のfopen("/dev/ttySC4","w")によってオープンしたデバイスに
書き込む事でFPGAがデータを受信していました

ところがFPGAからUARTにデータ送信をすると
送ったキャラクタが全てFPGAに戻ってきます
Armadillo側ではfopen("/dev/ttySC4","r") によってデバイスを開き
fgetc(fp)によってキャラクタ受診を待機させているのですが
Armadilloはデータを受信していません

こういう事が起こりうるでしょうか?

コメント

at_yuma.arakawa

2015年12月4日 10時32分

> ところがFPGAからUARTにデータ送信をすると
> 送ったキャラクタが全てFPGAに戻ってきます
> Armadillo側ではfopen("/dev/ttySC4","r") によってデバイスを開き
> fgetc(fp)によってキャラクタ受診を待機させているのですが
> Armadilloはデータを受信していません
>
> こういう事が起こりうるでしょうか?

termios設定でECHOが有効である場合、そのような現象が起こり得ますので、
無効化してみて下さい。

termios設定項目についての詳細や、設定変更の方法は
man 3 termios で確認できます。

齊藤と申します

エコーバックの兼は既に回答があったので、データが読み取れないというほうについて:

これもtermiosの設定の問題で 行モード(ICANON)になっていて、改行文字が来るまでデータが読み取れない動作モードになっていることが疑われます。

普通はRAWモード(cfmarkraw()など)にするのですが、出力側の処理も連動して変わってしまうので今回は出力側の都合も考える必要が有ります。