MSP432P401Rことはじめ(購入前の下調べ)
購入前の下調べ。
MSP432は、TI社が出しているマイコン。正直、素人が使うのであれば同じCoretexを使うのであればSTM32の方が圧倒的に開発時間が少なくて済む。なにしろ、あれこれしたいと思っても情報量がネットであまり得られない。MSPをよく使うヘビーユーザの方に怒られるかもしれないが、情報量が少ないのも事実。学ぶには相当苦労する。
EVAキットのデータシート:
https://www.ti.com/lit/ug/slau597f/slau597f.pdf?ts=1620990223031
EVAキットの購入先
https://www.chip1stop.com/view/searchResUpt/InventryInfo?unqPartId=TI01*0208402&unqPartNm=MSP-EXP432P401R&keyword=MSP-EXP432P401R&partId=TI01-0389902
XDS110というデバッグ部分がついていて、USBからプログラム、デバッグができる。電源もPCから供給してくれる。また消費電力がどれぐらいか測定する部分とかがある。
下の部分が、MPUの部分でピン出しされている。開発がおわったらパッキっと切断するためかミシン目がシルク印刷されている。
【開発環境】CCS
Code Composer Studio
https://www.tij.co.jp/tool/jp/CCSTUDIO#downloads
ユーザ登録等なしでサクッとダウンロード。容量は1.1G程度。
MSP432 Driver Library (DriverLib)ってのがって、
MSPDRIVERLIB ドライバまたはライブラリ | TIJ.co.jp
MSP432P4xx SimpleLink™ Microcontrollers Technical Reference Manual (Rev. I) (ti.com)
MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
といったようにP1.0ピンをアウトプットに指定して、
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
でPINをHIGHにするといったAPIを使うプログラムを書く
のと、
GPIO Register Accessに書き込んでいく方法とある。
GPIO
GPIO Digital Ports Lecture (ti.com)
MSP432 Lab1 Introduction – Prof. Kaikai Liu (sjsu.edu)
UART
MSP430 USCI/EUSCI UART Baudrate Calculator (ti.com)
https://github.com/amartinezacosta/MSPIO
↓UARTでのprintf を使えるようにする。文字列Stringを送ることはできるが、受け取るのは?一文字受け取りは問題ないが・・・
https://43oh.com/2015/05/how-to-add-printf-support-for-the-msp432-launchpad-serial-port/
SPI
PowerPoint Presentation (msoe.edu)
MSP432 Lab3 UART and SPI – Prof. Kaikai Liu (sjsu.edu)
I2C OLED
GitHub - boykod/SSD1306-I2C-library-for-MSP430-432
MSP432のクロック
MSP432 Lab2 Interrupt and Clock System – Prof. Kaikai Liu (sjsu.edu)
【TI:マイコン】 MSP432のクロック構成について | TED Support Web (teldevice.co.jp)
ADC
Sending MSP432’s ADC samples over “backchannel” UART | Project Echo (wordpress.com)
Timer
https://faculty-web.msoe.edu/johnsontimoj/EE2920/files2920/timer_a.pdf
レジスタを直接いじる経験がない人向けビット演算のおさらい
& AND 論理積 どちらかが0なら0
| OR 論理和 どちらかが1なら1
^ XOR 排他的論理和 両方同じなら0,違っていたら1
~ NOT 論理否定(ビット反転) 1と0を逆にする(反転)
**********************************
uint16_t EDFAI;
if (EDFAI>=1000){EDFAI=0;}
char RS232msg[16];
sprintf(RS232msg, "IC2=%d\r", EDFAI);
EDFAI=EDFAI+1;
コメント
コメントを投稿