Programmation PIC

Pour causer de choses et d'autres, c'est ici !
Avatar du membre
Pote Gui
Modérateur
Modérateur
Messages : 3671
Enregistré le : 15 mai 2012, 11:07
Localisation : Lyon (69)

Programmation PIC

Message non lu par Pote Gui » 19 nov. 2019, 11:09

Salut les geeks!

Bon je cherche à m'initier à la prog de PIC et je cherche à savoir s'il y aurait des recommandations sur :

1. le programmateur (marque, modèle, ...)
2. la carte de développement (marque, modèle, ...)
3. le langage informatique (basic, pascal, C)

C'est pour des petites choses simples donc pas besoin de matos de développeur chevronné (que je ne suis pas), sauf si arguments valables à l'appui of course!

Thanxs folks!

Avatar du membre
bilbo_moria
Don Bilbo de la Vega
Messages : 6373
Enregistré le : 15 déc. 2004, 1:00
Localisation : Tinteniac (35)

Re: Programmation PIC

Message non lu par bilbo_moria » 19 nov. 2019, 12:35

Aaaah, ça, je n'en ai pas du tout besoin et pas d'idées pour l'appliquer, donc (forcément) ça m'attire bien !

:-)

Je me suis amusé avec un Arduino, c'est sympa (mais je suppose que tu veux quelque chose d'encore plus près du "hard")

Avatar du membre
Pote Gui
Modérateur
Modérateur
Messages : 3671
Enregistré le : 15 mai 2012, 11:07
Localisation : Lyon (69)

Re: Programmation PIC

Message non lu par Pote Gui » 19 nov. 2019, 12:47

Oui, du genre PICKit ou Mikroprog.

Avatar du membre
a-wai
G5 guru
G5 guru
Messages : 2677
Enregistré le : 23 sept. 2006, 2:00
Localisation : Toulouse
Contact :

Re: Programmation PIC

Message non lu par a-wai » 19 nov. 2019, 13:17

Ah, ça c'est mon rayon :)

Déjà la question, c'est : qu'est-ce qu'un PIC pour toi, et pourquoi un PIC ?

Point culture : les PIC ont été parmi les 1ers microcontrôleurs accessibles aux bidouilleurs facilement et à prix raisonnable ; fin 90-début 2000, on en trouvait partout, c'était une des briques de base de quasiment tous les projets d'électronique.
À force, c'est devenu pour certains un terme générique pour "microcontrôleur 8 bits", mais dans ce monde, il y a de sérieux concurrents, en particulier la gamme AVR ; il ne faut pas non plus oublier les MSP430 de chez TI, les ESP32 qui intègrent Wifi et Bluetooth (donc plutôt pour l'IoT), et surtout la ribambelle de micros basé sur des cores ARM Cortex-M (mais là, on passe sur une archi 32 bits, bien plus puissante, mais aussi bien plus complexe à mettre en oeuvre).

À mon avis, à l'heure actuelle, mieux vaut se tourner vers les AVR : il y a 20 ans, les PIC bénéficiaient de la communauté la plus grande et la plus active, mais les choses ont bien changé depuis l'arrivée des Arduino.
En termes de gammes et fonctionnalités c'est à peu près équivalent, mais la facilité apportée par les cartes Arduino (et l'IDE qui va avec) est un plus non négligeable (il y a des équivalences dans le monde PIC, mais ça reste marginal, la communauté tourne principalement autour des AVR).

Fait intéressant : Microchip (fabricant des PIC) a racheté Atmel (fabricant des AVR) récemment, mais propose toujours les 2 gammes ;) (et ça n'est surement pas près de changer)

Donc pour répondre plus précisément :
1. et 2. Arduino Uno R3 (ou un clone, c'est de l'open hardware, parfois 50% moins cher) ; à noter qu'un Arduino se programme en USB, donc pas besoin de programmateur supplémentaire, mais il peut aussi être utilisé (en bricolant un peu, mais c'est bien documenté) pour programmer n'importe quel AVR ;)
3. Le C, sans hésiter ! C'est le langage de l'écosystème Arduino, et le seul vraiment adapté à l'heure actuelle : Basic et Pascal sont trop limités et/ou désuets, les langages "modernes" (Python, JS, Lua...) sont trop "haut niveau" pour coder en "bare metal"

