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

PICは、マイクロチップ社が製造した8、16、32ビットRISCマイクロコントローラーのブランドです。「PIC」は、もともとは「Peripheral Interface Controller」の頭字語でした。

6
DSPと標準マイクロコントローラーの違いは何ですか?
DSPはデジタル信号処理用に最適化されていることを理解していますが、それがICを選択するタスクにどのように影響するかはわかりません。私がマイクロコントローラーで行うほとんどすべてのことは、デジタル信号の処理を伴います! たとえば、人気のあるMicrochip dsPIC30または33 DSPとその他の16ビット製品であるPIC24汎用マイクロコントローラーを比較してみましょう。dsPICとPICは、同じメモリと速度を持つように構成でき、同様の周辺機器セット、同様のA / D機能、ピン数、消費電流などがあります。Digikeyのリストに表示される唯一の大きな違いは、発振器。価格(または他のフィールド)を見ても違いはわかりません。 さまざまなプロトコル(I2C、SPIなど)を使用していくつかの外部センサーを操作し、A / D変換を行い、シリアルフラッシュにデータを保存し、ボタンに応答して、キャラクターにデータをプッシュする場合LCDとFT232(かなり汎用的な組み込みシステム)で、どのチップを使用すればよいですか?DSPがPICに遅れをとるとは思われず、この神秘的な「DSPエンジン」を提供します。私のコードは常に数学を行い、時々浮動小数点または小数が必要ですが、DSPを使用することで利益が得られるかどうかはわかりません。 別のベンダーのDSPとマイクロコントローラーのより一般的な比較も同様に役立ちます。これらを議論の出発点として使用しています。

11
わずか384バイトのプログラムメモリしかないマイクロコントローラーをどのように使用できますか?
たとえば、PIC10F200T 単一の目的のチップでない限り、実質的にあなたが書くコードはそれよりも大きくなります。外部ストレージなどからより多くのプログラムメモリをロードする方法はありますか?私はただ興味があります、これがどのように非常に役立つかわかりません...しかし、そうでなければなりません。

9
組み込みシステム向けRTOS
時間管理とリソース管理にRTOSを使用する必要があることを伝える多くの記事を見てきました。私の時間は私自身の研究を許可していないので、私はチップハッカーに助言を求めに来ます。 低リソースのマイクロコントローラー(MSP430、PIC)を使用しており、使用できるRTOSを探していました。 ポイントへ: システムのリソースコスト システムの利点 システムの欠点 実装のコツ RTOSを使用すべき/すべきでない状況。 私はarduinoのようなシステムを使用していません。一緒に作業するプロジェクトでは、そのようなシステムのコストをサポートできません。

7
ADCで負電圧を測定するにはどうすればよいですか?
私は10ビットADCを内蔵したPICマイクロコントローラーを使用しており、-1〜-3ボルトの範囲の電圧を測定したいと考えています。 反転モードでオペアンプを使用して電圧を正にしてからマイクロコントローラのADCに供給することを考えましたが、ここでは負の電源でオペアンプに電力を供給する必要がありますか?現時点ではマイナス電源を使用したくありませんが、この構成を実現できるかどうか疑問に思っていましたか?手伝ってもらえますか?

7
マイクロコントローラー用の最小のAES実装?
誰でも、マイクロコントローラ用のAES-128 Rijndaelの小さな無料実装を推奨できますか 理想的には、PIC18の場合、Cでの一般的な実装が有用でしょう。 PIC18用のaxTLS実装をコンパイルし、ブロックを暗号化/復号化するには、6KB ROMと750bのRAMが必要です。 PIC18用にrijndael-alg-fst.cをコンパイルし、ブロックを暗号化/復号化するには、28KB ROMと0.5KB RAMが必要です。 ブライアングラッドマンの8ビットAESをPIC18用にコンパイルし、ブロックを暗号化/復号化するには、19KBのROMと190バイトのRAMが必要です。 最適化されたPIC固有のバリアントが利用可能ですか? (axTLSバージョンの更新されたRAM要件)
38 pic  encryption 

14
フリスビーのRPMを測定するにはどうすればよいですか?
フリスビーに貼り付けることができる小さなデバイスを作成して、スローされたときのフリスビーのRPM /速度などの統計を測定できるようにします。これは現実的に可能でしょうか? フリスビーからスマートフォンにデータを転送するために、近距離無線通信を検討していましたが、それは単なるアイデアです。フリスビー自体の飛行に影響を与えない程度に小さいものを作るのは難しいようです。誰でもこれについてのアイデアを考えることができますか?

