s-saitou
2019年8月7日 14時33分
お世話になっております。斉藤と申します。
Armadillo-640製品マニュアルの「16.7.CON10(JTAGインタフェース)」の中で、「CON10に接続されている信号線は、JTAG以外の機能でも使用可能です」とあり、「Armadillo-640マルチプレクス表」を見るとGPIO1-11~15が割り当てられていますが、
GPIOとして使用する方法をご教示頂けますでしょうか。
armadillo-640-expansion-interface.dtsの&iomuxcの中に
MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15 0x400010b0 // CON10_2
MX6UL_PAD_JTAG_TDI_GPIO1_IO13 0x400010b0 // CON10_3
・・・
を追記してデバイスツリーを変更後に、
#echo out > /sys/class/gpio/gpio15/direction
#echo 1 > /sys/class/gpio/gpio15/value
などと制御してみますが、ピンは変化しない状況です。
JTAGなのでCPU(i.MX6ULL)自体の設定あるいはカーネルコンフィグ等も確認しているところですが・・・
コメント
at_makoto.sato
佐藤です。
添付しましたパッチを適用していただけると、devmem2で直接レジスタを操作せずにJTAGピンをGPIOとして使用できます。
パッチをlinuxカーネルソースディレクトリ直下に置き適用してください。
[atde7]$ patch -p 1 < 0001.patch [atde7]$ patch -p 1 < 0002.patch [atde7]$ patch -p 1 < 0003.patch
その後、製品マニュアルを参照してカーネルをビルドしてください。
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
ビルドできた uImage と armadillo-640.dtb を armadillo-640 本体へ転送し書き換えてください。
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
以上でJTAGピンをGPIOとして使用できるようになります。
ファイル | ファイルの説明 |
---|---|
0001.patch | |
0002.patch | |
0003.patch |
s-saitou
s-saitou
2019年8月9日 14時11分
すみません、自己解決しました。
デバイスツリーを使った方法は、色々と勉強不足で結局分かっていないのですが、
↓を参考にdevmem2を使用して、直接レジスタ(SW_MUX_CTL Register)を変更することでGPIOとして制御することが出来ました。
https://armadillo.atmark-techno.com/howto/accessing-any-address
CN10-2ピン(JTAG_TRST_B/GPIO1_IO15)の場合
#./devmem2 0x20E0058 word 0x00000005 ←MUX_MODEをGPIO1_IO15に設定
後は
#echo 15 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio15/direction
#echo 0 > /sys/class/gpio/gpio15/value
でやるか、devmem2で直接レジスタを叩く