Avatar du membre
Pote Gui
Modérateur
Modérateur
Messages : 3671
Enregistré le : 15 mai 2012, 11:07
Localisation : Lyon (69)

Re: Programmation PIC

Message non lu par Pote Gui » 19 nov. 2019, 13:44

Je vais tenter de préciser afin d'affiner les réponses éventuelles.

J'ai pensé aux PIC parce que j'ai lu des trucs dessus et que je ne suis pas allé chercher plus loin vu que ça avait l'air de faire le job. En l'occurrence, je me proposais de les utiliser à des fins de routage de signaux ac/dc et de switching complexe.

Je suis allé voir l'Arduino dont tu me parles et je me dis que je me suis sans doute mal exprimé. En fait, je partais sur une bête carte pour "flasher" des PICs à l'aide du programmateur approprié. Je pensais qu'on écrivait un programme sur le PC en langage C, pour ensuite l'envoyer vers le PIC via le programmateur (je ne comprends d'ailleurs pas bien le terme de "in-circuit debuger" ; qu'est-ce que ça debug en fait ? Ton programme ?)

Après, je suis partant pour d'autres trucs mais j'ai pas trop envie de me prendre la tête non plus (déjà que je vais devoir apprendre le C...). Donc je cherche un truc "plug n' play" facile et rapide à mettre en œuvre surtout (vu ce que j'envisage de faire pour l'instant).

En gros une config du genre (même si je ne sais pas si ce serait bon) : ça + ça + ça + PC.

Est-ce trop ? Est-ce inadapté ? Est-ce insuffisant ? Est-ce que l'Arduino le fait tout pareil et mieux ?

Avatar du membre
a-wai
G5 guru
G5 guru
Messages : 2677
Enregistré le : 23 sept. 2006, 2:00
Localisation : Toulouse
Contact :

Re: Programmation PIC

Message non lu par a-wai » 19 nov. 2019, 14:42

Pote Gui a écrit :
19 nov. 2019, 13:44
(je ne comprends d'ailleurs pas bien le terme de "in-circuit debuger" ; qu'est-ce que ça debug en fait ? Ton programme ?)
Ça te permet d'exécuter ton programme en mode pas-à-pas tout en inspectant le contenu de la mémoire et des registres pour que tu puisses trouver le bug. En l'occurrence, tu n'es clairement pas prêt pour ça ;)
Pote Gui a écrit :
19 nov. 2019, 13:44
Est-ce trop ?
Beaucoup trop oui, et surtout trop cher ;)

Un Arduino te permet de flasher des AVR, le principe étant expliqué ici et , par exemple (j'ai pris les 2 premiers liens que j'ai trouvé en cherchant "arduino as programmer"), ça nécessite juste une breadboard et quelques cables.
Au passage, tu peux utiliser la carte pour prototyper ton montage/programme, ce qui est souvent bien pratique.

Si vraiment tu veux un programmeur hardware, il y a l'AVR Dragon vendu par Atmel (mais un peu cher car c'est aussi un debugger), et surtout des dizaines d'autres à pas cher : cherche "avr isp", tu devrais avoir un paquet de résultats.

Côté soft, pas besoin de claquer du pognon dans un truc "pro" hors de prix, tout est fourni dans l'IDE gratos (et open source !) dispo sur le site. J'ajouterais qu'en tant que débutant, ça te facilitera bien la vie, une bonne partie de la complexité étant masquée par les fonctions proposées par l'IDE, sans parler des nombreux exemples disponibles.

Enfin, une alternative intéressante est d'utiliser directement un Arduino Nano ou assimilé dans ton circuit : petit, se flashe directement en USB (donc besoin de rien d'autre), et pas besoin de s'emmerder avec la tripaille externe (quartz, condos de découplage...) ou la config initiale du micro (masquée puisqu'effectuée par le bootloader arduino)

Répondre