私は最近、クライアント用のPCBを設計しました。ハードウェアとソフトウェアはすべて問題ありません(アプリケーションは想定どおりに動作しています)。現在、マイクロコントローラー内のプログラムを更新する必要に直面していますが、これらのPCBは世界中のさまざまな場所にインストールされているため、ブートローダーをインストールし、アプリケーションで使用されるのと同じUARTを使用するのが最適です。
ボードの説明
- AT32UC3L032
- ボードとPC間の通信にすでに使用されている1つのUART
- アプリケーションのI / Oのカップル
- 状態LEDのカップル
関連するPINと構成
PA01 # Used for entering ISP with high level
PA20 # Used for application and ISP UART
PA21 # Used for application and ISP UART
#define COM_USART (&AVR32_USART2)
#define COM_USART_RX_PIN AVR32_USART2_RXD_0_0_PIN
#define COM_USART_RX_FUNCTION AVR32_USART2_RXD_0_0_FUNCTION
#define COM_USART_TX_PIN AVR32_USART2_TXD_0_0_PIN
#define COM_USART_TX_FUNCTION AVR32_USART2_TXD_0_0_FUNCTION
#define COM_USART_IRQ AVR32_USART2_IRQ
#define COM_USART_BAUDRATE 115200
使用したツール
- Windows XP
- Atmel Studio 6.1
- AVRONEプログラマー
何時間も検索した後、ASF 3.14.0.834で提供されているAtmel Software Framework DFUを見つけました。有望そうに見えましたが、付属のツールを使用してボードにインストールすることができました。
- AVR32Studio 2.6.0
- program_at32uc3l-uart-isp-1.0.1.cmd(ASFで提供されるスクリプト)
- フリップ3.4.7(batchisp)
最初は、スクリプトを使用してインストールされたASF を使用.bin
および.dat
提供しました。batchispコマンドを使用してアプリケーションをアップロードしようとしています:
batchisp.exe -device at32uc3l032 -hardware RS232 -port COM1 -baudrate 115200 -operation erase f memory flash blankcheck loadbuffer myapp.hex program verify
しかし、常に取得:
Device selection.................... PASS
Hardware selection.................. PASS
Opening port........................ PASS
Synchronzing target................. FAIL Timeout error.
UARTのオシロスコープRXおよびTXでテストしました。データはボードに送信されますが、PCは27kHzの方形波を受信します(ストップビットなどがないため、UARTからのデータは受信できません。また、周波数はおそらく同じではありません115200bps)。
さらに調査した後、これらの値を取得するように構成Word1
しWord2
、ファイルに格納at32uc3l-uart-isp_cfg-1.0.1.dat
しました。
- Word1:0xE11E0024
- Word2:0x494F81AA
PA01
ISPに入力するオプションとしてピンを使用するには。
また、Atmel Studio 6.1でDFUのソースをロードし、同じシリアルポート構成を使用していないことに気づいたため、私のアプリケーションと同じように変更しました。また、DFUのメイン内にいくつかのLEDトグルを追加しました。
ボードのブートローダーを更新した後、LEDは変更されず、同じタイムアウト、同じ矩形波になります。
何か不足していますか?