ITE SuperIO 入门
最近在研究ITE的superio。不同型号之间操作方法基本大同小异。
参考文档:
IT8786E-I_B_V0.2.pdf
IO端口
地址 2eh
数据 2fh
。
编辑模式(MB PnP)
操作寄存器需要先进入该模式。
进入:可以向2eh
依次发送 87h, 01h, 55h, 55h;
1 |
|
退出:在进入后可以向全局寄存器2h写入2(0b10)即可退出。
1 |
|
内部寄存器
每个寄存器占1字节。每个寄存器都有自己的序号,需要使用序号访问寄存器。
寄存器的种类
内部有两种寄存器,一种是全局的,一种是和逻辑设备相关的。后者在不同的逻辑设备下,同一个寄存器的意义并不一致,随着设备的切换读出来的值也不尽相同。可以参考手册。前者在所有的逻辑设备中的意义都相同,比如芯片id(20h和21h)
寄存器的读写
在编辑模式下,先向地址端口2eh
写入欲操作寄存器的序号。比如要操作序号为07h
的寄存器:
1 |
|
这时可以对数据端口2fh
使用out写入或in读出:
1 |
|
逻辑设备操作
每个逻辑设备都有自己的逻辑设备号,这个也是大同小异。操作某逻辑设备(写入其内部寄存器)需要先指定逻辑设备号(LDN)。
向全局寄存器07h
写入逻辑设备号(LDN)即可选定欲操作的逻辑设备。
比如GPIO的LDN是07h
1 |
|
这样就可以操作GPIO设备的内部寄存器了。
例子:设置第8组GPIO的模式为输出,并输出全1
8组有8条gpio接口(80-87)。根据手册,cfh
寄存器控制GPIO8组的模式,一个bit控制一条GPIO,为0输入,为1输出。
操作gpio端口需要从62h和63h取一条双字节的基址,通过这个基址端口操作端口电平。
1 |
|
ITE SuperIO 入门
https://www.hakurei.org.cn/2024/10/27/ite-superio-basic-useage/