1

これは、私を助けてくれる人がここにいる可能性があるため、Arduino フォーラムに投稿したのと同じ質問です :) 私はプロジェクトに SparkFun の Arduino Pro Micro 3.3V/8MHz を使用しています。ドライバーをインストールし、IDE にボードのサポートを追加し、スケッチをボードにアップロードしようとしましたが、問題なく動作しました。通常のポートは COM5 で、アップロード ポートは COM6 であるため、ボードに同梱されているブートローダーは、アップロード用に個別のシリアル ポートをエミュレートしていることに気付きました。このプロジェクトでは、コードの最適化が最も重要なので、UNO で既にうまく使用していた Atmel Studio に移行しました。レジスタと関数を使用して、Micro 用の単純な点滅コードを作成しました。

#define ledpin PC6

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{       
    DDRC |= (1 << ledpin);

    while(1)
    {
        PORTC |= (1 << ledpin);
        _delay_ms(1000);
        PORTC &= ~(1 << ledpin);
        _delay_ms(1000);
    }
}

avrdude で次のコマンドを使用して、Atmel Studio から問題なくアップロードできます。

C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude -C"C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf" -v -v -patmega32u4 -cavr109 -P\\.\COM6 -b57600 -D -Uflash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i

これを行うには、接続ガイドが示唆しているように、リセット ボタンを 750 ミリ秒以内に 2 回押す必要があります ( https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup- guide/troubleshooting-and-faq#ts-reset )。

コードは機能しますが、通常のシリアル ポート (COM5) が戻ってこないことに気付きました。原因は何ですか?新しいコードを Micro にアップロードできるので、ブートローダーは問題ないはずです。

事前に助けてくれてありがとう:)

4

1 に答える 1

1

私は一種の解決策を見つけました。私がArduinoフォーラムに投稿したように:

pro micro を SparkFun から届いた状態に戻すことができました。

そのために、Arduino Uno を ISP として (ArduinoISP の例で) 使用し、Micro の MISO、MOSI、SCLK、および RST ピンに接続し、Arduino IDE を介してブートローダーをアップロードしました。最初に、次のようなエラーが表示されました。

avrdude: verification error, first mismatch at byte 0x0000 0xfe != 0xce

次に、boards.txt が使用するヒューズ ビットを指定していることに気付いたときに、Pro Micro でヒューズ ビットを設定する方法を調べました。「extended_fuses=0xfe」を「extended_fuses=0xce」に変更し、IDE を再起動して、ブートローダーのアップロードを再試行するだけで済みました。ついに、成功!それをテストするために、IDE で簡単な UART "Hello world" アプリケーションを作成しましたが、問題なく動作しました。

ブートローダをアップロードするときは、正しいボード (SparkFun 3.3V/8MHz) が選択されていることを確認し、ISP Arduino の COM ポートを選択してください。

于 2014-06-30T19:12:23.943 に答える