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

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

1
4桁7セグメントLEDの使用
4桁の7セグメントディスプレイがあります。これを利用するには何が必要ですか?1つのマイクロコントローラーで操作を処理できますか?私が意味PIC16F690を ...私はまた、ドライブディスプレイのこれらの種類は...それは絶対に必要であることをMAXIMチップを見ましたか? これはデータシートの写真ですが、2ピン図がある理由がわかりません。 ここにデータシートへのリンクがあります

2
UARTへの可変文字の印刷が機能せず、定数が正常に機能する
PIC18F27K40マイクロコントローラーのXC8でかなり奇妙な問題があります。PIC16F1778では動作します。私は定義しました: void uart_putch(unsigned char byte) { while (!PIR3bits.TX1IF); TX1REG = byte; } とき、私の中でmainループ、私が呼んでuart_putch('a');、これはうまく動作します。ただし、を定義const char c = 'a';して呼び出しuart_putch(c);ても機能しません。それは何かではなく、何かを印刷しますa-私はそれらが0x00文字であると私は思いますhexdump -x /dev/ttyUSB0。これは私のコンピュータのシリアルポートの問題ではありません。私はスコープで見て、信号が異なります(左の作品、右の作品ではありません)。 コードは簡単です: void main(void) { init(); // Sets up ports and UART control registers while (1) { uart_putch('a'); // or c } } どちらも機能しないのは、関連があると思われる文字列関数(puts、printfなど)のいずれかを使用しているため、この質問では、文字を使用して最小限の作業例を作成しました。 変数を使用したときに生成されるアセンブリには、次のものが含まれますc。 _c: db low(061h) global __end_of_c _main: ; …

3
SPIバス接続-ループするかしないか?
SPIバスの物理的な接続について質問があります。 SPIマスター(PIC32デバイス)といくつかのスレーブ(この場合はPIC16デバイス)があります。私はスレーブに書き込むだけで、プロトコルはどちらがいつ何をするかを処理するので、心配するMISOまたはSS信号はなく、データとクロックラインをすべてのスレーブに並列化しています。バスの全長は数フィート(たとえば60cm)以下で、SCKを8MHzで実行しています。 これで、スレーブデバイス(実際には他のボードのインターフェイスノード)の物理的な配置は、SPIバスがマスターにループバックして、各ループの両端をそれぞれMOSIとSCKに接続できるようになっています。 次の図は、私が意味することを示しています-私は赤い点線の接続について話している-そして問題は、これを行うのは良いことかそうでないかです。 私は同じような旅をしている電源とグラウンドを持っています、そしてこれはスレーブによって引き起こされる電圧降下を最小化するので明らかに-そして明らかに-有用です。しかし、これらの信号線で同じことをするのが良いことか悪いことかは分かりません。代わりに、ある種の終端-接地への抵抗(?)-または直列抵抗を使用して反射を抑制する必要がありますか? いわばドットをつなげて、つなげずに両方試しましたが、機能的な違いはなく、スコープにも変化はありませんが、60cmより少し長かったり、8Mhzより少し速かったら、問題がありますか?何か変更があった場合にトラブルが起こらないようにするためのアドバイスを探しています。 この質問は、60MHz SPIバス@ 8Mhzで特に私を悩ませていますが、他の状況についての一般的な原則はありますか?I2cバスのプルアップは別の場所に配置する必要がありますか? 適切な読書資料へのリンクも歓迎します-この特定の質問をカバーするものは何も見つかりませんでした。

3
FSInit()-「CE_BAD_PARTITION」[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 電気工学スタック交換のトピックになるように質問を更新します。 9か月前に閉鎖。 PIC18F26K80とXC8コンパイラを使用しています。SDカードを初期化してファイルを作成しようとしています。WindowsでSDカードをフォーマットし、「FAT32」ファイルシステムと「アロケーションユニットサイズ」を512バイトに設定しました。SDカードの容量は2GBです。MLAレガシーバージョンのMDDライブラリを使用しています。私の主なものは次のとおりです: FSFILE * file; char sendBuffer[22] = "This is test string 1"; //************************************************** // main function //************************************************** int main() { initIO(); LATBbits.LATB0 = 0; // Initialise SPI and SD-card while ( !MDD_MediaDetect() ); // Initialize the device while ( !FSInit() ); // Initialize #ifdef ALLOW_WRITES // …
9 pic  spi  sd  fat 

1
spiフラッシュに書き込めないようです
ええと、私はしばらくこれにこだわっています。この時点で、おそらく2〜3週間です。私は何が間違っているのかよくわかりません。私はこのスパイフラッシュパーツに書き込もうとしています。今は、ルーチンを実行して消去、書き込み、読み取りを行って、それを分離しようとしていますが、今のところうまくいきません。もちろん、私は途中でたくさんのバグを解決しました... とにかく、ボード上でWPラインを高く結んで、クロックを200kHzまで遅くしてから、消去ルーチンを実行すると、次のようになります。 まず、デバッグのためだけにIDを確認します。それは9Fコマンドです。次に、06コマンドでWRENを設定し、C7はチップ全体の消去です。次に、ステータスビットを05で確認します。この事のチップ消去時間はわずか35msです。 次に、コードをリロードして書き込みを試みます。 まず、WRENを06に設定し、ステータスをチェックしてWRENが05に設定されていることを確認します。次に、ページプログラムコマンド02をアドレス0x000000に送信します。あなたは私が最初の数ビットとしてdeadcafeを書いているのを見ることができます。また、ここに描かれていないのは、書き込みが完了した後(1ページまたは256バイト)、0x04コマンドを送信してWRENを無効にします。私はそれを観察し、ページバッファーの最後の4バイトを0xAA、0x55、0xAA、0x55に設定しました。CSがハイになる直前にそれらを確認しました。 次に、リロードコードを停止し、読み取りサイクルを実行してみます。 読み取りコマンドとして0x03を送信し、アドレスとして0x000000を送信します。そして、デバイスからすべて0xFFを返します。 デバイスが自分の読み取りIDに応答していることを確認し、WRENコマンドを設定して、自分の声を認識して応答できるようにします。この時点で何が悪いのかわかりません。データシートを読み、いくつかのことを試してみることに戻ると思いますが、誰か洞察があれば、助けをいただければ幸いです。これは、このことに取り組んでいる別のイライラする週末になることを形作っています。
9 pic  spi  flash 


2
FPGAによるPICプログラミング
FPGAカードを介して初めてPICをプログラムする方法(フラッシュに書き込む)があるかどうかを知りたいです。 PICはすでにFPGAにはんだ付けされており、削除できません。PICにはブートローダーはありません。したがって、FPGAからデータを受信できるように、ブートローダーを使用してUSART / SPI / I2Cモードでプログラムする必要があります。 通常、はんだを外してPICKitなどのハードウェアプログラマーに接続し、MPLABなどのコンピューター上のソフトウェアでプログラムする必要があることはわかっていますが、それを買う余裕はありません。 .hexファイルであるMPLABを使用してブートローダーを生成できますが、FPGAに転送してから、FPGAピンを介してPICに転送するにはどうすればよいですか。 使用されるPICはMicrochip PIC12F1822です。

2
LATCHにデータが書き込まれるとどうなりますか?
これは、PIC16F1947データシートで見つけたものです。 PORTBレジスタを読み取るとピンのステータスが読み取られ、レジスタに書き込むとPORTラッチに書き込まれます。すべての書き込み操作は、読み取り-変更-書き込み操作です。したがって、ポートへの書き込みは、ポートピンが読み取られ、この値が変更されてから、PORTデータラッチ(LATB)に書き込まれることを意味します。 私はファームウェア開発者で、バックグラウンドはコンピューターサイエンスです。私はまだハードウェアレベルでエレクトロニクスとロジックを理解するのに苦労しています。私は基本的な知識しか持っていません。 そこで、ハードウェアレベルでラッチするようにデータが書き込まれるとどうなるかを理解したいと思います。 ありがとうございました。

2
avrマイクロコントローラーと、initまたはメインループまたはタイマーまたは割り込みのコーディングを開始する方法
私はAVRとPICマイクロコントローラーのコードをここ数年、仕事のために変更していますが、ゼロから何かを書いたことがないので、かなりよく理解しています。 私は今自分のコードを書き始めており、始めるのに問題があります。他の人がどのようにコードを書き始めるのか、本やチュートリアルがあるとすれば、これについてお勧めします。 初期化関数のコーディングから始めて、次に割り込み、次にタイマー、そしてメインのwhile(1)ループのコーディングから始めますか...始めるための最良の方法は何なのかと思っています。 ありがとうございました
9 avr  pic 

5
PIC 16F初心者..異なるコンパイラーを使用する場合のプログラム構文の違い
すでに述べたように、私はpic16f877aのプログラミングを始めたところです。これで7セグメントディスプレイを操作できます。現在、ccsコンパイラを使用しています。何も問題ありません。しかし、私はコンパイラに依存しないプログラマであることが好きです。したがって、IARやHitechcなどの他のコンパイラで同時に作業したいと思っています。ccs以外の「コンパイラーでのプログラムステートメント宣言」が異なるかどうか知りたいのですが?このことへの取り組み方を教えてください。あらゆる形の提案を歓迎します。前もって感謝します。
9 pic  compiler 

7
どのPICを使うべきですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 電気工学スタック交換のトピックになるように質問を更新します。 4年前休業。 学習を始めるのに最適なPICは何ですか?8ピンとアナログ入力を備えたPICが必要です。 16F628Aを持っていますが、16F684の方がいいと思います。PIC16F648と684Aの違いは何ですか? どちらが一番いいですか?

2
PIC電圧測定
バッテリー駆動のデバイスを実行していますが、マイクロコントローラー(PIC)に供給電圧について報告してもらいたいです。 これにより、電源で使用されているバッテリーの数と、バッテリーパックの充電状態を確認できます。 電源電圧範囲は、4xD(1.2V公称NiMHまたは1.5Vアルカリで約6Vを生成)から12xAA(1.2V NiMHで14.4Vまたは1.5Vアルカリで18V)の範囲です。 私のPICは、調整された5V電源で動作しています。 ADCポートの1つを使用して電圧を測定することを計画しているため、18V fsdを0〜5Vの範囲にマッピングする必要があると考えているので、大まかに入力電圧を3で割る必要があります。 抵抗分圧器を使用することを聞いたことがありますが、それは消費されるエネルギーの点で無駄になる可能性があることを知っています。 過度のエネルギー損失/無駄なしにこの電圧分割を達成するより良い方法があるかどうか疑問に思いますか? ありがとう。

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 

6
組み込みCの観点からの静的キーワードの概念
static volatile unsigned char PORTB @ 0x06; これは、PICマイクロコントローラーヘッダーファイルのコード行です。@オペレータは、アドレスの内部PORTB値を格納するために使用される0x06PORTBを表すPICコントローラ内部のレジスタです。この時点までに、私は明確な考えを持っています。 この行は、ヘッダーファイル(.h)内でグローバル変数として宣言されています。したがって、私がC言語について知ったことから、「静的グローバル変数」は他のファイルからは見えません-または、単純に、静的グローバル変数/関数は現在のファイルの外では使用できません。 次に、このキーワードをPORTBメインのソースファイルや手動で作成した他の多くのヘッダーファイルに表示するにはどうすればよいですか? メインのソースファイルでは、ヘッダーファイルのみを追加しました#include pic.h。これは私の質問と関係がありますか?

2
ボルトをdB SPLに変換する方法
PIC16F877AのADCユニットから、LM358アンプを使用して増幅されたエレクトレットマイクから入力を取得しています。2.5Vから5Vの範囲のADCからボルトで測定値を取得しています。これらの測定値をdBに変換するにはどうすればよいですか?
9 pic  sound 

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