hns - 日記自動生成システム - Version 2.19.9

先月 2012年01月 来月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2012年01月16日(月) 旧暦 [n年日記] [更新:"2012/01/17 23:25:39"]

#1 [工作] AVR ATtiny2313 で直列通信

先日 書いた 通り Peter Fleury さんの uartlibrary.zip を使って RS-232/C の口で通信するようにして見た。
結果的には実に簡単だったのだけれど、 実は STK500 の良く説明を読んでいなくて、 一か所接続が必要なことに気が付くのに時間がかかった。
これはオシロスコープで波形を見る必要があるかな、 としばらく考えていたが、結局、普通の (安い) デジタル・マルチメータで電圧を測って入出力を確認したら、 間違いに気が付いた。 (RS232 の線に直線か交叉線のどちらが必要なのかも良く理解していない問題を含む)
STK500 に ATtiny2313 を挿して内蔵の 1MHz クロックで、 RS-232/C の口での通信を試すには
  • uartlibrary.zip の test_uart.c の次の行を変更しておく
    -#define F_CPU 4000000UL
    +#define F_CPU 1000000UL
    
  • STK500 の基板上の PD0/PD1 を すぐ近くの RS232 SPARE と書いてあるピンに つないでおく (左側の写真)
    PD0 / PD1 ->  RXD / TXD (二本を並行に接続)
    
  • STK500 の基板の RS232 SPARE と書いてある口に、 直線 (Straight cable) で PC とつなぐ、速度は 9600 bps
これで Build して 書込むと、直列線をつないだ方の PC に表示が出る。 その後は入力した文字を返して来る。もっといろいろ工夫されているが、 僕は、ここまで。
右側の写真の中で、上にあるのが通信用の Let's Note R4。xterm の窓で cu -l /dev/dtyU0 している。また左側にあるのは AVR Studio 4.0 が動いている PC (VM Fusion の上の XP で試している)。LCD 部品が写っているが、この時には使っていない

LCD + UART はまだうまく行っていない:

この後 lcdlib と uartlibrary を合せて、簡単な確認をするコードを書いて見たが、 (僕の作ったものでは) どうも delay を使っている部分が、動いていない気がする。いや、delay でなくて、
    while ( (c=lcd_read(0)) & (1<<LCD_BUSY)) {}
ここがおかしい (抜けて来ない)。RS232 側に入力があると、抜けて来る。 ピン接続は 以前に示した覚え と同じ。 lcd_read で読むポートは PB0 で、
#define LCD_BUSY  7  /* DB7: LCD is busy */
DB7 は PB3 から読んでいる。 ちなみに同じコードは、Serial 無で LCD だけを動かした時には 期待通り動作する。

1 pin だけ入力になっている I/O ポートの他の bit に出力:

PD0 は Serial の RXD になっている。ここの他の(実際には上の) 4 bit に出力する場合に、
#define lcd_e_high()    LCD_E_PORT  |=  _BV(LCD_E_PIN);
#define lcd_e_low()     LCD_E_PORT  &= ~_BV(LCD_E_PIN);
#define lcd_e_toggle()  toggle_e()
こんなことして大丈夫なのかな。(_BV は bit_value の意味だと思う。bit_position_value かな) PD0 に前回書いた値を覚えていて、それを使う必要があるのでは ?
入力ピンだから、何を書いても大丈夫 ?
このような使い方は、多分普通なので、あまり心配しなくても動くはず、 と考える方が自然だと思う。

上の while 文の付近だけ割込禁止にする必要があるのかな:




最近の日記
2024年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)