Como desenvolvi o tablet russo

Bom dia amigos



Neste artigo, não haverá transferência de Arduino, Framboesa, Olimex, do interior do tablet para seu estojo “personalizado” feito de papelão e adesivo, etc. Apenas desenvolvimento severo, apenas incondicional ...

Não sei se escolhi um título grande demais para o artigo, mas tudo parece ser honesto: o desenvolvimento russo, o fator de forma do tablet, embora pareça um tijolo de "sorriso sorridente".

Para os meus leitores, decidi delinear o esboço do artigo para que você possa navegar com facilidade e pular pontos desnecessários, mas se quiser escrever um comentário, leia tudo: “para que não seja dolorosamente doloroso nos anos sem rumo ... (c)”.

  1. 1. Introdução Ideia.
  2. Respostas às perguntas.
  3. O que eu queria chegar na saída.
  4. Descrição do ferro.
  5. Perspectivas. Se for necessário.
  6. Conclusões Resumindo.

1. Introdução Ideia.


Como escrevi anteriormente em meus artigos, estou muito interessado no tópico de gerar uma imagem para uma matriz e tudo o que está relacionado a ela. Agora você não surpreenderá ninguém com scalers de matriz, na forma de pequenas pranchas por US $ 10 a US $ 15, a partir dos quais você pode facilmente fazer / reparar um monitor ou TV, mas eu já joguei o suficiente com eles e quero algo novo.

A ideia de criar algo semelhante a um tablet nasceu há muito tempo, e eu constantemente o desenvolvi, pensando em como implementá-lo com menos esforço e custo e com maior lucro. Obviamente, não preciso do próprio tablet, ele pode ser comprado com dinheiro moderado, se necessário, ou como último recurso para fazer um estojo de madeira compensada para Raspberry, mas por que preciso de Raspberry (e você pode até comprar um estojo pronto para comprá-lo)? Foi interessante implementar em seu hardware com desenvolvimento completo, mas ele precisa de dinheiro e, acima de tudo, de tempo que sempre falta (ou em seu dia mais de 24 horas?).

O ímpeto para a implementação foi imediatamente dois eventos, o primeiro - de repente apareceram várias matrizes desnecessárias de 7 a 10 polegadas, o que me atraiu. Alguns deles são RGB, mas também entre eles estavam a matriz LVDS e um driver de luz de fundo embutido e um toque capacitivo USB. Em segundo lugar, havia uma fraca necessidade de uma referência compacta para o software de depuração para IMX6, na qual haveria quase tudo e um pouco mais. Obviamente, foi mais fácil jogar fora as matrizes e obter uma referência pronta da prateleira, mas não é tão simples, usamos em nossos projetos um certo conjunto de periféricos (codecs, físicos, controladores de carga etc.) que precisam ser depurados para novas funcionalidades, e também queria experimentar algo novo (e as matrizes são muito atraentes). Vale a pena gastar um mês de suas noites grátis, você pergunta? Claro que vale a pena!

Com esses pensamentos e uma caixa de matrizes, comecei o desenvolvimento. Eu sabia que poderia alocar muito pouco tempo e, ao mesmo tempo, não estava claro se atingiria a segunda iteração.


Fig. 1. Foto do "tablet" na lateral da placa de circuito.

2. Respostas às perguntas


Para que não haja perguntas desnecessárias, tentarei prever algumas delas e responderei imediatamente.

2.1 Não é mais fácil comprar um tablet?
- Mais simples, mas menos interessante.
2.2 Quanto custa e quanto custa para uma festa?
- Custa muito, mas nossa empresa assumiu todos os custos para realizar meu pequeno capricho. Nenhuma festa é planejada, feita, por assim dizer, para si mesmo.
2.3 Onde fica o gabinete? Por que eles não imprimiram na impressora, não viram em madeira compensada, não cegaram em plasticina (e assim por diante).
- Agora reuni tudo e, em princípio, você pode propor algo sobre o caso, mas até agora não há tempo nem desejo. Se, no entanto, for a segunda iteração da placa, quando será possível reduzir a espessura, está planejado montar uma caixa com uma fina folha de metal polida da parte inferior para remover o calor.
2.4 Por que eles não exibiram uma tela menor / maior / mais fina?
- A exibição foi livre e, como você sabe, um cavalo presente ...
2.5 Por que você colocou um codec / alimentador / bateria / física, etc.
- O chipset é limitado ao nosso armazém e eu queria comprar componentes o mínimo possível, então tentei usar o que é.

