前回まで、ハーフブリッジ回路のドライブを実験しました。同じPチャネルとNチャネルのペアの回路をもう1組用意します。Hブリッジ回路になります。追加した下のブロックを回路図の右側に配置すれば、一般的はHブ
前回、デッド・タイムをうまく確保できませんでした。 プログラムを修正して、GP2、GP3、GP4、GP5の各端子の波形を見ます。オシロスコープが2チャネルなので、GP2の立ち上がり位置を基準に並べてい
●PWM信号の反転 PWM出力の極性を設定する関数があります。一つのスライスにはAとBがあるので、両方を同時に設定できます。 static void pwm_set_output_polarity (
PicoのPWM波形をGP2以外にGP3にも同じものを出力します。GP3の信号を用いてPチャネルのMOSFET 2SJ681を駆動します。 ●PチャネルのMOSFET 2SJ681のおもなスペック ド
PicoのPWM波形の作成方法がわかったので、最初に、発振器のときと同じく10kHzのPWMを作成します。 ●プログラム wrapだけで10kHzを得ました。 #include "pico/stdli
前回、wrapを使って、システム・クロック125MHzを1MHzに落としました。もう一つの分周器を使って、もっと周波数を下げます。 ●固定小数点形式 uint8_t div = 2;uint8_t f
PicoからPWM出力をします。PWMはどのGPIOからでも出力できます。ここでは、GPIO2、GPIO3、GPIO4、GPIO5の4本を最初に利用します。 ●PWMの周波数 Picoは125MHzの
次の構成で、パワーMOSFETのスイッチング波形が見れると思ってゲートに発振器の出力をつなぎました。 最初に使用したMOSFETは、東芝TK100E08N1(Nチャネル、80V/100A)です。 波形
マイコンの出力電流は4mAぐらいです。MOSFETをつなぐと、数Aから数十Aの電流をON/OFFできるようになります。最初に、中電力用MOSFETの特性を見ます。 ●TK100E08N1のおもな特徴
gpioファンクションの中にmask関連があります。どういう機能なのか確認しました。 ●MASK関連gpioファンクション ファンクション 要約 void gpio_set_outover (uint
前回、スイッチが押されると、LEDを点灯させるというプログラムを作りました。while()文でループを作り、定期的に、if()文で、スイッチの状態を見に行きます。これをポーリングといいます。 このプロ
Lチカでgpioの出力を扱いました。ソース・プログラムです。 /** * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. * * SPDX-License
前回、10ビットA-DコンバータMCP3008を利用しました。ここでは12ビットA-DコンバータMCP3208を使います。ビット数が増えると、より細かくアナログ電圧を扱えます。言い換えれば、量子化誤差
SPIバスは、I2Cよりデータの転送速度を高くできます。 Picoにはspi0とspi1のバスがあります。チップ・セレクトCS信号は、ユーザがGPIOピンを独自に制御するプログラムを書きます。 クロッ
低価格湿度センサのAHT20をつなぎました。使用したAdafruitのブレークアウト・ボードは、STEMMA QT(JST SH 4ピン)コネクタは2か所に装着されていて、どちらにつないでもかまいませ
温度センサTMP117は、動作温度範囲;-55~+150℃で、確度;-20~+50℃の範囲で±0.1℃(最大値)と、小数点第一位までが信頼できます。読み出すデータは16ビットで0.0078125°C
i2cは、クロックSCLとデータSDA信号のタイミングを利用したバスです。Picoではi2c0とi2c1の二組のバスがサポートされ、いろいろなピンで利用できるので、汎用性が高いです。 次に示すのは、そ
ラズパイのi2ctoolsにあるi2cdetectと同じものが、pico\pico-examples\build\i2c\bus_scanに入っています。最初に、このソースを利用して、i2cscann
Picoのスペックにクロックは最大133MHzと書かれています。RP2040 Datasheetの「2.15. Clocks」には、分周器を使って、マイコンの周辺モジュール用のクロックが作られている図
マイコンは、たくさんの機能や周辺モジュールを内蔵しているので、一つのピンに複数の機能を割り当てています。利用者が、自分でどの機能を使うかを最初に定義します。Arduinoでは、限定していますが、Pic
第2回でUARTでラズパイとPicoを接続しました。printf文を使って出力します。 ●ソースとCMakeLists.txt Hello, World!のプログラムに必要なのは、ソース・プログラムと
Lチカから始めます。すでにソースはpico/pico-examples/blinkにあります。入っているのは、 blink.c CMakeLists.txt の二つです。blink.cは普通のLEDを
前回、開発システムをインストールし、実行ファイルをPicoに書き込んで動作を確かめました。実機を目の前にして利用する使いかたでは、今回の説明はスキップしてください。 ここでは、リモートで開発する手順を
Picoのプログラミングをするうえで、とても有用なのが、ドキュメントです。Cortex-M0+というマイコン自体の解説、周辺機器をつなぐときのサンプル回路やサンプル・プログラム、C/C++やMicro
●標準入出力 プログラムでprintfやscanfは標準入出力が使われます。ここでは、UART0ポートを通して利用します。 Pico UART0名称 Pico 物理的ピン番号 Pico GPIOピン番
C/C++言語でPicoのプログラムを作ります。開発環境はラズパイ4です。 使用環境 Raspberry Pi Raspberry Pi 4 Model B 2MB OS Raspberry Pi O
SPIバスは、I2Cバスに比べて転送速度が速いため、グラフィックの表示や表示面積の大きな表示器で使われます。マニュアルでは、board.SPI() → busio.SPIと書かれているので、busio
I2Cバス用センサは、前回のようにライブラリがあれば、すぐに使えました。I2Cのリード/ライトを個別にプログラミングします。と思ったのですが、すでに気圧センサLPS25HBの記事がありました。 Cir
I2Cバスには、複数のデバイスをつなげて利用できます。Picoをマスタ、デバイスをスレーブと呼びますが、昨今の用語の使いかたの変更により、将来は呼び方が変わるかもしれません。Picoはマスタが複数いて
I2Cが使えるライブラリが複数あります。最初は、実績のあるbusioモジュールを使います。 ●OLEDディスプレイの配線 OLEDボードの端子 Picoの端子(GPIO) 名称 GND GND GND
audiobusioモジュールは、オーディオのディジタル入出力を扱います。S/PDIFは含まれておらず、出力はI2S、入力はPDMです。 audiocoreモジュールは、メモリ内のデータ、wavデータ
PWM出力用のモジュールがpwmioです。周波数、デューティ比を変化させて実行してみます。 ●周波数 800Hz、デューティ50%の波形(黄色)です。 import pwmio import time
RP2040 Datasheetによれば、Picoのアナログ入力は5本あります。1本はチップにある温度センサに直接つながっています。前回のmicrocontroller.cpu.temperature
microcontrollerモジュールは、CPUの諸情報、特定なピンへのアクセスに使われます。 import microcontroller print(microcontroller.cpu.te
ディジタル入出力digitalioモジュールを調べます。 ●出力 前回、動作確認に使ったLチカのプログラムです。 import digitalio from board import * import
連載のSTEP1はとてもコンパクトなTrinket M0を、STEP2はArduino MEGAと大きさが同じGrand Central M4 Expressを利用しました。STEP3はAdafrui