タグ付けされた質問 「programming」

プログラミングパーツ(FPGA、フラッシュなど)に関する質問多くのソフトウェアプログラミングの質問をスタックオーバーフローで行う必要があります。

5
Freescale Kinetis KE-フラッシュへの書き込み
私は何年もの間、さまざまなマイクロコントローラーとマイクロプロセッサーを使用してきましたが、Kinetis KEシリーズ(特にS9KEAZN64AMLC)に悩まされているようです。 2015年1月17日TL; DR: フリースケールは、Kinetis Design Studioソフトウェアのv2.0.0がこのデバイス(独自のTRK-KEA64評価ボードを含む)で動作しないことを確認しています。当分の間、CodeWarrior MCU V10.6を使用することをお勧めします。 Seggerはv4.96aをリリースしました(「a」は重要で、v4.96を使用していました)。これにより、問題を修正し、Segger J-Link Lite CortexMデバッガーボードをKDSで使用し、完全なプログラム/デバッグ機能を使用できます。 SEGGERはv4.96aをリリースする前に、私はそれがでてくるファームウェアOpenSDAを再フラッシュすることにより、フリースケールの安価($ 14)FRDM-KL25Zの評価ボード上のOpenSDAデバッガを再プログラミングすることにより、チップをフラッシュすることができるように管理しUSBDM(v4.10.6.240を使用します)。次に、USBDMのスタンドアロンの「ARM Programmer」ソフトウェアを使用しました。デバッグを必要としないほど「古い学校」のデバッグに習熟しているので、デバッグを動作させるのに時間をかけませんでした。オンボードターゲットKL25に「良性」プログラムをフラッシュするか、オンボードターゲットKL25のリセットラインがJ11カットでもOpenSDAデバッガーに接続されているため、プログラミングに干渉する可能性があることを確認してください(Keith Wakehamのブログ投稿を参照、以下にリンクされています)。 Erich Stygerに、問題を特定し、発見したことをメールで確認するのを非常に丁寧に手伝ってくれてありがとう。 定期的に予定されている質問に戻りましょう。 愚かでシンプルな3.3Vブレイクアウトボードを構築しました。PTAにはいくつかのLEDがあり、PTCにはUART接続があり、SWDラインは専用ラインにあります。このボードについて、文字通り空想も面白いもありません。 Cortex-MにJ-Link Liteを使用しています(J-Link LITE CortexM-9、https: //www.segger.com/jlink-lite-cortexm.htmlを参照)。OSX とWindowsの両方で、同じ結果:J-Link Commanderユーティリティはチップを識別でき、SRAMの読み取りと書き込みができ、正しいメモリマップI / Oアドレスへの手動読み取りと書き込みで周辺機器を操作できます。ただし、デバイスをフラッシュしようとすると失敗します。 $ JLinkExe SEGGER J-Link Commander V4.94c ('?' for help) Compiled Oct 31 2014 20:08:55 DLL version V4.94c, compiled Oct 31 …

8
MCUを使用した関数型プログラミング
Haskell、LISP、Schemeなどの関数型言語を使用すると、プログラマは関数型プログラミングパラダイムを使用してすばやく作業できます。それらには非効率性がありますが、私のアプリケーションはプログラム自体の効率よりもプログラマーの効率性を重視しています。 マイクロコントローラーで関数型プログラミングを使用して、マシン制御などを行いたい 最小システムリソースなど、どのような制限がありますか? これらの言語の実装例は何ですか?

3
Arduinoのスリープ方法
Arduinoのスリープモードをどのようにプログラムしますか?特にバッテリー駆動の設計の場合、CPUをスリープ状態にするのに必要なときだけ目覚めるための優れたテクニックは何ですか?

2
内蔵フラッシュメモリのサイズが十分ではありません
私のプロジェクトの1つで、Texas機器のTM4C1230C3PMIコントローラーを使用しています。32KBの内部フラッシュがあるため、アプリケーションには不十分です。より高いフラッシュサイズのマイクロコントローラーが市場で利用可能であり、使用できますが、このマイクロコントローラーのみを使用したいと思います。私の知る限りでは、外部EEPROMを使用して合計フラッシュサイズ(プログラムメモリ)を増やすことができます。 私の考えは正しいですか? そうでない場合は、コントローラーの合計フラッシュメモリサイズを増やす方法を提案してください。


3
企業はチップをどのように事前にプログラムしていますか?
特に、SMDパッケージに興味があります。私が想定するDIPパッケージは、単にソケットに入れられ、そのようにプログラムされているだけです。 もちろん、コードをアップロードまたは更新できるように最終製品にプログラマーヘッダーを設計することでこれを回避できますが、一部の会社は事前にプログラムされたチップを販売していることを知っています(Digikeyのようなサプライヤーがこのオプションを提供しています。 OEMと契約して、事前にプログラムされたチップを提供できる場合があると聞きました。私は彼らがこれをどのように行うかについて興味があります。 私は2つの理論を持っていますが、どちらも本当に実用的または信頼できるとは思いません。 ピンをPCBのパッドと接触させて「保持」するようなものです。おそらく、何らかのラッチを使用して確実な接触を確保します。これは、DIPパッケージのプログラミング方法に似ています。実際のリード(QFP、SOICなど)を含むパッケージで機能しますが、これがBGAまたはエクスポーズドパッドタイプのパッケージでどの程度機能するかについては疑問があります。 部品を所定の位置にはんだ付けし、プログラムしてからはんだを外します。チップセットに不必要な熱ストレスがかかり、大量のはんだ/その他のリソースを使用するようです。

4
ICSPまたは事前にプログラムされたマイクロコントローラー
私は小規模生産用のPCBを設計しました。現在、一度に20個ずつバッチではんだ付けしています。このPCBは、ボードにはんだ付けする前にプログラムするATMEGA168マイクロコントローラーを使用しています。現時点では、この方法でうまくいきます。 私が設計した製品は非常に人気があるようですので、200枚のボードのバッチを製造して組み立ててもらいたいと思っています。ICSPヘッダーをボードに組み込むか、ICを自分で事前にプログラミングし続ける方が良いでしょうか?製造または組み立て後のボードの再プログラミングは、意図した機能や必須の機能ではありません。 大規模な本番環境でこれがどのように行われるのかわかりませんか?ICSPヘッダーを追加すると製造コストがわずかに増加するため、事前プログラミングは標準的な方法ですか?

1
フラッシュメモリ付きの表面実装ICをプログラムしてから、それらをリフローはんだ付けできますか?
ATMEGA328P-AUなどの多くのチップは特定の温度でのフラッシュストレージの寿命を示していますが、通常は100°Cで制限されます。 理想的には、はんだ付け後にチップをプログラムするためにボードにリードを含める必要があることはわかっていますが、約230°Cのリフロー温度でフラッシュメモリがどのように影響を受けるかを知りたいだけです。

8
各マイクロコントローラーラインには独自のプログラミング言語/構文がありますか?
Arduinoをプログラミングして、Teensyのプログラミングを始めました。それらはCに似ていますが、プログラミング言語にはわずかなニュアンスがあります。 たとえば、ArduinoのCでは、関数pinMode(pin#、Output / Input)を呼び出して、デジタルピンを出力信号または受信信号のいずれかに指定します。TeensyのCでは、4つのポート(それぞれピンのコレクションを表す)の1つに関連付けられた「DDR」レジスタを設定します。これらのレジスタは、まとめて入力または出力のいずれかとして指定します(Teensy IO構文)。 初めてマイクロコントローラーを使用する場合、新しい「言語」を効果的に学ぶ必要があるかどうか知りたいのですが。「言語」という言葉は引用符で囲みます。構文のニュアンスはありますが、コンポーネントとソフトウェアでの設定方法は基本的に同等です。たとえば、ポートとピンの概念は、デジタルを出力/入力できる端子を指します。シグナル。 同じ論点で、ソフトウェアでプログラムされていないマイクロコントローラーはありますか、それともuControllerをプログラムするために常に使用されるソフトウェア層がありますか?後者の場合、誰がそれらのドキュメントを作成/提供しますか?

3
PICで複数の外部割り込みを使用する
いくつかのプロジェクトでPIC16F877(データシート)を使用しました。単一の外部ピン変更割り込みの場合、PORTB0割り込みを使用できます。しかし、今度は1つの回路で8つの独立した外部ピン変更割り込みをサポートする必要があります。 データシートには、に15の割り込みがあるとありますがPIC16F877、タイマーのオーバーフロー割り込みなどを含めてカウントされていると思います。この場合は役に立ちません。 これはデータシートがINTCONレジスターについて述べていることです。 bit0を使用して4つの独立した割り込みを持つことはできますRBIFか?それはの変化を表していPB7:PB4ます。どのピンが変更されたかをどのように識別できますか、それは割り込みルーチンでポート値を読み取ることによってですか? 上記に対して肯定的な回答を得ても、8つの割り込みが必要ですか?もちろん、私はまだINTE、PORTB0変更のために使用できます。その後4 + 1 = 5、しかし、どのような他の約3?(ただし、8つの割り込みイベントはすべて同じタイプ4 + 1 + 3 = 8なので、醜いように見えますね。) 8ピンを監視すること以外に、マイクロコントローラから期待される他の重いタスクはありません。(他のタスクについては、一連の個別のカウンター変数を維持し、頻繁に約4バイトをPCにシリアルに送信する必要があります) どんな提案でも大歓迎です。それがマイクロコントローラーをより適したものに変更することについてであってもです(しかし、ええと。sから離れるように言わないでくださいPIC)。

2
ヒープとスタックの物理的な表現は何ですか?
.bssとコードが、プログラムカウンターがカウントアップできる命令のメモリバンクがあり、bss(ブロック開始シンボル)が単なるグローバルデータであるプロセッサで、物理表現を簡単に理解できます。ただし、ローカル変数のスタックと動的メモリのヒープがあります。これらのものはどのように物理的に回路上に置かれますか?

4
FPGA-DIYプログラミング
私は数年前からマイクロコントローラーをプログラミングしており、デジタルデザインクラスを受講した後、FPGAを発見しました。異なるFPGAや開発ボードなどについて調査を行った後、最終的な「製品」の独自のバージョンを作成する方法がわからないので、私はまだ購入をためらっています。私はPIC、SAM、AVRなどを問題なくカスタムPCBに配置したので、心配する必要はありません。主な関心事は、メーカーのボードなしでFPGAをプログラミングすることです。 私の特定の質問:Quartus、Vivado、iCEcubeなどによって生成されたビットマップファイルを取得し、アドレス0から始まるSPIフラッシュメモリチップに(たとえば、FT2232Hを介して)書き込み、フラッシュメモリをFPGAのSPIピン(MODE構成が適切に設定されている)? 部分的な仮説をお詫びします。ラティスのダイアモンドプログラマーがそれをすべて行うと確信していますが、そのアプローチがさまざまなメーカーのFPGAで機能するのか、それとも、Quartusが書き込み中に「ウィンドウドレッシング」またはヘッダーをメモリに追加したのかと思いました。 質問を改善または明確にするために私にできることがあるか、またはFPGAプログラミングプロセスの大きなポイントを見逃していないかどうかを知らせてください。ありがとう!
9 fpga  spi  programming 

5
ATTiny13 — avr-gcc Hello Worldは100バイト以上を使用しますか?
ATTiny13用のプログラムを書こうとしています。私の問題は、巨大なサイズの制約があることです。さて、私の最初のHello Worldプログラムを作成するとき、ライトをオン/オフするだけで100バイトのプログラムスペースが必要でした。このサイズを縮小するためにavr-gccに提供できるオプションはありますか?また、crt0には何がありますか?私はAVRアセンブリにあまり熱心ではないので、あまり理解していません。 このプロジェクトのアセンブリに立ち寄る必要はありません。

2
PIC12F675 GP4が機能しない
プロジェクトにPIC12F675を使用していますが、1つの点を除いてすべて正常に動作します。GP4はデジタルIOとして機能しません。設定とコードをよく見てきましたが、何も見つかりませんでした。 構成: #pragma config FOSC = INTRCCLK #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config MCLRE = OFF #pragma config BOREN = ON #pragma config CP = OFF #pragma config CPD = OFF コード: #include <xc.h> #include <math.h> #include "config.h" #define _XTAL_FREQ 4000000 void delay(unsigned int …
9 pic  c  embedded  programming  audio  oscillator  spark  dc-dc-converter  boost  charge-pump  eagle  analog  battery-charging  failure  humidity  hard-drive  power-supply  battery-charging  charger  solar-energy  solar-charge-controller  pcb  eagle  arduino  voltage  power-supply  usb  charger  power-delivery  resistors  led-strip  series  usb  bootloader  transceiver  digital-logic  integrated-circuit  ram  transistors  led  raspberry-pi  driver  altium  usb  transceiver  piezoelectricity  adc  psoc  arduino  analog  pwm  raspberry-pi  converter  transformer  switch-mode-power-supply  power-electronics  dc-dc-converter  phase-shift  analog  comparator  phototransistor  safety  grounding  current  circuit-protection  rcd  batteries  current  battery-operated  power-consumption  power-electronics  bridge-rectifier  full-bridge  ethernet  resistance  mosfet  ltspice  mosfet-driver  ftdi  synchronous  fifo  microcontroller  avr  atmega  atmega328p  verilog  error  modelsim  power-supply  solar-cell  usb-pd  i2c  uart 

7
SPIフラッシュメモリに書き込む方法を教えてください。
SDカード(ArduinoのWaveshield)にオーディオデータを保存する代わりに、SPIフラッシュメモリICに保存し、MCU、DAC、アンプを搭載した独自のボードをロールするオーディオアプリケーションに取り組んでいます。 Winbond W25Q80BVSSIGを使用しています。 私が使用してAVRをプログラミングするとかなりよく知っているAVRISP mkIIのかUSBTinyを、同じプログラマで行わフラッシュにデータを書き込んでいますか?特にSPIフラッシュメモリプログラマーを探しているときには、何も見つかりませんでした。 この質問はのフォローアップで、この1。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.