Jump to content

    

DTB,485,at91sam9g25

Помогите пожалуйста настроить DTB, чтобы управлять 485 интерфейсом для usart2 и назначить ножку PORTC, pin26 как RTS.Процессор at91sam9g25, ядро 3.6.9.Исходники (DTS) прикрепилdts_files.zip

Share this post


Link to post
Share on other sites
Помогите пожалуйста настроить DTB, чтобы управлять 485 интерфейсом для usart2 и назначить ножку PORTC, pin26 как RTS.Процессор at91sam9g25, ядро 3.6.9.Исходники (DTS) прикрепилdts_files.zip

 

А какие пины в этом процессоре могут выступать в роли RTS для usart2?

Share this post


Link to post
Share on other sites
А какие пины в этом процессоре могут выступать в роли RTS для usart2?

TXD2 PA7

RXD2 PA8

RTS2 PB0

CTS2 PB1

а нужно RTS сделать ножкой PC26 и чтобы после отправки пакета в течении 1 mSec rts переключился на приём. Я попытался управлять ножкой PC26 из уровня прикладной программы через драйвер gpio (/sys/class/gpio/export)? но RTS сигнал устанавливается медленно больше 2 mSec

Edited by worker1

Share this post


Link to post
Share on other sites
Помогите пожалуйста настроить DTB, чтобы управлять 485 интерфейсом для usart2 и назначить ножку PORTC, pin26 как RTS.

Через device tree этого не сделать никак, остается ковырять драйвер. Но лучше бы задействовать для управления передатчиком ту ногу, которая для этого изначально предназначена.

Share this post


Link to post
Share on other sites
TXD2 PA7

RXD2 PA8

RTS2 PB0

CTS2 PB1

а нужно RTS сделать ножкой PC26 и чтобы после отправки пакета в течении 1 mSec rts переключился на приём. Я попытался управлять ножкой PC26 из уровня прикладной программы через драйвер gpio (/sys/class/gpio/export)? но RTS сигнал устанавливается медленно больше 2 mSec

 

Вы на неверном пути. Надо использовать аппаратную поддержку. В простых системах конечно можно програмно управлять этим сигналом практически без проблем. Учтите, что у вас будут значительные задержки как на выставление так и на снятие сигнала. Вы уверены, что устройство на другом конце не ошибется в интерпретации сигнала? Представьте, что буфер приемника заполнен и надо остановить передатчик, но пока вы измените сигнал, передатчик пришлет вам несколько байт. Имплементация в драйвере, конечно будет немного побыстрее, чем дергать пин из юзерспейса, но никто ничего не гарантирует. Будут ситуации, когда оно будет и медленнее. Результат будет неудовлетворительный.

Edited by Tarbal

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this