webshaker
Posts: 12
Joined: Tue Jan 02, 2018 9:49 am

Programmation du GPIO: par où commencer.

Thu Jan 18, 2018 10:22 am

Salut quelqu'un a t-il déjà programmé un périphérique connecté au GPIO directement ?

J'aimerai aller écrire sur un écran TFT connecté sur le SPI.
Et pour compliqué le tout, j'aimerai faire ça comme un bourrin sans passer par un driver ou une librairie (sauf lib en C ou le code serait disponible) pour être indépendant de l'OS !

Mais déjà j'aimerai bien savoir par ou commencer, comprendre le GPIO et le SPI me semble un bon début.
Je cherche donc des docs en français si possible (anglais sinon), orienté programmation (parce que les schémas ou on voit des signaux carré me font un peu peur).

Si quelqu'un a une début d’expérience là dedans.
Merci.

totoharibo
Posts: 4512
Joined: Thu Jan 24, 2013 8:43 am

Re: Programmation du GPIO: par où commencer.

Thu Jan 18, 2018 10:51 am

écrire un driver pour écran TFT : beau projet !
pour le SPI (et les GPIO) Il y a déjà des libs en C wiringpi, pigs, bcm2835 incompatibles entre elles
pour les commandes driver, je ne connais pas les spécifs de ces afficheurs ni si ils sont tous compatibles au niveau driver (j'ai des doutes).

Un beau travail pour retrouver les docs, et une belle compilation pour préparer l'écriture du driver.
c'est le plus gros travail.
Un dernier problème c'est d'intégrer le driver au noyau.

webshaker
Posts: 12
Joined: Tue Jan 02, 2018 9:49 am

Re: Programmation du GPIO: par où commencer.

Thu Jan 18, 2018 1:13 pm

Je ne veux pas faire un driver ni le gérer au niveau du noyau.

Je veux faire l'équivalent de ce que electrodacus a fait pour le stm32 mais sur le rPi.
https://www.youtube.com/watch?v=q50A47aAI9M

Il donne les sources de son code, sauf que déjà je suis limité par ma faible connaissance du GPIO et du SPI.
Qu'est ce qui dépend du bcm2837 et qu'est ce qui dépend du TFT ILI9341.

C'est pour ça que je cherche déjà quelques infos pour y voir plus clair !

totoharibo
Posts: 4512
Joined: Thu Jan 24, 2013 8:43 am

Re: Programmation du GPIO: par où commencer.

Thu Jan 18, 2018 4:05 pm

le projet que tu cites peut être une base de départ :
avoir le source ce n'est pas tout,
regardes si les bibliothèques utilisées sont réutilisables.
un peut d'info sur le processeur de l'écran ( il se peut que ce soit un protocole différent)
la liaison SPI sur le stm32 qui ne doit pas marcher tout à fait pareil que sur ARM

beaucoup de questions et de travail en perspective.

JumpZero
Posts: 1175
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Programmation du GPIO: par où commencer.

Thu Jan 18, 2018 7:44 pm

Bjr,
regardes déjà ça
https://www.raspberrypi.org/documentati ... /README.md
ensuite ce que tu sembles dire c'est que tu veux te passer d'OS, il y en a qui font ça.. c'est très très chaud! Il y a la section bare metal pour ça sur le forum: viewforum.php?f=72
Pour le commun des mortels, l'OS et les lib sont là pour nous simplifier la vie (et c'est déjà suffisament hard comme ça ;-) )
Bravo et bon courage
--
Jmp0

webshaker
Posts: 12
Joined: Tue Jan 02, 2018 9:49 am

Re: Programmation du GPIO: par où commencer.

Thu Jan 18, 2018 10:36 pm

Salut.

La raison pour laquelle je veux tout recoder est multiple.
D'une part je n'ai pas encore décidé de l'OS que je veux utiliser. Pour le moment j'ai opté pour le RiscOS. Mais bon y a rien de figé.
D'autre part j'ai besoin d'afficher des trucs totalement différent sur le hdmi et sur le tft et j'ai pas l'impression que ce soit faisable facilement même sous raspbian.

Donc en effet. Je vais partir du code de electrodacus et essayer de remplacer les appels spécifiques au stm32.

Y aura des trucs assez facile et d'autres plus compliqué on vera bien. Si quelqu'un veut m'aider j'accepte bien volontiers 😊

