Cubieboard

Fórum para discussão sobre Linux para processadores ARM

Moderadores: 51, guest2003, Renie, gpenga

Cubieboard

Mensagempor elizeu » 26 Abr 2014 23:10

Caros Amigos,

Gostaria de saber se alguém do forum esta mechendo com este bichinho..
eu comprei um cubuieboar A10 a algum tempo e agora estou tentando fazer ele se comunicar com um ARM3 CORTEX via UART e apanhando bastante.
Ja testei a comunicação com o PC e o ARM3 esta funcionando perfeitamente.. mas com o cubieboard .. esta dificil
caso alguem se interesse pelo assunto pra trocar umas ideias .. ficaria muito feliz.

Abraço a todos..
elizeu
Bit
 
Mensagens: 28
Registrado em: 16 Out 2006 16:16

Re: Cubieboard

Mensagempor andre_luis » 27 Abr 2014 11:08

elizeu,


Eu comprei uma outra placa baseada nesse mesmo core A10 da sua, no caso o pcDuino, e fiz a comunicação atravéz de uma interface parecida com essa do seguinte link: USB To RS232 TTL Converter Module.

Passa mais detalhes de como tá fazendo esses testes ( ex.: se é via minicom do Linux, qual o tipo de cabo conversor RS-232 USB, etc... )




+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Cubieboard

Mensagempor elizeu » 27 Abr 2014 11:46

andre_teprom escreveu:elizeu,


Eu comprei uma outra placa baseada nesse mesmo core A10 da sua, no caso o pcDuino, e fiz a comunicação atravéz de uma interface parecida com essa do seguinte link: USB To RS232 TTL Converter Module.

Passa mais detalhes de como tá fazendo esses testes ( ex.: se é via minicom do Linux, qual o tipo de cabo conversor RS-232 USB, etc... )


Estou usando o cabo PL2303 conforme a este do linkhttp://linux-sunxi.org/Cubieboard/TTL
Mas quanto ao cabo não tenho problema.
O que esta acontecendo é que quando conecto com um pc usando um sofware de comunicação serial tipo hyperterminal ( ligando na saida do cubieboard) este funciona perfeitamente como terminal.
O que eu preciso é de desabilitar o terminal serial que vem por padrão configurado no LINARO e não consegui.
Ai tentei usar a UAR3 configurando os pinos no arquivo script.fex --> script.bin.. mas não funciona, eu estou usando os pinos 13 e 14 que é onde esta RX e TX da cubieboard.
Usando este mesmo cabo eu tambem consegui fazer a placa que desenvolvi usando um ARM3 Cortex e funciona sem problemas com o PC.
Grato por ter respondido.
elizeu
Bit
 
Mensagens: 28
Registrado em: 16 Out 2006 16:16

Re: Cubieboard

Mensagempor andre_luis » 27 Abr 2014 12:20

elizeu,



Se entendi bem, você deseja desabilitar o hardware da Serial para não dar conflito no sistema ?

Nesse caso, utiliza-se o comando nativo do Linux umount /dev/ttyx , porém teria de descobrir qual é o número 'x' atribuído a essa porta no sistema. Acho que pelo comando abaixo voce poderia obter essa resposta:

Código: Selecionar todos
dmesg | grep tty




+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Cubieboard

Mensagempor elizeu » 27 Abr 2014 12:32

andre_teprom escreveu:elizeu,


Se entendi bem, você deseja desabilitar o hardware da Serial para não dar conflito no sistema ?

Nesse caso, utiliza-se o comando nativo do Linux umount /dev/ttyx , porém teria de descobrir qual é o número 'x' atribuído a essa porta no sistema. Acho que pelo comando abaixo voce poderia obter essa resposta:


Na verdade o que eu preciso é de apenas uma comunicação serial entre o Cubieboard e o (PC para TESTES) e depois com o meu hardware.
e o que acontece é que por padrão a saida serial do cubieboard configurada para terminal .. o que impossibilida que eu use meu software no cubieboard.
Para resolver isto estou tentando usar outra porta a uart3 --> ttyS3 que ja configurei no arquivo fex e compilei pra o bin.
mas nada de funfar..

linaro@cubieboard:~$ dmesg |grep tty
[ 0.000000] Kernel command line: console=ttyS0,115200 console=tty1 root=/dev/nandc loglevel=5 rootwait
[ 0.000000] console [tty1] enabled
[ 0.550000] sunxi-uart.0: ttyS0 at MMIO 0x1c28000 (irq = 1) is a U6_16550A
[ 0.560000] console [ttyS0] enabled
[ 0.590000] sunxi-uart.2: ttyS1 at MMIO 0x1c28800 (irq = 3) is a U6_16550A
[ 18.630000] init: tty1 main process (483) killed by TERM signal



