Имеем приложение, которое взаимодействует с внешним устройством через RS232. 9600,8,n,1 Задействованы только RX и TX, т.е. нет CTS, RTS и т.п. У внешнего устройства изначально интерфейс TTL, соответственно используется конвертер уровней для работы через RS232.
Ко всему прочему перешли с Intel платформы на ARM, соответственно имеет смысл перейти с RS232 на GPIO.
Но не могу врубиться, как работать с устройством вместо RS232 на GPIO? Смотрел примеры использования GPIO они в основном о миганиях диодов, чтобы реализовать прием/передачу данных - не нашел ничего интересного.
Не видел еще ниодного SoC с ARM у которого один UART, эмулировать UART на GPIO в Linux - это достаточно глупое занятие, вы превратите мощный микропроцессор в микроконтроллер.
Прошу объясните как мне поступить? Еще раз повторюсь, у меня плата starterkit к которому надо подключить несколько однотипных устройств у которых TTL 3 вольта 9600,8,n,1 интерфейс. Как мне лучше это сделать? Куда подключать?
наименее хлопотно и наиболее быстро - на usb шину кита вешаете кучу ft232 и имеете до 127 портов..
второй по простоте - на шустрой однокристалке можно соорудить гейт и заюзать аппаратные порты и софтовые довесить (пока хватит быстродействия)..
или ищите какой-нить экспандер, типа как раньше ставились в мультипортовки для модемного пула
или изобретаете на fpga/cpld собственный расширитель..
делать gpio-serial - АРМ врядли вытянет больше 1-3 портов..
это означает, что в этом АРМе реализованы 4 независимых уарт-контроллера.. каждый уарт имеет свои RX/TX и все делается на аппаратном уровне
GPIO - это просто "пин общего назначения", его можно использовать для программного управления выводом 0/1 или цифровым входом..
в АРМах общего назначения функции GPIO сильно рудиментарны и "съедают" относительно много процессорного времени для атомарных операций.. т.о. софтовый уарт вероятно реализуем (в академических целях), но слабо пригоден.. это примерно, как Атмега16 сделать видеоконтроллер для телевизора - результат есть, но применить практически нереально..
в том же 9260 есть 4 общих уарта и отладочный порт - в теории им тоже наверно можно пользоваться (см даташит)
электросхема есть на сайте, согласно ей, на гребенку внешнего разъема выведены 3 уарта, можно ли достучаться до 4-го - не знаю, надо читать даташит и смотреть в схему..
нет, это dbgu - отладочный порт. как с ним работать - опять же в даташите..
полный вроде только первый (rx,tx,rtc,dtr etc), остальные чисто rx/tx
уровни на выводах 3в3, сопрягал с gps приемником и другим АРМом - без проблем
MAX нужен для сопряжения с компьютерными портами, мышами и другой серийной нечистью по стандарту rs232