9
高速でメモリ効率の良い移動平均計算
Cで移動平均を計算するための時間とメモリの効率的なソリューションを探しています。専用の除算ユニットを持たないPIC 16にいるため、除算を避ける必要があります。 現時点では、すべての値をリングバッファに保存し、新しい値が到着するたびに合計を保存および更新します。これは本当に効率的ですが、残念ながら利用可能なメモリのほとんどを使用します...
33 pic  c 

2
Cコーディング設計-関数ポインター?
私が持っているPIC18F46K22をしてXC8コンパイラでそれをプログラムします。最後に、私は、搭載したPCのようなシステムがあるでしょうstdinし、をstdout。したがって、メインループには、新しい入力があるかどうかをチェックする関数があります。入力がある場合、それに応じて関数が呼び出されます。たとえば、Aを入力するstdinと、PICはBを入力したときに呼び出される関数のfunction_A代わりに、次のような関数を実行しますfunction_B。 関数でPICが完了したら、新しい入力が関数に送信されるようにします。したがって、Aを押すとRS232トランスミッタが開き、その瞬間からすべての入力がRS232経由で送信されます。最終的に、プロジェクトはスタンドアロンのテキストエディターです。そのため、Aを押すとファイルシステムが開き、その瞬間からテキストの編集は行われず、ファイルのリストを確認します。つまり、上と下を押すことは、テキスト編集環境とは異なることを意味します。 私はこれをCでプログラムする方法について多くのことを考えてきました。昨晩、これを考えて、可能かどうか、可能であればどのようにしたらよいかを知りたいと思います。私がやりたいことは: main機能のような関数を呼び出しますfunction_A function_Aグローバル変数function_addrを関数のアドレスポインターに変更しますin_function_A その瞬間から、新しい入力があるときにmain関数を呼び出しfunction_addrます。 したがって、必要なのは、ゼロmainかどうかをチェックする関数function_addrです。もしそうなら、「通常の」関数を呼び出す必要がありますfunction_A。そうでない場合、関数at function_addrを呼び出す必要があります。またfunction_A、function_addrへのポインタに変更するが必要in_function_Aです。 注:ファイルシステム関数を閉じる必要がある場合は、0にis_function_A変更function_addrするだけです。 だから基本的に私の質問は 関数のアドレスを取得(および変数に格納) 指定されたアドレスで関数を呼び出す

7
初心者向けのファームウェア開発向けの良い本
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私は仕事で多くのファームウェアの仕事をしていますが、このトピックに関するより高度な本を探しています。「割り込みとは」の基本とは異なるもの。組み込みシステム開発に関するO'Reillyの本を読んでいます。たとえば、Flashページ(これは非常に便利です)のようなものについて議論する本、メモリの特定の領域にコードのセクションを配置する方法は本ではまれです。 おそらく、いくつかのヒントとコツがあるものです。私は主にPICプログラミングを行っています。

6
シリアルプロトコルの区切り/同期技術
非同期シリアル通信は今日でも電子機器に広く普及しているため、私たちの多くはそのような質問に時々出くわしたと思います。電子デバイスDと、PCシリアル回線(RS-232または同様のもの)で接続され、継続的に情報を交換する必要があるコンピューターを検討してください。すなわち、PCそれぞれコマンドフレームを送信しており、それぞれステータスレポート/テレメトリーフレームで応答しています(レポートはリクエストへの応答として、または独立して送信できます-ここでは実際には関係ありません)。通信フレームには、任意のバイナリデータを含めることができます。通信フレームが固定長パケットであると仮定します。X msDY ms 問題: プロトコルは継続的であるため、受信側は同期を失ったり、進行中の送信フレームの途中で「結合」したりする可能性があるため、フレームの開始(SOF)がどこにあるかはわかりません。Aデータは、SOFに対する相対的な位置に基づいて異なる意味を持ち、受信したデータは破損する可能性があり、永久に破損する可能性があります。 必要なソリューション 短い回復時間でSOFを検出するための信頼性の高い区切り/同期スキーム(つまり、再同期に1フレーム以上かかることはありません)。 私が知っている(そして使用している)既存のテクニック: 1)ヘッダー/チェックサム -事前定義されたバイト値としてのSOF。フレームの最後のチェックサム。 長所:シンプル。 短所:信頼できません。不明な回復時間。 2)バイトスタッフィング: 長所:信頼性が高く高速な回復で、どのハードウェアでも使用可能 短所:固定サイズのフレームベースの通信には適していません 3)9番目のビットマーキング -各バイトに追加ビットを追加します。SOFでマークされたSOF 1とデータバイトには次のマークが付けられ0ます。 長所:信頼性が高く、高速な回復 短所:ハードウェアサポートが必要です。ほとんどのPCハードウェアおよびソフトウェアでは直接サポートされていません。 4)8番目のビットマーキング -上記の一種のエミュレーション。9番目ではなく8番目のビットを使用し、各データワードに7ビットのみを残します。 長所:信頼性の高い高速リカバリは、どのハードウェアでも使用できます。 短所:従来の8ビット表現と7ビット表現の間のエンコード/デコードスキームが必要です。やや無駄だ。 5)タイムアウトベース -定義されたアイドル時間の後に来る最初のバイトとしてSOFを想定します。 長所:データオーバーヘッドなし、シンプル。 短所:それほど信頼できません。Windows PCなどのタイミングの悪いシステムではうまく動作しません。潜在的なスループットのオーバーヘッド。 質問: 問題に対処するために存在する他の可能な技術/解決策は何ですか?上記のリストで簡単に回避できる短所を指摘できますか?システムプロトコルをどのように設計しますか(または設計しますか)?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

