最新のディスカッション
このインフィニオン(IPC50N04S5L-5R5 PG-TDSON-8-33)MOSFETを同期整流降圧コンバータアプリケーションに使用しています。
なぜこの100K抵抗がMOSFETのゲートとソースの間に使用されているのですか? (こちらのスクリーンショットを参照してください)
なぜ100Kなのか? この抵抗器に推奨される許容誤差はありますか?
抵抗の値を変更するとどうなりますか?
Show Less私の理解では、 "ld.w" メモリからレジスタにデータをロードしている場合、メモリの内容は変更されません。 しかし、次の場合は "ld.w"の後 命令が実行され、一部のメモリ内容が変更されます。 わかりにくいです。 誰かが同様の問題に遭遇しました。 以下は私の場合です、
1) "ld.w"を実行する前に 命令、0x6002387Cからのメモリ内容は「0x00000002、0x00000000,....."
2)「ld.w」を実行した後 d15, a[14]-0x002c"、0x6002387Cからのメモリ内容が "0x0DB30ABF, 0x09ED0CE7....."
Show Less
実装BT機能のHCIインターフェイスをデバッグするとき、および異常に遭遇したとき、参照用に常にゴールデンサンプルが必要になる場合があります。 だから私は参考のためにサンチの例を提供します。
以下のコード例を実行するCY8CKIT-062S2-43012を使用します。BTスタック統合4.6.0.2331;BTスタック3.8.0.18197
https://github.com/Infineon/mtb-example-btstack-freertos-hello-sensor
私はSaleas Logic8を使用してHCI信号をキャプチャしています。 添付ファイルを参照してください。 また、参考までに WICED HCI UART プロトコルを添付します。
ログから、次のようなCYW43012受信コマンドシーケンス CAN 確認できます。
1.HCI_SESET
2.DOWN_MINIDRIVER
3.WRITE_RAM...何度も繰り返す
4.LAUNCH_RAM
5.HCI_SESET
ここに来て、今BT FWはBT MCUで実行を開始します。 スタックからの次のHCIコマンドは、HCI仕様に従ってパーサーCAN
0x01 0x01 0x10 0x00、HCI_Read_local_version_Information
....
Show Lessこんにちは
3バイトのデータを受信するために、スレーブモードでSQPIモジュールを使用しようとしています。 しかし、RX FIFOにたどり着くデータは、毎回異なるビット量だけ右にシフトされているようです。
ここに私のテストセットアップがあります:QSPI3をマスターとして使用し、QSPI4を受信専用スレーブとして使用すると、それに応じて接続されます(チップセレクト、クロック、MOSI)。 送信したいデータ (0xFFFF0F [0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 QSPI4 が RX 割り込みをトリガーすると、DMA を使用して 1 つのエントリ (32 ビット) が QSPI4 RXEXIT からコピーされます。
QSPI4を正しく構成したと思います:グローバルコンとGLOBALCON1の設定、グローバルコンを使用したステートマシンとFIFOのリセット。B.リセット、ベーコンをQSPI3に使用するのと同じ値に設定し、モジュールがバコンエントリーからベーコンに値を適用できるようにデータエントリにデータを入力し、ECONでタイミングを構成し、最後に GLOBALCON.B.MS = 0x2を設定してスレーブモードに入ります
QSPI3を使用してこれらの3バイトを送信すると:0xFFFF0F(0b111111111111111111111111111111111111111)
QSPI4がまったく同じデータを受信することを期待します。 しかし、代わりに私はデータを取得しますが、右にシフトしました。 これが最初のいくつかのレセプションです:
0b000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
0b000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
0b000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
0b000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
0b000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
0b000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
送信のたびに、データがもう1ビット右にシフトされるようです。
また、QSPI4のステータスレジスタのERRFLAGSでSLSIの不活性化エラーが誤って配置されましたが、SLSI信号はオシロスコープで正常に見え、両方のモジュールに同じECONおよびBACON設定を使用しているため、SLSIの誤った不活性化エラーは実際には発生しないはずです
誰かがこれを引き起こしている可能性があるものを知っていますか?
両方のモジュールに使用するすべての構成パラメーターを次に示します。
グローバコン:
TQ = 63
SI = 0
期待 = 0xF
ポンド = 0
DEL0 = 0
ストロボ = 0
SRF = 0
スティップ = 0
EN = 1
MS = 0
アレン = 0
リセット = 0
GLOBALCON1:
エラー = 0
TXEN = 0
RXEN = 1
PT1EN = 0
PT2EN = 0
USREN = 0
TXFIFOINT = 0
RXFIFOINT = 0
PT1 = 0
PT2 = 0
TXFM = 1
RXFM = 2
ベーコン:
最後 = 1
IPRE = 5 (プリスケーラ 1024)
アイドル = 1
LPRE = 0 (プリスケーラ 1)
鉛 = 1
TPRE = 0 (プリスケーラ 1)
トレイル = 1
パーティ = 0
UINT = 0
MSB = 1
バイト = 0
DL = 23
CS = 0
エコン:
Q = 32
A = 0
B = 0
C = 1
みなさん!
私は現在、私のプロジェクトにSENTプロトコルメッセージ受信を実装しようとしています。 GithubにはSENTのサンプルコードがないため、それを理解するのは本当に難しいです。 私はTC375LKを使用しています。
iLLDの「SENTインターフェイスドライバーの使用方法」を読みながら、 そこからすべてをコピーし、ピンをピンに変更し、Vectorインターフェイスを(IfxSent_SENT0A_P40_0_IN)に接続しました。
しかし、CANoe経由でベクター VN1640AからSENTメッセージを送信する場合、Aurixマイクロコントローラーで割り込みは生成されません(デバッガーから確認できます)。 私の推測では、iLLDには割り込みの「インストール」部分があります。
最後に、初期化関数に割り込みハンドラをインストールします。
割り込みハンドラのインストール
IfxCpu_Irq_installInterruptHandler(&sentChannelISR, IFX_INTPRIO_SENT_CHANNEL);
IfxCpu_enableInterrupts();
「IfxCpu_Irq_installInterruptHandler」は、ソフトウェア割り込みが定義されている場合にのみ存在します。 しかし、私のプロジェクトでは、主にハードウェア割り込みを使用する必要があるため、SW割り込みを定義して割り込みサービスルーチンをマイクロに「インストール/構成」することはできません。
どのように私はこれを解決することができます任意のアイデア? 確かに、ハードウェア割り込みとISRを接続するために、私が欠けているものがあります。 MCMCAN では、フィルター構成を介して実行されます。 ここで同様のことを行う必要がありますか?
前もって感謝します!
こんにちは
私はimx8mnデバイスを使用しています&アンドロイド9 2.3.4で実行 です。
スマートフォンをiMX8mnにBluetoothで接続したいです。
接続が確立されたら、1秒ごとにスマートフォンを使用してiMX8mnデバイスにpingを実行します。 応答として、iMX8mnはその名前またはいくつかのデータを送信する必要があります。
そのようなアプリケーションやスクリプトはありますか? はいの場合は、私と共有してください。
感謝
スジェイ
こんにちは
特定のイベント(uartでパラメータを受け取る)で保存および削除 CAN ボンディングリストを持つCentralロールの例が必要です。
感謝
CY_U3P_USB_EVENT_SETCONFイベントを受信したときに、DMAチャネル作成コードをCyFxApplnInitからUSBイベントコールバックに移動しようとしていますが、API呼び出しがCyFxApplnInitにあったときに受信したことのないCyU3PDmaMultiChannelCreate API呼び出しからエラーコード0x40を受け取ります。 私のコードはCyFxApplnInitにあったときとまったく同じなので、なぜ突然無効な引数エラーが発生するのかわかりません。 コンパイル時にエラーや警告はありません。 以下は私のコードのスニペットです。 なぜ私がこれらのエラーが発生しているのかを特定する手助けをいただければ幸いです。
/* Creates UVC DMA channels. */
static void
CyFxUVCApplnDmaChannelCreate (void)
{
CyU3PEpConfig_t epCfg;
CyU3PDmaMultiChannelConfig_t dmaMultiCfg;
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
/* VideoStreaming USB IN Endpoint Configuration */
epCfg.enable = CyTrue;
epCfg.epType = CY_U3P_USB_EP_BULK;
epCfg.pcktSize = CY_FX_EP_BULK_VIDEO_PKT_SIZE;
epCfg.burstLen = CY_FX_EP_BULK_VIDEO_PKTS_COUNT;
epCfg.isoPkts = 0;
epCfg.streams = 0;
apiRetStatus = CyU3PSetEpConfig(CY_FX_EP_VID_BULK, &epCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "UVC start CyU3PSetEpConfig failed, Error code = 0x%x\r\n", apiRetStatus);
ApplnErrorHandler(apiRetStatus);
}
dmaMultiCfg.size = CY_FX_UVC_STREAM_BUF_SIZE; /* 16KB */
dmaMultiCfg.count = CY_FX_UVC_STREAM_BUF_COUNT; /* 4 */
dmaMultiCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; /* Should always be CY_U3P_DMA_MODE_BYTE */
dmaMultiCfg.notification = 0;
dmaMultiCfg.prodHeader = 0;
dmaMultiCfg.prodFooter = 0;
dmaMultiCfg.consHeader = 0;
dmaMultiCfg.prodAvailCount = 0; /* Must always be 0 */
dmaMultiCfg.cb = NULL;
dmaMultiCfg.validSckCount = 2;
dmaMultiCfg.prodSckId[0] = CY_U3P_PIB_SOCKET_0;
dmaMultiCfg.prodSckId[1] = CY_U3P_PIB_SOCKET_1;
dmaMultiCfg.consSckId[0] = (CY_U3P_UIB_SOCKET_CONS_0 | 0x02);
apiRetStatus = CyU3PDmaMultiChannelCreate(&glChHandleUVCStream, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaMultiCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint(4, "UVC start CyU3PDmaChannelCreate failed, Error code = 0x%x\r\n", apiRetStatus);
ApplnErrorHandler(apiRetStatus);
}
CyU3PUsbFlushEp (CY_FX_EP_VID_BULK); /* Recommended to flush after creation */
以下は、DMAチャネルを作成するCY_U3P_USB_EVENT_SETCONFの特定のケースです
case CY_U3P_USB_EVENT_SETCONF:
if (CyU3PUsbGetSpeed() == CY_U3P_SUPER_SPEED)
{
CyU3PDebugPrint(4, "UsbEventCB: Detected SS USB Connection\r\n");
}
else if (CyU3PUsbGetSpeed() == CY_U3P_HIGH_SPEED)
{
CyU3PDebugPrint(4, "UsbEventCB: Detected HS USB Connection\r\n");
}
/* Create UVC DMA channels */
CyFxUVCApplnDmaChannelCreate();
CyU3PDebugPrint(4, "UsbEventCB: Created UVC DMA\r\n");
glUVCEventProd = 0;
glUVCEventCons = 0;
glUVCEventError = 0;
glUACEventProd = 0;
glUACEventCons = 0;
glUACEventError = 0;
CyFxApplnPrintConf();
Show Less
こんにちは
JTAGインタフェースを用いたTC377TPフラッシュのプログラミングツールを開発する必要があります。
これを実装するには、次のものが必要です。
1. JTAG経由のデバイスへの接続を記載したドキュメント
2. フラッシュ書き込み(消去、プログラム)に必要なレジスタを記載した書類
ご協力ください。
感謝
Show Less