広告 FT232RLの問題FT232RLが認識しないという問題があった。 [89967.666991] usb 6-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 [89971.127451] usb 6-1.2: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1 [89971.127954] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 [89971.127962] ftdi_sio 6-1.2:1.0: device disconnected どうも「brltty」というのが悪さをしているらしい。 # killall brltty とやったらこの問題は解決された Arduinoの問題continue form: [Arduinoのブートローダーをコンパイル]
前の記事でプログラムを書き込めないのはハードには問題なさそうと書いてしまったけど、実際には恥ずかしながらハードに問題があった TTLレベルで入力するところにRS-232Cレベルで入力してしまっていた。 avrdude: stk500_recv(): programmer is not responding って出るはずだ。 なぜこんなことになったかと言うとUSB経由でFT232RLで書き込む予定だったけど、FT232RLが認識しなかったので、USB-シリアル変換ケーブルで書き込みしてしまっていた。 それでも昔のボードに書き込めそうな雰囲気が出ていたので、気づかずに使ってしまっていた。 FT232RLを認識するようになったのでFT232RLから書き込んだら何の問題もなく書き込めた。 Category: [Arduino] - 11:43:50
Arduinoのブートローダーをコンパイル久しぶりにArduino互換ボードを作り、ブートローダーを書き込んでArduino IDEからプログラムを書き込もうとしたら avrdude: stk500_recv(): programmer is not responding というエラーが出て書き込めない。 ためしに以前作ったボード(動いていたボード)で試したが、今度は avrdude: stk500_getsync( ): not in sync: resp=xxxx というエラーが出てやはり書き込めない。 その以前作ったボードに再度ブートローダーを書き込んだら avrdude: stk500_recv(): programmer is not responding と新しいボードと同じエラーがでた。この辺でどうもハードの問題っぽくないかもと考えた。 もしかするとArduinoのバージョンが変わったためにうまくいかないのかと思い、再度ブートローダーをコンパイルした。ブートローダーのコンパイルに関しては、ここにまとめている ところが新しくコンパイルしたブートローダーを書き込もうとするとエラーが出て書き込めない。 以前はちゃんとコンパイルできて、ちゃんと書き込めたのに今はできなくなっている。 結局ブートローダーのコンパイルに関してはHow to: Compiling the Arduino Bootloaderに書いてある通り、ATmegaBOOT_168.cの584行目付近を #if defined(EEPE) while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete #else while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete #endif /* #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete #else while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete #endif */ と変える。これは「error: ‘EEWE’ undeclared」というエラーを出さないようにするため そしてMakefileの52行目付近で OPTIMIZE = -Os # OPTIMIZE = -O2 と変える。これは上述したコンパイル後のhexファイルが以前のものの2倍近くになっているという問題を解決してくれる。 で、このようにコンパイルしたブートローダーを書き込むとうまく行く。 しかし、相変わらず avrdude: stk500_recv(): programmer is not responding というエラーが出てArduino IDEからプログラムを書き込むことができない 以前うまく行ったときとの違いはArduinoのバージョンとかavrdude関連だと思う continue on: [Arduinoの問題]
広告 |