2
AVRおよびPICコントローラーのファームウェア保護
私が提供するマイクロコントローラーで焼いたHEXファイルを誰かが抽出できますか? それが可能な場合、誰かが自分のコードが組み込みシステムで保護されていることをどのようにして確認できますか?PICおよびAVRマイクロコントローラーの場合、どのようにしてファームウェアが複製されないように保護できますか?
23 pic  avr  embedded  firmware 

6
内部または外部発振器
8 MHzより高い周波数で実行する必要性を発見したことがないため、写真にある内部オシレーターを常に使用します(これは、使用する写真が最も速い傾向にあります)。8 MHzを超えること以外に、外部発振器を使用する必要があるという理由はありますか?私に間違ったことがもう一つあるように思えますが、私は他の人が何をしているのか聞きたいです。

4
ノイズの多い信号をクリーンアップする方法は?
PIC16F684の4ピンPWM PCファンを、近接センサーのADC読み取り値から駆動されるファン速度で制御しています。これはすべて大丈夫です。 元々、ファンからのタコメーター出力を使用する予定はありませんでしたが、利用できるので、近接とファン速度間のマッピングが機能していることを確認するために、スコープで監視しています。 今、私が気づいたのは、PWMが100%でファンを実行しているとき、tach信号(10K抵抗を介してプルアップされたオープンドレイン)がきれいできれいだということです: ただし、100%未満で実行すると、ノイズが多くなります。 そのノイズにズームイン: 私はそれがPWM信号の影響を受けていると推測していますが、将来必要に応じてクリーンアップできるように、理由と方法を理解したいと思います。本当に、このようなノイズが表示されたときに何をすべきか、どのように原因を見つけ、どのように「修正」するかに興味があります。スコープは何とかトリガーできますので、CMOSレベルのシュミットトリガー入力であるPIC(RA2)の外部割り込みピンに入力するだけで、ノイズが「見え」なくなります。たとえば、別のピンからクリーンな信号をエコーし​​て、LEDなどをフェードアウトさせることができます。 誰かがノイズの多い信号を認識して修正する方法を一般的な用語で説明できますか?または、それが広すぎる場合は、この特定の問題だけでしょうか?また、私の回路に何か問題がある場合も知っておくといいでしょう。以下の回路図では、表示している信号は回路の左側にあるTACH入力です。 更新 @MichaelKarasと@techydudeの両方からの有益な提案の後、回路から完全に削除してファンを直接接地することにより、問題の原因としてQ2を除外しました。ノイズに大きな影響はありません。 そこで、予備ピン(この場合はRA1)から "クリーンな"信号をエコーするようにRA2の外部割り込みをコーディングしました。これは大いに役立ちましたが、誤った割り込みのためにまだちらつきました。(したがって、立ち上がりエッジをトラップするように割り込みを設定し、トリガーされたときに立ち下がりエッジに切り替え、その逆も同様であり、それに応じてRA1を設定/リセットします)。 しかし、(@ techydudeの提案の一部として)R3に100nFのコンデンサを追加した後、今でははるかに安定した出力が得られています。以下のスクリーンショットは、シュミットトリガーRA2入力によるクリーニングとRA1での再出力後のTACH信号です。
19 pic  pwm  noise 


5
入力または出力MCUピンでのプルアップおよびプルダウン抵抗の使用
プルアップ/ダウン抵抗(内部または外部)はMCUのINPUTピンにのみ必要ですか?対照的に、出力として設定されたMCUピンは駆動を行うため、「レベルを認識します」-別の回路の入力に接続された「フローティング」MCU出力ピンは、MCUピンの状態が理由で意味をなさない高くても低くてもかまいません...この権利はありますか?現在、MCUの起動時または障害時に、この「MCU出力からIC入力」ラインにプルアップ/プルダウンを接続して、一部のICへの入力がフローティングしないようにすることが有益な場合があります。 ここで自分の質問に答えたばかりかもしれません...アプリケーションによっては、プルアップ/ダウン抵抗を入力ピンと出力ピンの両方で使用できますか?

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