C програмиране за управление на GPIO LED

Имам хардуер, при който трябва да включа LED, свързан в GPIO (разглеждайки хардуерните спецификации, GPIO BCBUSB0 е свързан към LED), за да покажа, че софтуерът работи добре в него. Ако по някаква причина софтуерът не работи, светодиодът трябва да изгасне или да стане червен.

Сега си помислих, че трябва да настроя куче-пазач или нещо подобно, което да изпраща сигнал до Led на редовни интервали, за да показва състоянието, че софтуерът работи. ако по някаква причина LED не получава сигнал с определен интервал, той трябва да се изключи.

Доста ми е удобно да използвам езика C, но нямам представа за програмирането на GPIO за включване/изключване на светодиода. Всеки съвет или предложение ще бъде от голяма полза.

Благодаря


person samantha    schedule 19.02.2012    source източник
comment
С каква ОС работиш? Каква среда?   -  person reuben    schedule 20.02.2012
comment
неговата операционна система Linux (Ubuntu) kernal версия 2.6. Имам достъп до хардуера през Ethernet порт. Прочетох няколко документа и мисля, че трябва да изпратя HIGH и LOW сигнал в нормален интервал, за да покажа, че софтуерът работи. Но не знам как да започна? Както беше посочено, светодиодът е свързан към BCBUSB0 на GPIO (и в pdf има записано число 48), така че мислите ли, че трябва да преместя малко до 48 и след това да го манипулирам?   -  person samantha    schedule 20.02.2012
comment
Много добро предположение е да изместите 1-бита и да го запишете. За да знаете със сигурност, трябва да погледнете схемата. Може да искате първо да прочетете PIO, да зададете/изчистите своя LED бит, след което да го запишете обратно. По този начин няма да зададете/изчистите 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, „Бит Функции на режима за FT2232”, който твърди, че има подробности и някои примери как да направите това.

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

person Sean    schedule 20.02.2012
comment
Благодаря, Шон, вашето предложение ми помогна много в разбирането на FTDI чипа. В момента моят код работи добре в самостоятелно приложение, но когато го интегрирам в базовия код, той просто не работи. Разглеждам го. И отново благодаря - person samantha; 29.02.2012