問題タブ [lpc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - LPC1788: SPI を使用した UFDC-1 との通信
私は LPC1788 マイクロコントローラーを使用しており、SPI を使用して UFDC-1 (ユニバーサル周波数からデジタルへのコンバーター) からデータを送受信しようとしています。MOSI を介してデータを送信することはできますが (オシロスコープでこれを確認しました)、「精度を取得する」などの命令を送信するたびに、データ バッファーにあるデータはデータまたは命令のみです。送ったばかりです。「ループバック」は無効です。
これは私が持っているコードです:
編集:これは、「精度の設定」命令 (0x020A) を送信した後のすべての SPI ラインのキャプチャです。ここでは、MISO 全体のデータは無意味であると予想されます。必要に応じて、他の命令のキャプチャを作成できます。
上から下まで:
- 味噌
- モシ
- SS
- SCLK
編集 2: 具体的には、UFDC-1 の精度を命令 0x020A で設定することです。その最後の部分 (「0A」) は精度の数値です。その後、その精度を読み取ろうとする while ループがあります。「精度を取得」命令は 0x01FF で、「FF」は精度数値を読み取るために送信されるダミー バイトです。したがって、「0x01FF」を送信すると、UFDC-1 から返されたデータのどこかで「0A」が読み取られると予想されます。
編集 3:これは、「精度を取得する」命令を初めて UFDC-1 に送信したときの SPI ラインのキャプチャです。青い線 (上から 2 番目) は MOSI であり、間違いなく正しいコマンド (0x01FF) を示しています。これが正常に機能していた場合、UFDC-1 は、MOSI が「FF」を送信するのと同時に、精度の数値である「0A」(0b00001010) で MISO を介して応答するはずです。代わりに、その時点で「1A」が返されます。「A」が実際に UFDC-1 から送信されているとは思いませんが、以前に送信した「精度の設定」命令 (0x020A) から送信されたものです。これは、「精度を取得する」命令が while ループに入っていて、読み取っている定常状態の値が「0x7F00」であるためです。
これは私の出力がどのように見えるかです:
編集: CPOL および CPHA ビットに問題があることがわかりました。それらは両方とも 0 から 1 に変更されました。これにより、SPI コントローラーが UFDC と適切に対話できるようになります。
残っている 1 つの問題は、SPI が MISO でランダム データをクロックすることです。たとえば、"0xedff" 以外は返されないと予想される while ループがあります。代わりに得られるものは次のとおりです。
arm - lpc1768でデータをダウンロード
C プロジェクトの hex ファイルがあります。この hex ファイルを LPC1768 のフラッシュにダウンロードし、実行時にコードで使用する生データをダウンロードしたいと考えています (コード内のデータを初期化するため)。ボードに書き込むと、実行時に LPC1768 がメモリ上のフラッシュからデータをコピーします。
問題 1: jflash を使用して、16 進ファイルで生データをダウンロードする方法は?
問題 2: 生データがメモリにコピーされた場所を見つけて、ランタイムで使用するにはどうすればよいですか?
embedded - lpc1788 mips を計算する
lpc1788 ボードの mips を計算したことがありますか? 最近、ROMで実行されている次のコードを介して結果を計算しました:
遅延:
IAR IDE では、loops_per_ms が 39936 で mips が 79M になりましたが、Keil では loops_per_ms が 29952 で、これは mips が 59M であることを意味します。
MCU の速度は 120MHz に設定されています。データシートによると、MIPS は 1.25x120=150M である必要があります。ROM で実行されているコードが mips を遅くしていると思います。
体にコメントやその他の結果がありますか?
c - NXP LPC17xx ADC の動作するコードを書いた人はいますか?
NXP LPC1788 マイクロコントローラーを使用しており、アナログ チャンネル 0 ~ 7 で ADC 測定を実行できるコードを作成しようとしています。私が今持っているコードは次のとおりです。
遅延により、コードは機能しているように見えますが、任意の遅延は望んでいません。私は何時間もコードをいじっていましたが、なんらかの理由で、遅延が発生するとオーバーラン フラグが設定されます (つまり、関数が正しい値を出力しているときにオーバーランについて不平を言います)。
アナログ チャネル 0 のみに電圧を印加しています。これは、遅延が含まれている場合に得られる出力です。
含まれていない場合:
すべての ADC チャネルを実行して、任意の遅延なしでできるだけ早く値を記録できるようにするコードを書いた人はいますか?
spi - lpc1788 ssp (SPI) - proc から proc への通信
ある proc (マスター) から別の proc (スレーブ) に文字列を送信し、スレーブから文字列を読み取りたいと思います。
現在、lpcをマスターとして、arduinoをスレーブとして使用して、arduinoとLPC1788を混同しています。LPC が正しく送信した文字列は、ISR で arduino によって受信されます。ループ関数では、すべての文字が受信されたかどうかを確認してから、文字列を送り返そうとします。LPC 側では、何らかの理由で ISR が機能していません。SRを次のように設定しました
そのため、LPC から文字列を送信した後に遅延を設定し、arduino からの読み取りを開始しました。
文字列を送信するためにLAで見たものは次のとおりです。
しかし、Arduinoからの文字列の読み取りは奇妙に見えます(文字列は「Pong\n」である必要があります。受け取ったのは常にPであるとは限りません...さまざまです)
問題の大部分は、SPI バッファの送信と読み取りの同期内にあると思います。LPC で機能的な ISR を使用せずにそれを達成するにはどうすればよいですか?
lpc - lpcxpresso UART と DMA
ベースボードなしで 1769 lpcxpresso ボードで UART と DMA を使用した経験のある人はいますか? FIFO バッファを送信することはできますが、受信した文字を確認することはできません。問題がある場合は、MCB1700、DMA-UART サンプル コードを使用しています。これを機能させるためのコード例を入手できる場所はありますか?
lpcxpresso code_red に付属の MCB1700 サンプル コードを使用しています。これは、RS-232 ケーブルと 2 つの DMA チャネルを介して UART0 と UART1 を使用します。しかし、2 つのポートを接続するための RS232 接続はベースボードにありますが、私にはありません。ブレッドボードのワイヤを使用して、UART0 TX を UART1 RX に接続し、UART1 TX を UART0 RX に接続しています。UART1 から 16 バイトの FIFO バッファを受信したことが通知されましたが、UART0 が UART1 に送信するときに、他の DMA チャネルで文字を受信したことを示すフラグが設定されていません。何かが正しく初期化されていないのではないかと思っています
c - pcb からの Hex ファイル転送
NXP lpc1769 デモ ボードを使用して小さなプロジェクトに取り組んでいます。CodeRed の LPCExpresso 5 を使用してプログラムしていますが、アプリケーションの hex/bin ファイルをボードから PC に転送できるかどうかを知りたいです。IDE またはその他のソリューションを使用します。
前もって感謝します!
c - lpc1768 の tftp サーバークライアントの例
LPC1768コントローラーのイーサネット経由でMMC / SDカードのファイルをPCに転送するためのTFTPクライアントを動作させようとしています。TFTP の場合、TFTP サーバーに接続するには 2 つのポートが必要です。LPC1768 Web サーバーの例に付属する TCP/IP スタックを使用しています。一度に 2 つのポートを開くことは可能ですか..試してみましたが、機能しません。
OSレスで動作するマイコン用TFTPクライアントのサンプルプログラムやチュートリアルはありますか? または代替プロトコル?
arm - LPC1769 ハードフォルトを引き起こす UART 割り込み
UART3 の受信割り込みを有効にしましたが、データを送信するとすぐにハード フォールトが発生します。これが私がそれを初期化する方法です:
GDB によると、私の ISR はヒットすらしていません。ベクトル テーブルの正しい場所にあり、正しいアドレスとビット 0 が設定されていることを確認しました (他のすべてのハンドラーと同様に、Thumb-2 モードの場合)。実際、ISR を空の関数に置き換えても、まだエラーが発生します。私の障害ハンドラからの出力は次のとおりです。
LRもPCもあまり役に立たないようです。これは私が追加した最初の IRQ です。他のすべてのベクター テーブル エントリは SysTick 以下です。
障害の原因を特定するにはどうすればよいですか?
ここに私のベクトルテーブルがあります: