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

STM32は、STMicroelectronicsによる3番目のARMファミリです。ARM9Eコアをベースにした以前のSTR9ファミリ、およびARM7TDMIコアをベースにしたSTR7ファミリに続きます。STM32は、ARM Cortex-Mファミリーのコアに基づいています。

2
STM32 GPIO設定について
STM32 Standard Peripheralライブラリでは、GPIOを構成する必要があります。 しかし、3つの機能がありますが、それらの設定方法がわかりません。 GPIO_InitStructure.GPIO_Speed GPIO_InitStructure.GPIO_OType GPIO_InitStructure.GPIO_PuPd でGPIO_Speed、から選択する4つの設定があります GPIO_Speed_2MHz /*!< Low speed */ GPIO_Speed_25MHz /*!< Medium speed */ GPIO_Speed_50MHz /*!< Fast speed */ GPIO_Speed_100MHz どの速度から選択するかを知るにはどうすればよいですか?高速または低速を使用する利点または欠点はありますか?(例:消費電力?) でGPIO_OType、から選択する2つの設定があります GPIO_OType_PP // Push pull GPIO_OType_OD // Open drain どちらを選択するかを知る方法は?そして、オープンドレインとプッシュプルとは何ですか? でGPIO_PuPd、から選択する3つの設定があります GPIO_PuPd_NOPULL // No pull GPIO_PuPd_UP // Pull up GPIO_PuPd_DOWN // Pull down この設定はプッシュプルの初期設定に関連していると思います。

5
CMSIS vs HAL vs標準周辺機器ライブラリ
そこで、PICからARMに切り替えて、STM32F4ディスカバリーボードを購入しました。これまでのところ、それをプログラムするには、メモリ内のすべてのレジスタに直接アクセスできること(明らかな方法)と、生活を楽にするために使用できる3つのメインライブラリがあることを理解しています。さて、私の質問は、これら3つ(CMSIS、HAL、Std Peripherals Lib)のどれが最も低レベルの1つですか?すなわち。オーバーヘッドの少ないもの。私の目標はコントローラーの内部の仕組みを学び、私の生活を楽にすることではないので(少しだけ)、アセンブリを使用せずにこれらのどれがコアに近いかを知りたいと思います。
29 arm  stm32  stm32f4  cmsis 

8
マイクロコントローラーのアプリケーションプログラムとは別にブートローダーが必要なのはなぜですか?
マイクロコントローラの同じフラッシュプログラムメモリ、特にブートローダと呼ばれるSTM32F103に別のプログラムが必要なのはなぜですか? メインアプリケーションプログラムから分離するために特別なことは何ですか? 一般的に、マイクロプロセッサベースのシステム(PowerPC MPC8270など)のブートローダーは、マイクロコントローラー(ARM STM32F103など)と同じジョブを実行しますか、それとも互いに根本的に異なるジョブを実行しますが、両方とも「ブートローダー」と呼ばれます?

8
LinuxでSTM32ディスカバリーを開発するにはどうすればよいですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 昨年は閉店しました。 STM32ディスカバリーボードを持っていますが、Linuxでプログラムできます。 これを行う最も簡単な方法は何ですか?

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 

