Armadilloフォーラム

Armadillo-640 RTCオプションモジュールの使用

k.sato

2024年9月12日 11時31分

佐藤です。

いつもお世話になっております。

Armadillo-640をABOSで開発していてRTCオプションモジュールを使用したいと考えております。

3.2. オプションモジュールの対応
https://manual.atmark-techno.com/armadillo-610/armadillo-6x0_abos_migra…

18.5. Armadillo-600シリーズ RTCオプションモジュール
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…

上記でABOSで使用できるのとハードウェアの接続はわかったのですが、
ソフトウェアはどう設定すればよいかドキュメントが見つけられませんでした。

ATDEのat-dtwebのDevice Tree EditorからOPTION BOARDのRTCMOD-00選択して書き換えれば
RTCオプションモジュールを搭載することで自動的にそちら側を使用するのでしょうか?

設定方法を教えていただけませんか?

以上、よろしくお願い致します。

コメント

at_mizo

2024年9月13日 9時20分

溝渕です。

> ATDEのat-dtwebのDevice Tree EditorからOPTION BOARDのRTCMOD-00選択して書き換えれば
> RTCオプションモジュールを搭載することで自動的にそちら側を使用するのでしょうか?

ご推測の通り、at-dtwebでRTCMOD-00選択すると利用可能になります。

at-dewebで選択すると、RTCオプションモジュールに搭載のRTCが、"/dev/rtc0"となるため、プライマリRTC(hwclockコマンド等からデフォルトで利用されるRTC)として利用できるようになります。

k.sato

2024年9月13日 9時40分

溝渕様

佐藤です。

回答ありがとうございます。
> ご推測の通り、at-dtwebでRTCMOD-00選択すると利用可能になります。
>
> at-dewebで選択すると、RTCオプションモジュールに搭載のRTCが、"/dev/rtc0"となるため、プライマリRTC(hwclockコマンド等からデフォルトで利用されるRTC)として利用できるようになります。

RTCオプションモジュール部分を基板に起こそうと思い調査したのですがRTCのNR3225SAが生産終了しています。
他のRTCを使用することはできるのでしょうか?

以上、よろしくお願い致します。

at_mizo

2024年9月13日 10時54分

溝渕です。

> 他のRTCを使用することはできるのでしょうか?

ArmadilloとRTCに特に依存関係は無いので、ハードウェア的に接続でき、デバイスドライバがあるものは使えると思います。

ハードウェア的には、電源とI/O電圧が3.3Vのものを選定すると良いかと思います。

デバイスドライバの対応状況については、Linuxカーネルソースの以下をRTCの型番でgrepすると、だいたいの対応状況がわかります。
linux-4.14-at/drivers/rtc/
ただ、これだと完全にはわからないので、WEBでドライバの有無を調べるのも一つの手段かと思います。

k.sato

2024年9月13日 11時42分

溝渕様

> RTCの例として、Armadillo-640の兄弟機であるArmadillo-610 拡張ボードにはRV-8803-C7-TA-QCが搭載されています。
>
> https://armadillo.atmark-techno.com/resources/documents/armadillo-610/s…
ありがとうございます。
Armadillo-610は製品購入していないのでリンク先が見れませんでしたが「RV-8803-C7-TA-QC」が搭載されているのですね。

linux-4.14-at/drivers/rtc/に「rtc-rv8803.c」があるのを確認できました。