Esta lista pode ser continuada quase infinitamente e você pode estendê-la nos comentários, mas vou terminar aqui.

3. O que eu queria chegar na saída.


O TK estava apenas na cabeça e se expandiu à medida que novas folhas do esquema foram adicionadas no altium. Claro, eu queria espremer tudo o que era possível do processador. Na primeira fase, e possivelmente na última, foi decidido fazer tudo em nosso módulo, já que sua placa é de 8 camadas e, para a placa-mãe, não precisarei mais do que 4.

Interfaces:

3.1 LVDS - um canal para uma matriz de 10 polegadas + toque capacitivo.
3.2 Ethernet - 1000/100/10 (a ser).
3.3 Áudio - codec com vários canais de entrada e saída + alto-falantes e microfone embutidos.
3.4 HDMI - um conector padrão para conectar um monitor.
3.5 SATA - conecte uma unidade SSD externa.
3.6 Câmera - uma, de preferência duas + flash.
3.7 E-Ink - uma pequena tela para exibir notificações, hora, energia da bateria, redes, etc.
3.8 GPS - qualquer módulo para localização de rastreamento.
3.9 CAN - diferencial, para conectar dispositivos externos.
3.10 Cartão SD - depuração e download de software. Armazenamento de dados.
3.11 WiFi / BT / 4G - no USB dentro do gabinete (abaixo, explicarei por que).
3.12 USB - pelo menos 5pcs + OTG + console.
3.13 Acelerômetro - para inverter a tela.
3.14 RTC - um chip separado para armazenar o tempo em que o dispositivo está completamente desenergizado.
3.15 NFC é um leitor para brincar.
3.16 Botões de controle - liga / desliga / volume / redefinição.
3.17 Bateria - 3.7V, 4-6A.
3.18 Potência 5-18V.
3.19 SO Linux.

Era tudo o que eu queria. Abaixo, explicarei alguns pontos conflitantes do porquê disso.

4. Descrição do ferro


É justo dizer por que tudo é igual no módulo, e não imediatamente na placa de 8 camadas. É mais correto transferir tudo para uma placa somente após a depuração de toda a periferia, se houver. Uma iteração da placa (4-6pcs) em oito camadas (60mmX40mm) custa cerca de 50tr + componentes - isso é bastante decente, por isso é mais correto no layout. Os prots no módulo são de 4 núcleos, cada um deles com 1 GHz.


Fig. 2. Imprimir elementos do corpo

A primeira coisa que pensei muito foram as interfaces sem fio. Deve haver vários, e eles devem estar no quadro. Com o GPS, tudo foi decidido por si só, usei repetidamente o módulo SIM33 com uma antena embutida, funciona bem, embora não seja barato, possui saída UART e já tirei uma pegada).

O Wi-Fi / BT também pode ser implementado como um módulo na placa, pois existem muitos deles, mas, por enquanto, adiamos esse problema. Os modems 4G vêm em vários fatores de forma e módulos no conector e na placa para solda e USB. O software pega Maxim (nosso programador), que ainda é um entusiasta, e ele sugeriu a instalação de vários USB na placa para colar sticks Wi-Fi / BT (que usamos repetidamente) e também tentar criar um modem USB 4G, por exemplo, Yota ou algo assim. como (o que acontece). Nesse caso, também temos ligações. Então foi decidido fazer.

