Программирование на языке C для управления светодиодом GPIO

У меня есть оборудование, на котором мне нужно включить светодиод, подключенный к GPIO (если посмотреть на спецификации оборудования, GPIO BCBUSB0 подключен к светодиоду), чтобы показать, что внутри него программное обеспечение работает нормально. Если по какой-то причине программное обеспечение не запущено, светодиод должен погаснуть или стать красным.

Теперь я подумал, что мне нужно настроить сторожевой таймер или что-то еще, что отправляет сигнал на Led через регулярные промежутки времени, чтобы показать статус, что программное обеспечение работает. если по какой-либо причине светодиод не принимает сигнал с определенным интервалом, он должен выключиться.

Я довольно комфортно использую язык C, но понятия не имею о программировании GPIO для включения / выключения светодиода. Любой совет или предложение будут большим подспорьем.

Спасибо


person samantha    schedule 19.02.2012    source источник
comment
На какой ОС вы работаете? Какая среда?   -  person reuben    schedule 20.02.2012
comment
его ядро ​​операционной системы Linux (Ubuntu) версии 2.6. Я получаю доступ к оборудованию через порт Ethernet. Я прочитал несколько документов и думаю, что мне нужно посылать сигнал HIGH и LOW через регулярные интервалы времени, чтобы показать, что программное обеспечение работает. Но я не знаю, с чего начать? Как указано, светодиод подключен к BCBUSB0 на GPIO (а в pdf он имеет номер 48), так вы, ребята, думаете, что мне нужно сдвинуть бит до 48, а затем манипулировать им?   -  person samantha    schedule 20.02.2012
comment
Это очень хорошее предположение - сдвинуть 1 бит и записать его. Чтобы знать наверняка, нужно взглянуть на схему. Возможно, вы захотите сначала прочитать PIO, установить / сбросить бит светодиода, а затем записать его обратно. Таким образом, вы не сможете случайно установить / сбросить выходы PIO. Кстати, этот PIO действительно имеет 48 выходных контактов? Или вы хотите установить / сбросить биты 4 и 5 (48 десятичных = 0x30)?   -  person Pete Wilson    schedule 20.02.2012
comment
Привет, Пит, спасибо за ответ. Глядя на pdf и диаграмму, у меня есть микросхема FT2232H с рукописной маркировкой GPIO, начинающейся с BCBUS0, и написано число 48. Я очень новичок в электронике и понятия не имею, с чего начать   -  person samantha    schedule 20.02.2012
comment
Привет, Пит, при более близком рассмотрении схемы IC, я обнаружил, что GPIO составляет 8 бит и начинается с (я думаю, контакт номер 48 не уверен, так как в PDF он имеет маркировку 48, затем 52, затем 53 до 59), все вместе есть 8 контактов для GPIO.   -  person samantha    schedule 20.02.2012


Ответы (1)


FT2232H - это преобразователь USB-UART. Быстрый взгляд на таблицу показывает, что ее можно разместить в режим бит-взрыва, который вы, по-видимому, пытаетесь сделать. Если вы читаете раздел 4.10 таблицы данных, он ссылается на AN2232-02, «Bit Функции режима для FT2232 », в котором содержится подробная информация и некоторые примеры того, как это сделать.

Вы говорите, что общаетесь с оборудованием через Ethernet, но это звучит неправильно (или, по крайней мере, это только часть истории). Скорее всего, FT2232H подключен к процессору (возможно, к вашей главной машине) через USB. Чтобы переключить вывод GPIO, вам необходимо настроить FT2232H так, чтобы он работал в режиме битового взрыва. Как только вы выясните, как это сделать, вам нужно будет отправлять команды через USB, чтобы переключить BCBUSB0. Надеюсь это поможет.

person Sean    schedule 20.02.2012
comment
Спасибо, Шон, ваше предложение очень помогло мне понять микросхему FTDI. На данный момент мой код отлично работает в автономном приложении, но когда я встраиваю его в базовый код, он просто не работает. Я изучаю это. И еще раз спасибо - person samantha; 29.02.2012