[ATDE ~/linux-[VERSION]]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
また、上記よりカーネルコンフィギュレーション設定画面のDevice Drivers→Real Time Clockを確認しました。

  │ │                              *** I2C RTC drivers ***                                                   
  │ │                            < >   Abracon AB-RTCMC-32.768kHz-B5ZE-S3                                    
  │ │                            < >   Abracon AB-RTCMC-32.768kHz-EOZ9                                       
  │ │                            < >   Abracon ABx80x                                                        
  │ │                            < >   Dallas/Maxim DS1307/37/38/39/40/41, ST M41T00, EPSON RX-8025, ISL12057
  │ │                            < >   Dallas/Maxim DS1374                                                   
  │ │                            < >   Dallas/Maxim DS1672                                                   
  │ │                            < >   Haoyu Microelectronics HYM8563                                        
  │ │                            < >   Maxim MAX6900                                                         
  │ │                            <*>   NDK NR3225SA                                                          
  │ │                            < >   Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A                         
  │ │                            < >   Intersil ISL1208                                                      
  │ │                            < >   Intersil ISL12022                                                     
  │ │                            < >   Intersil ISL12026                                                     
  │ │                            < >   Xicor/Intersil X1205                                                  
  │ │                            < >   NXP PCF8523                                                           
  │ │                            < >   NXP PCF85063                                                          
  │ │                            < >   NXP PCF85363                                                          
  │ │                            < >   Philips PCF8563/Epson RTC8564                                         
  │ │                            < >   Philips PCF8583                                                       
  │ │                            < >   ST M41T62/65/M41T80/81/82/83/84/85/87 and compatible                  
  │ │                            < >   TI BQ32000                                                            
  │ │                            <*>   Seiko Instruments S-35390A                                            
  │ │                            < >   Ramtron FM3130                                                        
  │ │                            < >   Epson RX8010SJ                                                        
  │ │                            < >   Epson RX-8571/RX-8581                                                 
  │ │                            < >   Epson RX-8025SA/NB                                                    
  │ │                            < >   EM Microelectronic EM3027                                             
  │ │                            < >   Micro Crystal RV3028                                                  
  │ │                            < >   Micro Crystal RV3032                                                  
  │ │                            <*>   Micro Crystal RV8803, Epson RX8900                                    
  │ │                            < >   ZXW Shenzhen whwave SD3078    

ここでチェックされているデバイスを使用すれば特に設定を弄る必要はないのでしょうか?

以上、よろしくお願い致します。

at_mizo

2024年9月13日 13時10分

溝渕です。

> ここでチェックされているデバイスを使用すれば特に設定を弄る必要はないのでしょうか?

いえ、上記ではLinuxカーネルイメージにデバイスドライバが組み込まれるだけです。この他に、Device TreeへのRTCの追加が必要となります。

以下を参考に、rtc_rv8803 nodeを追加してください。

linux-4.14-at/arch/arm/mach-imx/armadillo_iotg_a6_subboard/armadillo_iotg_a6_rtc_rv8803.dts

k.sato

2024年9月13日 14時06分

佐藤です。

> > ここでチェックされているデバイスを使用すれば特に設定を弄る必要はないのでしょうか?
>
> いえ、上記ではLinuxカーネルイメージにデバイスドライバが組み込まれるだけです。この他に、Device TreeへのRTCの追加が必要となります。
>
> 以下を参考に、rtc_rv8803 nodeを追加してください。
>
> linux-4.14-at/arch/arm/mach-imx/armadillo_iotg_a6_subboard/armadillo_iotg_a6_rtc_rv8803.dts
Device TreeへのRTCの追加とはarmadillo_iotg_a6_rtc_rv8803.dtsのファイル名やインクルードパスを修正し
ATDEの/linux-[VERSION]/arch/arm/boot/dts/へコピー、makeしてdtboファイルを作成。
dtboファイルをArmadillo-640の/boot/へ配置し/boot/overlays.txtへ追記して永続化といった形でよいでしょうか?

以上、よろしくお願い致します。

k.sato

2024年9月18日 10時29分

佐藤です。

Device TreeへのRTCの追加方法は前回のやり方でよいのでしょうか?

また、SPIのRTCである「Microchip MCP795」を使用したいときはLinuxのmenuconfigからチェックを入れ、
at-dtwebからECSPI1を指定することで外部RTCに切り替えてくれるのでしょうか?

以上、よろしくお願い致します。