Se eu conseguisse usar a serial padrão do cubieboar seria o melhor dos mundos.


abraços.
elizeu
Bit
 
Mensagens: 28
Registrado em: 16 Out 2006 16:16

Re: Cubieboard

Mensagempor andre_luis » 27 Abr 2014 15:02

Embora a montagem da porta serial no sistema devesse ser suficiente, apenas pra certificar, seria interessante executar todos os passos do link abaixo antes de criar a próxima imagem do Kernel:

https://github.com/NTULINUX/cubieboard/blob/master/Documentation/serial-console.txt


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Cubieboard

Mensagempor elizeu » 27 Abr 2014 15:52

andre_teprom escreveu:Embora a montagem da porta serial no sistema devesse ser suficiente, apenas pra certificar, seria interessante executar todos os passos do link abaixo antes de criar a próxima imagem do Kernel:

https://github.com/NTULINUX/cubieboard/blob/master/Documentation/serial-console.txt


Caro Amigo..

Agora realmente não entendi mesmo.. eu disse que preciso usar a serial padrão ( apenas uma serial). Mas esta esta sendo usada pelo terminal serial, eu gostaria de desabilitar esta porta para que eu possa usar com meu programa de comunicação.
Não preciso de console serial. Preciso sim da serial liberada para que eu possa usa-l a para outro fim.
Mas mesmo assim tambem não entendo porque as outras ttyS3, e ttyS5 não funcionam.
Lembrando que ja alterei o arquivo script.fex
Estas aparecem liberadas mas nao consigo usar ..
Na listagem acima do arquivo fex. estas não aparecem liberadas porque reinstalei o linux e ainda nao refiz as configurações.
elizeu
Bit
 
Mensagens: 28
Registrado em: 16 Out 2006 16:16

Re: Cubieboard

Mensagempor andre_luis » 27 Abr 2014 18:26

elizeu escreveu:Agora realmente não entendi mesmo.. eu disse que preciso usar a serial padrão ( apenas uma serial). Mas esta esta sendo usada pelo terminal serial, eu gostaria de desabilitar esta porta para que eu possa usar com meu programa de comunicação.


Entendi, você não quer desabilitar os dispositivos seriais, mas apenas impedir que durante a inicialização sejam abertos por outro processo. Nesse caso, não bastaria você apagar os arquivos ttyS0.conf e tty1.conf na pasta /etc/init/ ? Não sei se seria necessário mais alguma outra etapa, mas testa aí.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Cubieboard

Mensagempor elizeu » 27 Abr 2014 22:39

andre_teprom escreveu:
elizeu escreveu:Agora realmente não entendi mesmo.. eu disse que preciso usar a serial padrão ( apenas uma serial). Mas esta esta sendo usada pelo terminal serial, eu gostaria de desabilitar esta porta para que eu possa usar com meu programa de comunicação.


Entendi, você não quer desabilitar os dispositivos seriais, mas apenas impedir que durante a inicialização sejam abertos por outro processo. Nesse caso, não bastaria você apagar os arquivos ttyS0.conf e tty1.conf na pasta /etc/init/ ? Não sei se seria necessário mais alguma outra etapa, mas testa aí.


+++


Vamos explicar direitinho ...:
Eu desenvolvi um hardware baseado em um arm3 cortex.
Este hardware tem uma porta uart para comunicação, a qual ja testei e esta funcionando corretamente quando conectado a um PC Windows 7.
Eu preciso agora fazer com com que este hardware se conect com o cubiebord, porque desde inicio este é o proprosito.
Porem não estou conseguindo fazer isto.
Tudo se resume nisto..
Coisa que a principio pensei que seria muito simples.
é Somente este o problema..

Muito grato por estar tentando ajudar .
Estou agora tentando instalar o 12.105 pra ver se a coisa anda melhor..
elizeu
Bit
 
Mensagens: 28
Registrado em: 16 Out 2006 16:16

Re: Cubieboard

Mensagempor elizeu » 01 Mai 2014 18:12

elizeu escreveu:
andre_teprom escreveu:
elizeu escreveu:Agora realmente não entendi mesmo.. eu disse que preciso usar a serial padrão ( apenas uma serial). Mas esta esta sendo usada pelo terminal serial, eu gostaria de desabilitar esta porta para que eu possa usar com meu programa de comunicação.


Entendi, você não quer desabilitar os dispositivos seriais, mas apenas impedir que durante a inicialização sejam abertos por outro processo. Nesse caso, não bastaria você apagar os arquivos ttyS0.conf e tty1.conf na pasta /etc/init/ ? Não sei se seria necessário mais alguma outra etapa, mas testa aí.