3
STM32F4およびHAL
だから私はSTM32F407(私はARMの初心者)でしばらく実験しており、STがStandard Peripherals Librariesを廃止したように思われるため、HALライブラリを使用して簡単なアプリを書くことにしました。私の質問は、HALのポイントは何ですか?StdPeriphは仕事をしていませんでしたか?なぜ彼らはHALのためにそれを中止するのですか?私には、HALは完全に混乱しているように見えます。 ドキュメントはAWFULです。少なくともStdPeriphについては、必要なものを簡単に見つけることができるように十分に整理された完全なリファレンスがあります(http://stm32.kosyak.info/doc/)。HALには、一見ランダムな構造の安っぽいPDF(http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00105879.pdf)があります。周辺機器などのセクションを読んでも、構成して適切にカスタマイズするための要件を理解できないようです。参照というより、物を忘れたくない人からの個人的なメモのように見えます。 CubeMXを使用してGPIOを初期化し、周辺機器を構成できることは知っていますが、私の目標は自分でそれを行うことです。私は何か間違っていますか?私を混乱させるのはARM初心者ですか?または利用可能なドキュメントは悪いですか?
23 arm  stm32  stm32f4 

10
STMマイクロコントローラーは毎回書き込みます
私はstm32を使用した経験がありますが、開発ボードでのみ使用しました。 最近、簡単なブレイクアウトボードにstm32とstm8をはんだ付けし、st-linkv2クローンでプログラムしようとしました。 最初の電源投入時に、mcuは数秒後に燃えるような小さな音を発し、2分後には100mAを消費して喫煙します。 私には欠けている重要な詳細があると思います。 このような単純なセットアップでは何が問題になる可能性がありますか?(vdd、vss、デカップリングキャップおよびstリンクのみ) stm8とstm32の両方で20回以上試しました。 デカップリングキャップをできるだけ近くし、3.3vを供給しました。 フラッシュをプログラムして検証することは数回できましたが、奇妙な動作を示しました*数分後に再び煙が上がりました。 ドラッグはんだ付け、smdチップを使用した通常のはんだ付け、260℃という低い温度、各パッドの後の冷却時間を試しました。私は270Cでホットエアガンも試しましたが、問題ははんだ付けではないことを確信しています。 NRSTプルアップとBOOT0プルダウンも試しました。 *奇妙な振る舞い:単純なledブリンカーのタイミングや、0vではなく2.8v程度まで低下するpwm信号のような「ランダム」。全体的に「ちょっと」は機能しますが、1分間だけです。 **問題はst-linkではありません。開発ボードの点滅は問題ありません 編集1:これ は回路図です(stm32用)(ラベルでマークされたST-Linkへの接続): 下には何もありません。ピンに接続された別の(未実装の)フットプリント。 編集2:連続性テスト:ショートなし、すべてのピンコンタクトはOKです 編集3: VDDAとVDDを接続し、VDDに4.7uFを追加しました。まだ揚げた。デバイスで直接測定されたVDD:3.36v 編集4:現在の描画動作:すべての場合、チップを揚げると、約20-40mAを消費し、数秒間突然100-240mAになり、その後ゼロになります(10mA未満)。再び開始するまでしばらくゼロにとどまります。 更新: VCAPに別のSTM8S003F3P6,1uF、VDDに2x100nFおよび10uFをはんだ付けしました。そして、バッテリーをソースとして使用し、小さな静電容量の乗数とエミッターのフォロワーを作成して、多くのセラミックと低ESRキャップで3.3vを作成し、電流制限を15mAに設定しました。電圧のノイズは50MHzで30mV未満でした。その後、MCUを接続しました(新しくはんだ付け)。消費電流は4mA未満で、電圧は安定していました。私はそれを残しました。1〜2分後、突然15mAの制限を超えてPDRをトリガーし始めました。そして、今すぐ(NRSTがアサートされていても)それをすぐに開始します。これも消えたようです...


6
STM32でprintf関数を使用するにはどうすればよいですか?
printf関数を使用してシリアルポートに印刷する方法を見つけようとしています。 私の現在のセットアップは、STM32CubeMXで生成されたコードと、STM32F407ディスカバリーボードを備えたSystemWorkbench32 です。 stdio.hでは、printfプロトタイプが次のように定義されていることがわかります。 int _EXFUN(printf, (const char *__restrict, ...) _ATTRIBUTE ((__format__ (__printf__, 1, 2)))); どういう意味ですか?この関数定義の正確な場所はどこですか?この種の関数を使用して出力する方法を見つける一般的なポイントは何ですか?

4
工場出荷時設定へのリセットはどのように機能しますか?
すべての組み込みデバイスには、何かがおかしい場合にユーザーが自分のデバイスをリセットできるようにする「工場出荷時リセット」オプションが含まれています。 STM32ボードでファームウェアを開発しています。ファームウェアには、(新しいイメージを含むバイナリファイルを送信することにより)UARTを介してアプリケーションをアップグレードできるブートローダーが含まれており、別の機能を追加したい:ファクトリーリセット。ユーザーがこのオプションを選択すると、ボードは元の画像をロードします。 工場出荷時リセットとは何ですか?バイナリファイル全体をメモリに再度読み込むことですか、それともエンドユーザーによって変更された変数を再初期化する関数を呼び出すだけですか? そうするためのベストプラクティスは何ですか? 元のFWを保存する場所は?内部または外部フラッシュにありますか?

2
STが72 MHz MCUに100 nFデカップリングコンデンサを推奨するのはなぜですか?(10 nFではありません。)
私はデカップリングコンデンサについて読んでいますが、STが72 MHz ARMマイクロコントローラで100 nFデカップリングコンデンサを推奨する理由を理解できないようです。 通常、100 nFのデカップリングコンデンサは、共振のために約20〜40 MHzまでしか効果がありません。共振が100 MHzに近いため、10 nFのデカップリングキャップの方が適していると思いました。 (明らかに、それはパッケージとそのインダクタンスに依存しますが、それらは私が見たものからの単なるボールパーク値です。) STM32F103データシートによると、STはV DDに 100 nF、VDDAに10 nFのコンデンサを推奨しています。何故ですか?V DDでも10 nFを使用すべきだと思います。

1
Stm32イベントと割り込み
私はstm32、特にstm32f4ディスカバリーボードで割り込みの研究を始めました。ボタンを押して割り込みを開始し、もう一度押して停止する必要があるこの例を見つけました。 この行では、EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interruptで、割り込みモードまたはイベントモードを選択する必要があります。イベントモードに変更しましたが、動作しないようです。そのため、ハンドラーは割り込みのみで実行されるという結論に達しました。 イベントが発生したときにコードを実行できない場合、なぜstm32でイベントを使用するのですか? コードは次のとおりです。 #include "stm32f4xx.h" #include "stm32f4xx_syscfg.h" #include "stm32f4xx_rcc.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_exti.h" #include "misc.h" EXTI_InitTypeDef EXTI_InitStructure; void EXTILine0_Config(void); void LEDInit(void); void ExtInt(void) { LEDInit(); /* Configure EXTI Line0 (connected to PA0 pin) in interrupt mode */ EXTILine0_Config(); /* Generate software interrupt: simulate a rising edge applied …

3
STM32開発ボードのプログラム方法
私はARMマイクロコントローラーのプログラミングに完全に慣れていますが、AVRおよびPICマイクロコントローラーの経験はあります。 数日前、eBayからSTM32F103VET6開発ボードを購入しました。今、このボードをプログラムしようとしていますが、どこから始めればいいのかわかりません。また、いくつかのデータシートといくつかのドキュメント(すべて中国語)を含むCDを受け取りました。 誰かが開始方法を教えてもらえますか?または、誰かがソースサンプルを持っていますか? Keil uVision4はすでにインストールしています。J-linkデバッガーもあります。
17 arm  stm32 

1
STM32イベントeventOutとしては何ですか?
では、手動私のSTM32、GPIO代替機能の一つのeventOutとして呼ばれている(すなわちAF15、138ページを参照してください)。イベントが定義されたり、ユースケースが指定されたりすることはありません。 STM32のEVENTOUT代替機能とは何ですか?
17 stm32 

2
外部ST-Linkを使用してSTM32F103 MCUをデバッグ/プログラムする方法
私は自分のプロジェクトにSTM32F103 MCUを使用していますが、STM32F411 NucleoボードのST-Linkを外部デバッグ/プログラミングの目的に使用したいと考えています。 CN2ジャンパーをOFFに設定しましたが、実際の質問はSWO(CN2)のピン配置にあります。これをどのように進めるかは次のとおりです。 (SWOの)PIN 1はVDD_Targetです ピン2はSWCLK ピン3はGND PIN 4はSWDIOです PIN 5はNRSTです PIN 6はSWOです 私の知る限り、上記のすべてのピンを使用しないでください。のように、私は接続しました MCUのPIN 2からPIN 37(またはPA14) ピン3からGND PIN 4からPIN 34(またはPA13) ターゲットMCUのPIN 5からPIN 7または(RESET)。 「予約済み」に設定されているため、SWOピンを接続する必要があるかどうかわかりません(なぜですか?)。また、MCUのVINピンに3.3 Vを与えています。つまり、VDD(stlinkのピン1)を接続する必要はありません。 公式データシートから取ったこの表を参照してください。 MCUの一般的なピン配置構成は次のとおりです。 私はオシロスコープとテスターで「ほぼ」すべてをテストしましたが、すべては大丈夫のようです。ここに他に何が欠けていますか?BOOT0またはBOOT1ピンで何かする必要がありますか?
16 stm32  stm32f10x  swd  st-link 

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