Dentro da placa estão 3 USB, a) Wi-Fi / BT, b) modem 4G, c) um módulo para teclado / mouse sem fio. O IMX6 possui apenas dois USB integrados, enquanto um deles é OTG e pode ser necessário para depuração; portanto, ele é exibido no painel traseiro na forma de um conector miniUSB. O segundo USB vai para o hub TUSB2077 da TI, que possui 7 portas na saída, para as quais Maxim já levantou o driver anteriormente, então eu o usei. Existem 3 portas USB no painel traseiro para conectar dispositivos externos. Outro microUSB no painel traseiro para a saída do chip uart do console para depuração (via CP2102 na placa principal).

O monitor E-Ink escolheu uma tricolor (cinza / preto / vermelho), uma das mais comuns para o Arduino. Ainda não foi comprado, pois ainda não está pronto. Achei bastante interessante decidir não ligar a tela, mas exibir algumas informações em uma pequena tela e atualizá-la ocasionalmente. Eu também quero muito brincar com o E-Ink.


Fig. 3. Visor fotográfico E-Ink.

Nosso módulo IMX6 possui um conector (existem três tensões de alimentação, I2C, reset, PWM etc.) para conectar a câmera OV5640-M4320, e até duas, à popa do MIPI_CSI. Então, uma câmera funcionou (diretamente no conector do módulo), mas com duas perguntas. O loop de uma câmera desse tipo geralmente é de 3 a 12 cm. No quadro, direcionei o MIPI_CSI para os lugares certos no quadro, mas ainda não o verifiquei. Algo me diz que essa interface não funciona entre 15 e 20 cm ou fica para trás.


Fig. 4. Câmera fotográfica OV5640-M4320.

São câmeras de 5 megapixels com foco automático embutido.

Está planejado fazer um flash para a câmera na parte traseira do dispositivo, para isso fiz um cachecol portátil (o orifício desse cachecol é visível na placa de circuito, espalhei-o diretamente na placa principal, para não pedir separadamente) em um loop com um LED (MP-3030-1100- 56-95) e coloque o driver ADP1653 no flash da placa principal. Eu nunca pensei que o flash precisasse estar claramente sincronizado com o quadro (embora isso seja lógico), esse driver pode fazer isso usando o I2C, o que provavelmente não é adequado para interrupções externas. Vamos ver quando chega a hora, como aconteceu.

O IMX6 possui RTC interno, que não teve um desempenho muito bom em termos de consumo de energia ou eu não assisti a nada, então decidi instalar um chip PCF8523 externo, que possui um driver totalmente funcional para Linux. A função de sincronização de tempo em si não é particularmente interessante para mim, pois pode ser feita através de redes, mas é necessário ativar um evento. Coloquei esse milagre de desenvolvimento na mesa de cabeceira e espero o alarme disparar, assim como o Nokia 3310 saiu do estado desligado.

Quando a tensão externa é aplicada (o dispositivo está desligado), os seguintes são energizados: o controlador de carregamento BQ25895, RTC e o supervisor STM6601, que controla a fonte de alimentação secundária com o toque de um botão ou suavemente (se não quisermos desligar a energia e desligar corretamente o SO e desligá-lo) ) Como resultado, a fonte de alimentação acabou sendo um projeto bastante interessante, não tive tempo de fazer medições de consumo em modos diferentes, mas com o desligamento de hardware de toda a periferia, ela deve sair muito bem. Como resultado, o “tablet” não tem esse “modo de espera”, o STM6601 e o PCF8523 são alimentados diretamente da bateria de íon de lítio (3.7V) + para a bateria RTC 2016 ou 2032 (suporte universal). Agora, uma bateria de 2,3 A está conectada (está prestes a chegar às 6A). No modo de exibição da área de trabalho, a carga dura cerca de 30 minutos - é claro que é muito pequena, mas vamos ver o que acontece com uma bateria cheia.

O acelerômetro LIS331 é necessário apenas para o rastreamento de posição, para virar a tela, então coloquei o que já havia usado. Um bom chip com interfaces e interrapts I2C / SPI.

Um conector SATA completo foi fornecido com o tipo “Eu quero, por que não)”. Entendo que os tablets usam eMMC / NAND, mas como existe uma interface, por que não usá-la? Como nesta versão há espaço suficiente para o SSD 2.5 ”- deixe estar.