+++



Muito grato por estar tentando ajudar .

Caros Amigos .. Finalmente consegui resolver o problema ..

para desativar o uso da serial (uart0) tem que editar arquivo script.bin
no meu caso:
o comando

mount /dev/nanda /mnt ( porque estou usando a NAND)
decompilar o arquivo script.bin para script.fex
bin2fex script.bin script.fex
editar o aquivo desabilitando o debug
ai ja aproveitei tambem e habilitei a ttyS2
Feito isto recompilar o script.fex para script.bin
fex2bin script.fex script.bin

dei um boot e pronto.
vejam o resultado do dmesg antes e depois.

Obs.: o fex2bin e bin2fex tem que baixar o codigo e compilar.

Antes de altaera o arquivo .fex
linaro@cubieboard:/mnt$ sudo dmesg |grep tty
[ 0.000000] Kernel command line: console=ttyS0,115200 console=tty1 root=/dev/nandc loglevel=5 rootwait
[ 0.000000] console [tty1] enabled
[ 0.658682] sunxi-uart.0: ttyS0 at MMIO 0x1c28000 (irq = 1) is a U6_16550A
[ 0.665868] console [ttyS0] enabled
[ 0.696480] sunxi-uart.2: ttyS1 at MMIO 0x1c28800 (irq = 3) is a U6_16550A
[ 27.616594] init: tty1 main process (470) killed by TERM signal
linaro@cubieboard:/mnt$ sudo reboot



depois de alterado o arquivo .fex
linaro@cubieboard:~$ sudo dmesg | grep tty
[ 0.000000] Kernel command line: console=ttyS0,115200 console=tty1 root=/dev/nandc loglevel=5 rootwait
[ 0.000000] console [tty1] enabled
[ 0.658722] sunxi-uart.0: ttyS0 at MMIO 0x1c28000 (irq = 1) is a U6_16550A
[ 0.665913] console [ttyS0] enabled
[ 0.696540] sunxi-uart.2: ttyS1 at MMIO 0x1c28800 (irq = 3) is a U6_16550A
[ 0.727130] sunxi-uart.3: ttyS2 at MMIO 0x1c28c00 (irq = 4) is a U6_16550A
[ 11.128606] init: tty1 main process (456) killed by TERM signal


[uart_para3]
uart_used = 1
uart_port = 3
uart_type = 2
uart_tx = port:PG06<4><1><default><default> Pino 13 (que fica entre o RJ 45 e a saida USB
uart_rx = port:PG07<4><1><default><default> Pino 14

para a comuncação estou usando em testes este codigo
Código: Selecionar todos
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
 
int main(int argc,char** argv)
{
        struct termios tio;
        struct termios stdio;
        struct termios old_stdio;
        int tty_fd;
 
        unsigned char c='D';
        tcgetattr(STDOUT_FILENO,&old_stdio);
 
        printf("Please start with %s /dev/ttyS1 (for example)\n",argv[0]);
        memset(&stdio,0,sizeof(stdio));
        stdio.c_iflag=0;
        stdio.c_oflag=0;
        stdio.c_cflag=0;
        stdio.c_lflag=0;
        stdio.c_cc[VMIN]=1;
        stdio.c_cc[VTIME]=0;
        tcsetattr(STDOUT_FILENO,TCSANOW,&stdio);
        tcsetattr(STDOUT_FILENO,TCSAFLUSH,&stdio);
        fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);     
 
        memset(&tio,0,sizeof(tio));
        tio.c_iflag=0;
        tio.c_oflag=0;
        tio.c_cflag=CS8|CREAD|CLOCAL;           // 8n1
        tio.c_lflag=0;
        tio.c_cc[VMIN]=1;
        tio.c_cc[VTIME]=5;
 
        tty_fd=open(argv[1], O_RDWR | O_NONBLOCK);     
        cfsetospeed(&tio,B115200);            // 115200 baud
        cfsetispeed(&tio,B115200);            // 115200 baud
 
        tcsetattr(tty_fd,TCSANOW,&tio);
        while (c!='q')
        {
                if (read(tty_fd,&c,1)>0)        write(STDOUT_FILENO,&c,1);     
                if (read(STDIN_FILENO,&c,1)>0)  write(tty_fd,&c,1);                 
        }
 
        close(tty_fd);
        tcsetattr(STDOUT_FILENO,TCSANOW,&old_stdio);
 
        return EXIT_SUCCESS;
}
elizeu
Bit
 
Mensagens: 28
Registrado em: 16 Out 2006 16:16


Voltar para Linux / uCLinux ( ARM ) / UNIX

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x