Fintek F71869A Управление GPIO

Я хочу управлять GPIO на ПК Jetway Atom JBC373F38 (http://www.jetwaycomputer.com/JBC373F38.html). Я обнаружил, что GPIO на этом ПК является частью (GPIO3) микросхемы Super IO Fintek F71869A. Я сделал небольшой код для управления этим выводом GPIO в Linux с использованием портов 0x2E/0x2F, но он не работает. Может ли кто-нибудь иметь рабочий пример для этой проблемы или сказать мне, в чем моя ошибка в моем коде. Это мой код:

#define AddrPort 0x2E
#define DataPort 0x2F

#define WriteByte(port, val)    outb(val, port)
#define ReadByte(port)          inb(port)

#define PORT_INDEX  0xC0
#define PORT_DATA   0xC1

    //Enable 
    WriteByte(AddrPort, 0x87);
    WriteByte(AddrPort, 0x87); //Must write twice to entering Extended mode

    //< Select Logic Device >
    WriteByte(AddrPort, 0x07); // Enter selecting mode
     WriteByte(DataPort, 0x06); // Select logic device 06h: GPIO


     //<Output Mode Selection> //Set GP30-37 to output Mode
    WriteByte(AddrPort, PORT_INDEX); // Select configuration register C0h
    WriteByte(DataPort, 0xFF);

    //<Output Value>
    WriteByte(AddrPort, PORT_DATA); // Select configuration register C1h
    WriteByte(DataPort, 0xFF); //Set all bits HIGH

person mophong    schedule 30.06.2014    source источник


Ответы (1)


Вы включаете конфигурацию, написав 0x87 дважды, но отключаете ли вы режим конфигурации, отправляя WriteByte(AddrPort, 0xAA);, когда закончите.

Ваши AddrPort и DataPort также кажутся неправильными; они должны быть 0x4E и 0x4F.

См. раздел 6 этой документации.

Говорится:

Ниже приведен пример включения и отключения конфигурации с помощью отладки.

-o 4e 87
-o 4e 87 (enable configuration)
-o 4e aa (disable configuration)
person Tim    schedule 20.08.2014
comment
Спасибо, Тим, вы правы, я изменил AddrPort/DataPort на 0x4E/0x4F, и теперь все работает хорошо. - person mophong; 22.08.2014