Maxim insistiu em instalar o NFC. Ainda não sei o que ele fará com essa interface, mas o que você não pode fazer pelos caprichos de um programador? É verdade que eu realmente não gostaria que ele tentasse pagar no supermercado, aplicando esse dispositivo a um leitor sem fio.

Às vezes, o CAN é necessário em nossos projetos; por isso, instalei a física do TJA1040T, já temos um driver para isso, podemos trabalhar com ele, até conectá-lo aos nossos carros e olhar as mesas. Coisa interessante.

Codec ADAU1761 novamente, para sentir todas as delícias de trabalhar com som. Antes de tudo, foi ele quem foi concebido (e não o SGTL5000, que também não é nada) para depurar firmware para o DSP embutido (SigmaStudio). Portanto, na parede traseira, existem dois conectores para alto-falantes (através de um amplificador), no conector lateral para o microfone interno, bem como várias entradas / saídas (restantes) para conectores de 3,5 mm no painel frontal.

A saída HDMI parecia muito conveniente para mim e em um conector padrão. Antes disso, ele colocou o microHDMI em desenvolvimento, mas parece-me que isso só faz sentido quando as dimensões são limitadas.

Para que tudo isso tenha vida e não consuma 100500 amperes ao mesmo tempo, coloquei o chip TCA6424 na placa - este é um expansor GPIO, que neste caso serve como um comutador para os periféricos. O SATA, a tela (sua energia e luz de fundo), o som (codec e amplificador), o acelerômetro, o GPS e tudo o mais está conectado à energia através dos comutadores de transistor TPS27081 é um comutador de transistor duplo que pode cortar energia para 8V e até 3A. Portanto, além de qualquer modo de suspensão de software, você pode desativar as interfaces de hardware. O expansor é controlado pelo I2C, para que você possa escrever um programa de tela que possa desativar tudo individualmente.

Agora, por que tudo o mesmo Linux. Segundo Maxim, é muito mais fácil executar tudo no Android, mas, como a prática demonstrou, temos mais projetos para Linux. Sim, provavelmente haverá confusão, mas parece-me que com o Xubuntu (agora está no dispositivo) o "tablet" adquire alguma originalidade e é mais adequado para nossas tarefas.


Fig. 5. Placa de circuito.


Fig. 6. Placa com componentes instalados.


Fig. 7. Primeiro lançamento.

5. Perspectivas. Se for necessário.


Antes de tudo, é claro, quero reduzir as dimensões em espessura. Há apenas uma maneira de conseguir isso: transferir o processador para a placa e alterar sua geometria. A rejeição do SATA será justificada; será mais correto colocar o eMMC em 64 / 128Gb (no momento custa 8Gb). A bateria não deve estar na placa, mas ao lado dela, bem, em geral, todos sabemos a localização dos elementos dentro dos tablets, tudo já foi inventado para nós. Já escrevi sobre o caso acima, gostaria de uma placa de resfriamento, realmente não pensei em como implementar os elementos restantes.


Fig. 8. No caso Entrada / saída de áudio.


Fig. 9. Dispositivo montado.


Fig. 10. Painel traseiro

6. Conclusões. Resumindo.


Como o projeto está sendo desenvolvido (agora software) em seu tempo livre, nem tudo foi gerenciado. Maxim está vendo algo e o "tablet" está gradualmente ganhando vida, mas o final ainda não está visível.

Na minha opinião, o dispositivo acabou sendo bastante viável para as tarefas descritas acima. Eu instalei o VLC player e agora você pode assistir o filme na tela pequena)). Se, em essência, minha ideia foi realizada quase completamente (a primeira iteração), sem contar o caso. Ao selar o módulo na placa, você pode obter uma espessura total de não mais que 23 mm - isso é, obviamente, severo para os eletrônicos estrangeiros atuais, mas para o protótipo é bastante aceitável.

PS: link para a fonte github.com/boundarydevices/linux-imx6/commits/boundary-imx_4.9.x_1.0.0_ga

Desejo a todos sucesso em seus empreendimentos!

Source: https://habr.com/ru/post/pt423279/


All Articles