No.179
SPIでレガシーDMXを出力する回路の基本要素は揃いました。PICをプログラムして実験する段階です。
本業が忙しくなってしまったので棚上げですが、PICの基本設計は進めましょう。
PICは12F1822を使います。PIC12とありますが、PIC16系の8ピン版と思っていい製品です。
ピンアサインは次の通りです。
拡張ミッドレンジPICにはモジュールのアサインピンをある程度切り替えられる機能があります。
TRISとはI/Oピンの入出力方向を設定する要素です。
VDD
VSS(GND)
RA0 TX_Pilot_LED TRIS-OUTPUT(汎用I/Oとして使い、送信が行われるとLEDを点灯させます)
RA1 SPI.SCK TRIS-INPUT
RA2 SPI.SDI TRIS-INPUT
RA3 DMX.RESET TRIS-INPUT
RA4 USART.TX TRIS-OUTPUT(ただし、BreakTimeを作るためにINPUTにすることがあります)
RA5 CSC1 TRIS-INPUT(クロックの設定は優先順位が高いので、TRISはどちらでも機能します)
これには隠れたコツがあります。
SPIを使うならSPI.SDOがあります。使わないI/Oですがどこかにアサインしなければなりませんので、USART.TXと同じRA4にアサインします。被って出力がおかしくなりそうですが、SPIよりも優先順位が高いUSART.TXが出力されますから大丈夫。逆だったら困りましたけどね。
クロック発信子にはクリスタルオシレータ(8MHz)SG-8002DC(3.3V)を使います。普段はPIC1個に対し水晶発振子を1個使うのですが、今回は同じクロックレートで動く複数のPICを1枚の基板に載せますので、部品点数を減らす意味も含めてこれを使います。PICのI/Oピンも減るし。
#電子工作
本業が忙しくなってしまったので棚上げですが、PICの基本設計は進めましょう。
PICは12F1822を使います。PIC12とありますが、PIC16系の8ピン版と思っていい製品です。
ピンアサインは次の通りです。
拡張ミッドレンジPICにはモジュールのアサインピンをある程度切り替えられる機能があります。
TRISとはI/Oピンの入出力方向を設定する要素です。
VDD
VSS(GND)
RA0 TX_Pilot_LED TRIS-OUTPUT(汎用I/Oとして使い、送信が行われるとLEDを点灯させます)
RA1 SPI.SCK TRIS-INPUT
RA2 SPI.SDI TRIS-INPUT
RA3 DMX.RESET TRIS-INPUT
RA4 USART.TX TRIS-OUTPUT(ただし、BreakTimeを作るためにINPUTにすることがあります)
RA5 CSC1 TRIS-INPUT(クロックの設定は優先順位が高いので、TRISはどちらでも機能します)
これには隠れたコツがあります。
SPIを使うならSPI.SDOがあります。使わないI/Oですがどこかにアサインしなければなりませんので、USART.TXと同じRA4にアサインします。被って出力がおかしくなりそうですが、SPIよりも優先順位が高いUSART.TXが出力されますから大丈夫。逆だったら困りましたけどね。
クロック発信子にはクリスタルオシレータ(8MHz)SG-8002DC(3.3V)を使います。普段はPIC1個に対し水晶発振子を1個使うのですが、今回は同じクロックレートで動く複数のPICを1枚の基板に載せますので、部品点数を減らす意味も含めてこれを使います。PICのI/Oピンも減るし。
#電子工作