User avatar
th3cak3
Posts: 49
Joined: Fri Dec 27, 2013 3:35 pm

Re: Programmation du GPIO: par où commencer.

Fri Jan 19, 2018 9:55 am

Je me suis déjà frotté au SPI (sur microcontrôleur pas sur RPI, mais le protocole reste le même). Je veux bien essayer de répondre à tes questions sur ce sujet.

webshaker
Posts: 12
Joined: Tue Jan 02, 2018 9:49 am

Re: Programmation du GPIO: par où commencer.

Fri Jan 19, 2018 12:44 pm

Ah. Super Merci th3cak3
Je n'hésiterai pas à profiter de tes connaissances en cas de besoin, mais il se pourrait finalement que mon projet soit nettement plus facile que prévu.

Je suis en train de regarder cette lib http://www.airspayce.com/mikem/bcm2835/
qui a été réalisée pour le rPi1, puis adaptée pour le rPi2, et donc probablement compatible avec le rPi3 (vu que le GPIO ne change pas)

Elle semble s'occuper de toute la partie communication SPI.

D'un autre coté, La Lib SBMS_ILI9341 utilise très peu de chose semble t-il finalement (une fois qu'on a virer le code bas niveau spécifique stm32)

Elle change l'état de 3 pins de L'écran : RST, CS et WRK.
Elle envoie des commandes.
Elle envoie des données.

Et c'est a peu prêt tout !

Hors tout cela semble pouvoir être fait avec la lib bcm2835.

Je vais pas pouvoir tester ca ce week-end malheureusement, mais la semaine prochaine je m'y colle.

JumpZero
Posts: 1175
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Programmation du GPIO: par où commencer.

Sat Jan 20, 2018 4:52 pm

webshaker wrote:
Fri Jan 19, 2018 12:44 pm
Je suis en train de regarder cette lib http://www.airspayce.com/mikem/bcm2835/
Ca me semble un bon début, et c'est sous Raspbian ;)
Reagrdes aussi:
https://www.blaess.fr/christophe/2012/1 ... erry-pi-1/
https://learn.sparkfun.com/tutorials/ra ... c-tutorial
https://learn.adafruit.com/adafruits-ra ... guring-spi
Attention c'est souvent vieux, mais la théorie reste la même
--
Jmp0

webshaker
Posts: 12
Joined: Tue Jan 02, 2018 9:49 am

Re: Programmation du GPIO: par où commencer.

Sat Jan 27, 2018 1:32 pm

Bon après quelques soirée a m'arracher les cheveux, j'ai enfin compris quelques chose.

Un écran TFT fonctionnant en SPI utilise plus de pins que les 5 pin du SPI.
Sur la photo ci dessous, on retrouve les pin CS, RST, et D/C (alias WRX) et les pin du SPI.
Image

Donc essayer de comprendre comment mapper CS, RST et WRX sur MISO, MOSI et CLK était voué à l'echec.
Bon évidement quand on le sait, ça semble tout de suite plus logique. :)

Moi mon écran c'est celui-là.
Image

Evidement c'est un truc sans marque pour lequel il n'existe aucun documentation (vu que je ne connais même pas le fabriquant !)

Donc si je vois bien où sont connecté les pin SPI sur le GPIO du raspberry PI3, je ne sais pas trop où sont branché les 3 autres Pins dont j'ai besoin.

Comme ça doit être un Miminum standard, je me demande si quelqu'un saurait quel sont les PIN du GPIO qui mappe CS, RST et WRX !


webshaker
Posts: 12
Joined: Tue Jan 02, 2018 9:49 am

Re: Programmation du GPIO: par où commencer.

Sun Jan 28, 2018 9:31 am

En fait non, c'est pas donné, sur ton lien.
Mais j'ai fini par trouvé !

https://www.alibaba.com/product-detail/ ... 77095.html
11 : : TP_IRQ : Touch Panel interrupt, low level while the Touch Panel detects touching
18 : WRX : LCD_RS : Instruction/Data Register selection
19 : : LCD_SI / TP_SI : SPI data input of LCD/Touch Panel
21 : : TP_SO : SPI data output of Touch Panel
22 : RST : RST : Reset
23 : CLK : LCD_SCK / TP_SCK : SPI clock of LCD/Touch Panel
24 : CS : LCD_CS : LCD chip selection, low active
26 : : TP_CS : Touch Panel chip selection, low active

Y a plus qu'à reprendre les tests :)

Return to “Français”