6年前お世話になっております。トランジスタ技術で紹介されたこともあるMARM1114-MBのIOピンについて相談したいことが御座います。(トラ技では基板の技術的なの質問は受け付けてないとのことでした)SPI通信にてチップセレクトピンであるPIO0_2のSSEL0を割り当てて通信を行いますが他のピンに移すこと、増やすことはできるでしょうか。現在は別のピンで実験を行っているのですが見かけ上は通信を行っているピン、何も起こらないピンの二つがありプログラムの所為かわからないですがボードが発熱し1枚壊してしまいました。質問をまとめますが・本基板での割り当て機能を無視し独自でピンを割り当てることができるのか。・SPI通信を行うためのチップセレクトピンだけでも増やせないか。(現在はSPIは1chですが最低でも3chまで増やしたい)・独自で割り当てることは安全か。ちなみに、トラ技についてきた基板は2枚ですが、今回は1枚のみを使う縛りとなっております。6年前その号持ってませんね。使われているARMマイコンの型番はなんでしょうか?・本基板での割り当て機能を無視し独自でピンを割り当てることができるのか。出来るはずですが回路図がないと分かりません。・SPI通信を行うためのチップセレクトピンだけでも増やせないか。(現在はSPIは1chですが最低でも3chまで増やしたい)SPI通信はしたことないですが、OUTPUTピンならどれでも使える気がします。・独自で割り当てることは安全か。回路を把握しているなら安全です。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前ソフト屋さんまさにその基盤です。ARMに興味があり2枚ついてて比較的安価だったので(ピンは別売りでしたが^^;)実験用に買ったのですがさっそく1枚破壊と......回路図ですが、取説についてきた大まかな回路図は持っているのですが、中身の詳しいものは持っておりません。回路の部分ですが、勉強不足で把握しきれておりません。現在考えているものはチップ1:元から割り当てられているSSEL0チップ2:PIO1_4(デフォルト無、機能:WAKEUP、B1_MAT3、AD5)チップ3:PIO1_11(デフォルト無、機能:AD6)の計3ピンを考えております。6年前SSEL0がハード的にレジスタなどの資源が割り当てられているみたいので、ライブラリ的にどう初期化されているかが問題ですかね。それなら1本で済みますよ。対応している必要はあると思いますが。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前どうやらスレーブ側はデイジーチェーンを採用しているようでした。URLを参考にして挑戦をしてみます。PIO1_4,11はCN2から出力されます。オシロやアナライザは持ち合わせておりませんが、ちょうどスレーブに信号を送って動きを見るテストを行ったところ信号が届いていませんでした。(プログラム側の問題?)プログラムの問題かもしれませんが、ピンの管理も3本分に増えるよりもデイジーチェーンを使った方がチップも僕自身もきっと健康的だと思うのでそちらから攻めてみます。デイジーチェーンで組んでみて相談しながらも解決の糸口(良くも悪くも)が見つかり次第解決にしたいと思います。それまで、ここのトピックがチラシの裏扱いになってしまうかもしれませんがお許しください。6年前デイジーチェーンの項目を読んで勝手にイメージをつかんでみたのですが確認のために教えていただきたいです。スレーブ番号はMOSI→S1DI→S1DO→S2DI→......S3DO→MISOとつないだ順番に割り振る(られる?)。クロック・スレーブセレクトの線はスレーブそれぞれにつなぐ。信号はスレーブ番号が若いデバイスから送る度に昇順でシフトしていく。6年前イメージで見る限り、割り振られるというかCS信号がローの間通過していくだけと言うかって感じでしょうか。私の印象ではシフトレジスタを繋いでいるだけという印象です。試してみたほうが早いと思います。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前IOピンについては粗方理解はできたのですが、SPIコマンドのシフトされる動きがうまく想像つきません。いうのもスレーブ先がSPIコマンド1バイトを4回貰って(1バイト目がコマンド、2~4バイト目がパラメータ)一つの命令とされるものだからです。本トピックタイトルとは趣旨がズレてしまっておりますが、SPI通信について知恵を貸していただきたいです。スレーブ1には9~12、スレーブ2は8~5、スレーブ3は4~1でいいのでしょうか?それとも、4回目を送るとスレーブ3の1回目の信号がなくなってしまったりはあるのでしょうか?参考に教えていただいたURL先の信号イメージが1バイトずつシフトしていってたので、その辺が少し気になりました。6年前スレーブ側の仕様というかスレーブ側ICの仕様が分からないの答えようがないですかね。LPC1114のユーザーマニュアルによるとSPIの最大送出ビットは16bitなので4byte=32bitは一度に送信できないと思います。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。齟齬がありましたね8ビットずつを4回送って1つのコマンドという意味になります。齟齬がありましたね8ビットずつを4回送って1つのコマンドという意味になります。SPI通信を行うサンプルには1つのコマンドを送る度にSSEL0を上げ下げしてましたが、SSEL0はコマンドを送信したいチップにシフトするために上げ下げをするんですよね?しかし、デイジーチェーンで行うということは1byteを4回送ってSSEL0を上げ下げするという解釈で大丈夫でしょうか?それとも1byte送る度にSSEL0は上下させるのでしょうか?そうするとコマンドが送りきる前に流れきってしまわないでしょうか?そういう意味なら、全部のスレーブ毎にSSEL0を上げ下げだと思います。送出してからSSEL0を上げでしょう。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。送出してからSSEL0を上げでしょう。(~CS:Low)4-2,3-2......~~~~と並列(平行?)に送っていくわけですね。見えてきた気がします。6年前そんな感じだと思います。実際には試してみないとわかんないですけどね。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前ありがとうございました!SPI通信、デイジーチェーンの必要最低限の知識だと思ったので、ある程度理解していないと残り一枚の基板も焼切ってしまうのではないかとナイーブになってました^^;本トピックの情報を参考にしコードを組んでみます。今回使っている基板(MARM1114-MB)はサンプルコードやオプションが充実しすぎてる所為かわからないのですが、何でも簡単に出来過ぎて深い部分を調べてもなかなか出てきてくれませんでした。お世話になりました、本トピックはこの辺で解決とさせていただきます。ありがとうございました。ミクプラは自由にリンクできます。