投稿

6月, 2021の投稿を表示しています

MSP432 ERROR: the connected device is not msp432p401r

イメージ
cortex_m4_0: * warning *: the connected device is not msp432p401r ・・・ といったエラーが出て書き込めなくなった。 迂闊に、クロックを48MHzに設定しようとするとこうなるらしい・・・対処法も一応乗っていて、 https://www.ti.com/lit/ug/slau597f/slau597f.pdf?ts=1623375496064&ref_url=https%253A%252F%252Fwww.google.com%252F のFAQにの通りに・・・ View -- Target configurationsと進んで、MSP432P401R.ccxmlを右クリック。Launch Selected configrationを選択 最初は、Texas・・・と1つしか見えていないんで、右クリックしてshow all core Non Debuggable devicesが見えるが階層が隠れているので表示し、これをConnect Targetを選択して接続する。 接続したら、Script-defalt-MS432_Factory_Resetを選択する。 すると中身を消去しに行ってくれて、デバッグをとめて、リスタートすると工場出荷時に戻る。 ってってやって直ぐに戻ってくれれば苦労はしない! 結果決め手がわからないうちに、戻った・・・・ 1・まずすべての結線なんかははずして、”身軽”に 2・MS432_Factory_Resetを選択、デバッグモードを一度止めたら、USBを抜いてさして。 ってなことを繰り返しているうちに、元に戻った・・・・同じ症状が出てここにきてくれた方、申し訳ない。いえることは、データシートの手順の通りを信じて何度かしていればもとに戻るということ。

MSP432 ADS8341

イメージ
  ADS8341 https://www.tij.co.jp/jp/lit/ds/symlink/ads8341.pdf?ts=1623405262771&ref_url=https%253A%252F%252Fwww.tij.co.jp%252Fproduct%252Fjp%252FADS8341%253FkeyMatch%253DADS8341%2526tisearch%253Dsearch-everything 16ビットの4チャンネルADC。 SPIの設定 const eUSCI_SPI_MasterConfig spiMasterConfig2 = {         EUSCI_B_SPI_CLOCKSOURCE_SMCLK,             // SMCLK Clock Source         12000000,                                  // SMCLK = DCO = 12000000         1200000,                                  // SPICLK = 12000000         EUSCI_B_SPI_MSB_FIRST,                     // MSB First         EUSCI_B_SPI_PHASE_DATA_CAPTURED_ONFIRST_CHANGED_ON_NEXT, //up edge         EUSCI_B_SPI_CLOCKPOLARITY_INACTIVITY_LOW, // Low polarity         EUSCI_SPI_3PIN         //EUSCI_SPI_4PIN_UCxSTE_ACTIVE_LOW                          // 3Wire SPI Mode }; 1200000のところは2.4Mまでいけるとデータシートには記載しているが、余裕を見て半分の1.2Mとしている。 タイミングチャートを見ると、MSP432から送りだし、ADS8341がDINの内容を読むときは、立ち上がりのエッジで、送りだすときは、立下りのタイミング・・というしろものだが、EUSCI_B_SPI_PHASE_DATA_CAPT

MSP432 DAC8555

イメージ
4チャンネルの16bitDACのDAC8555をMSPから制御  特徴はバッファを2つもっていて、同時に4つチャンネルを変更することもできる点。 https://www.tij.co.jp/jp/lit/ds/symlink/dac8555.pdf?ts=1623402965967&ref_url=https%253A%252F%252Fwww.tij.co.jp%252Fproduct%252Fjp%252FDAC8555 データシートを見ながら、電源回りにパスコン等をつけて回路を形成。Vrefには、 ISL21080CIH315Z-TK(基準電圧1.5V)を利用し動作確認をしている。 各ピンの機能を簡単に。データシートの要約。すべての動きを試した訳ではない。 IOVDD:ロジック回路の電圧。MSP432の場合は、3.3Vだが、5.0Vのロジックと混在する時には、ここに与える電圧で変更する RST:LOWの時リセットされて、ゼロかまたは、Vrefの中間の値の出力にする。リセット時にゼロか、中間の値にするのかを選択するのがRSTSEL。中間にしたい場合はHIGHに接続、ゼロにしたい場合はGNDに接続。 ENABLE:読んで字のごとく。動作時にはLOWにする。HIGHだとSPIのコマンドを受け付けない。 LDAC:ソフト的にバッファーの値をアップデートし出力を変更できるが、このピンを使ってハード的にもできる。 【動作】 よくあるDACと同じで最初の8ビットがコントロールビットを送りこんで、続いて16ビットの設定したい値のデータを送信する。 LD1,LD0の組み合わせで、チャンネル1~4までまずはデータを送ってから、同時に電圧出力を変化させる事もできるし、各チャンネルを個別に次々に電圧を変更していく事もできる。このあたりは、データシートに任せて、後者で実装する。この時、LD0=0,LD=1にすることになる。DACSelect1,0は進数でチャンネルを設定するところ。PD0は、パワーモードの選択。DACなので特段苦労することはないかと。  /* Transmitting data to slave */  MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN0);  MAP_SPI_transmitData(EUSCI

MSP432 UART printf to PC

イメージ
  マルチビットを読み込むのは、以前できていたので、今度は文字列をPCの送付する。 こちらはコードを書くというより、printfを使えるようにする。 https://43oh.com/2015/05/how-to-add-printf-support-for-the-msp432-launchpad-serial-port/ の通り。 手順 【前準備】 https://github.com/bluehash/MSP432Launchpad に行って、[↓CODE]のボタンをクリックしてDownLoad zipを選択してファイルをダウンロード。ZIPを解凍する。 必要なのは printfOverride.c というファイルで、これをCCSのプロジェクトにドラッグ、コピーするか、移動してくるか?聞かれるがコピー。 printfOverride.cを開いて、13行目にdriverlib.hをインクルードしているが、パスが通っていないので、#include <ti/devices/msp432p4xx/driverlib/driverlib.h>に置き換えをする。 準備はこれで終わり。 【使い方】 普通のc言語でprintfを使うので #include <stdio.h> をインクルードしておく。UARTなどの設定は、これまで通り。 ダウンロードしたフォルダーに例があるように普通にprintfが使える。 printf("\r\nPrintf support for the launchpad\r\n"); printf("Decimal(10) :%d\r\n", 10); printf("Hex(10)     :%x\r\n", 10); printf("float       :%f\r\n", 4.32); 以下は例。スイッチを押すとコンソールに、0から9までカウントアップしていき表示する例。 /* --COPYRIGHT--,BSD  * Copyright (c) 2017, Texas Instruments Incorporated  * All rights reserved.  *  * Redistribution and use i

MSP432 how to change heap size

イメージ
  ".sysmem" section with default size of 0x800, use the -heap.... という警告。エラーではいのでビルトはできる 大きな容量が必要なインクルードファイル、例えば#include <stdio.h>とかを読み込むと出てくるようになる。 ヒープ領域とは、動的に確保と解放を繰り返せるメモリ領域のこと。ヒープ領域はデータの仮置き場といったところ。 対処:CCSのProject Explorerで当該のプロジェクトを右クリック。 一番したにPropertiesがあるので開く。 Linkerの下に、Basis Optionsというのがあるので選択する。ここに Heap size for C/C++ dynamic memory allocation (--heap_size_ -heap) という欄があるので、ここに数字を入れる。320とかにしておく。 リンクのスイッチを入れてくれるようになる。 これで警告は消えてくれる。