Вопрос по портам GPIO |
Ответить |
Автор | |
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 14 Апрель 2010 Категория: инжерен Online Status: Offline Публикации: 6 |
Опубликовано: 13 Апрель 2011 04:56 |
Есть плата Advantech PCM-4153 на ней порты цифрового ввода/вывода GPIO. Не могу получить доступ к этим портам, не известны адреса регистров управления этими портами. В документации описана работа с этими портами через библиотечные функции т.к. работаю в QNX нет возможности изпользовать эти функции, необходимы адреса регистров для управления портами.
Кто нибудь использовал порты GPIO на процессорных модулях Advantech? Как можно узнать адреса регистров? В документации есть пример на ассемблере, из него не могу понять как идет обращение к регистрам управления. GPIO configuration register: Input_Reg EQU 00h Output_Reg EQU 01h Inversion_Reg EQU 02h Configure_Reg EQU 03h -------------------------------------------------------- Bh means int15 function you want to call: Bh = 01h ; Get GPIO config Bh = 02h ; Set GPIO config Bh = 03h ; Get GPIO Status Bh = 04h ; Set GPIO Status -------------------------------------------------------- Sample code : ;=============================================================== ; Set GPIO Config ; Input: ; ax=5E87h ; bh=02h ; cl= n ; n means which group of GPIO you want to set ; bl= the n group of gpio config ; bit 0 = gpio 0 , 0 => output pin; 1 => input pin ; bit 1 = gpio 1 , 0 => output pin; 1 => input pin ; ..... ; bit 7 = gpio 7 , 0 => output pin; 1 => input pin ; output: ; ax=5E78 ;function success, other value means function fail ;=============================================================== mov ax, 5E87H ;int15 hook as 5E87H mov bh,02h mov cl,Configure_Reg mov al, bl ;( bl = bit0~7 = GPIO0~7 : 0 => output pin; 1 => input pin) call Ct_I2CWriteByte mov ax,5E78h ;return function success |
|
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
|
Добрый день!
С вашего кода видно что, есть еще подпрограмма Ct_I2CWriteByte в которой входные данные это регистры ax bx и cl. Судя по названию функции Ct_I2CWriteByte можно сделать вывод, что контроллер GPIO находится на шине I2C, а сама функция является драйвером этой шины. Выложите код функции I2CWriteByte будим разбератся дальше. |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 14 Апрель 2010 Категория: инжерен Online Status: Offline Публикации: 6 |
|
я бы и сам хотел бы посмотреть код функции I2CWriteByte, но в документации к модулю и на сайте advantech ничего не нашел по этой функции. Подобные примеры видел в описании так же на модули AEON, но так же без указания адресов. Обращение к регистрам порта GPIO действительно идет по шине I2C. В bios нечего ни нашел о этих портах.
|
|
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
|
А сама библиотека с этой функцией есть?
Если есть скиньте на почту ASUTPсобакаSemkrточкаru попробую вам помочь. |
|
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
|
Можно попробовать посмотреть PCM-4153-SUSI Software API
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 14 Апрель 2010 Категория: инжерен Online Status: Offline Публикации: 6 |
|
PCM-4153-SUSI Software API качаю, установлю буду смотреть. Есть библиотека под Windows, но в перечне функций библиотеки не нашел этой функции ... еще смотрю. Так же есть приер под Linux, но там тоже функции вызываются из библотеки и такой функции пока не нашел ... еще тоже разбираюсь.
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 14 Апрель 2010 Категория: инжерен Online Status: Offline Публикации: 6 |
|
PCM-4153-SUSI Software API, так же как и библиотека поставляемая с платой, для работы с портами GPIO из Windows (на модуле установлен QNX) .Работа с портами через функции PortDirection, ReadPort, WritePort, которые вызываются из dll, функции которые используется в ассемблерном примере I2CWriteByte нет, работы с шиной I2C так же через функции WriteIIC, ReadIIC.
|
|
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
|
Вот может это чем-то поможет:
Ct_I2CWriteByte Proc Near push ax push cx mov dx,SMBus_Port +04h ;SMBus_Port(500h) mov al,ch ;ID cmd(Write) out dx,al call Delay5ms call Delay5ms pop ax mov dl,03h out dx,al ;Index call Delay5ms call Delay5ms pop ax mov dl,05 out dx,al ;Data0 call Delay5ms call Delay5ms mov dl,02h mov al,48h out dx,al ;write data call Delay5ms call Delay5ms mov cx, 100h @@: newiodelay loop short @B ret Ct_I2CWriteByte Endp CALL Check_Chip Это взята здесь http://www.tri-m.com/products/aaeon/files/manual/com945_man.pdf Только здесь чип другой. SMBus_Port(500h) – Это адрес шины для чипа Intel Здесь можно посмотреть для чипа CS5536: http://pdf1.alldatasheet.com/datasheet-pdf/view/169131/NSC/CS5535.html |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 14 Апрель 2010 Категория: инжерен Online Status: Offline Публикации: 6 |
|
Скачал datasheet CS5535 это как раз тот чип который на модуле установлен, в документации есть подробное описание адресов регистров. Пока не совсем понятно, но нашел в инете исходники драйверов для чипа CS5535 под Linux буду во всем разбираться.
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |