Carte Servos à dsPIC

  • Auteur de la discussion MaX-MoD
  • Date de début
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #1
YAPSC


YAPSC est l'acronyme de "Yet Another dsPic Servo Controller"
Cette carte permet de contrôler un servomoteur doté d'un encodeur quadrature. Il est entièrement libre, sous licence GPL, vous pouvez donc l'adapter à vos besoins, et en distribuer la version originale ou modifiée sous les mêmes conditions.
YAPSC est construit autour du dspic30F4012, microcontrôleur 16bits à coeur DSP de chez Microchip. Le code (une modification du code de dspic-servo par Lawrence Glaister) est compilé avec MPLAB C30, le compilateur C de Microchip.
Il existe deux versions de YAPSC: une version avec une partie puissance pour une servomoteur DC, et l'autre pour attaquer une amplificateur à entrée analogique +-10V[/b]

Ci dessous vous trouverez le manuel d'utilisation, le code source actuel, ainsi que le projet KiCAD du PCB et (bientôt) le manuel d'assemblage:




En Détail : V1
[hr]

Le design de cette carte permet une grande flexibilité. En effet, selon les références des composants que l'on choisira, on peut contrôler des servomoteurs de 1 à 1000V et de 1 à 50A.

L'étage de puissance est construit autour de drivers de MOSFET classiques. J'utilise des NCP5106 mais ils possèdent une empreinte compatible avec la plus part des drivers de chez International Rectifier, plus courants.

Les entrées PC sont optocouplées pour un maximum de sécurité.

Les transistors MOSFET sont de canal N (ici IRF540N sur mon proto), avec diodes de protection internes. Ils sont choisis pour cette application avec soin.
Les MOSFET ont une empreinte pour boitier TO220, mais une version pour des boitiers plus gros (TO247) est aussi disponible.

NOUVEAU
Le PCB a été revu récemment, voici donc la carte montée dans sa version 1.4.
En parallèle le firmware (code source) a évolué, il est bien plus stable et YTT est opérationnel.

=> http://www.max-mod-shop.com/yapscv1

Le PCB a été dessiné avec KiCAD.
Le projet entier de la carte (TO220 et TO-247) est dans /schema_pcb/

pour ceux qui souhaiteraient modifier le code source pour l'adapter à leur besoin, le code source est disponible dans /firmware/

Un bootloader est intégré dans le zip. il est dans /bootloader/.
Il faut juste programmer le fichier HEX contenu dans /bootloader/code dans le PIC, on utilise la clé de configuration série pour flasher le PIC.

La clé de configuration est dans /ProgKey/
Une version USB et une version RS232 (MAX232) sont dispo, toutes deux optocouplées.

NOTE:
les optocoupleurs de la carte V1 doivent être remplacés. Pour une fréquence d'entrée max de 25KHz, prenez des 4N35 (pas de changement de PCB)
Au delà, jusqu'à ~500KHz, il faut changer de boitier, et prendre des 6N136 ou 6N137.[/color]

Manuel d'utilisateur:
Manuel de montage:
Schémas, PCB, code et bootloader:

si vous avez un doute sur une référence de remplacement, contactez moi.





En Détail : 10V
[hr]

Cette carte a pour but de commander des amplificateurs de servomoteurs commandés en +-10V. La carte YAPSC:10V ne contient donc pas de partie puissance, en revanche elle permet de fournir ce signal analogique à partir d'une entrée PC STEP/DIR et d'un retour de position par l'encodeur en quadrature. Vous aurez les caractéristiques détaillées dans le manuel.
Drapeau38.gif
Drapeau44.gif
la page dédiée sur mon site
Projet KICAD, avec Gerber, ps et code mis à jour
Manuel en Anglais
Manuel en Français:

Max-Mod n'étant plus présent sur le forum et son site dédié à ses cartes n'étant plus disponible, j'éditerais ce premier message pour rajouter des éléments importants.

001.PNG


002.PNG


003.PNG
Voir la pièce jointe YAPSC-Manuel.pdf Voir la pièce jointe YAPSC-Manuel_montage.pdf Voir la pièce jointe YAPSC.V1.zip Voir la pièce jointe man_10V_FR.pdf
 
E
elliott
Compagnon
5 Nov 2006
905
MaX-MoD a dit:
d'ici à quelques jours j'aurais fait une boucle PID pour asservir des servos DC, c'est pas compliqué.
Salut MaX-MoD

Je dois reconnaître que celà m'interesse au plus
haut point...........

Lorsque tu auras un peu de temps su tu pouvais développer
le sujet et peut-être communiquer l'algo de la PID afin que
les personnes désireuses puissent l'adapter à leur chip
et à leur compilo :wink:
 
A
alex68
Apprenti
17 Déc 2006
107
Alsace
Moi aussi j suis méga intéressé par le sujet...
J ai hate d avoir des nouvelles...
Bonne chane et a biento..
A+
 
D
Doctor_itchy
Compagnon
20 Avr 2007
5 460
Morlanwelz
je suis interesser par le model 3phase pas a pas avec entree encodeur de 1000pas par tour :D

tu pourras venir chez moi tester ton proto sur mes moteur :lol:


moi pas le temp pour developer une carte de controle :(
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Tu as quoi comme compilateur? MPLAB C30 ?
Tu as un ICD2 pour développer? ou mieux ?

Les projets que j'ai eu à faire jusque là utilisait des PIC et avaient besoin de respecter des temps très précis et très courts, ce qui fait que je ne me suis jamais mis au C pour PIC, et çà me manque beaucoup aujourd'hui...
Lorsque tu auras ecrit un bout de code qui tourne bien, tu pourrais le diffuser? (même si c'est tout petit bout, histoire de voir comment sont faites les initialisations, les déclarations de fonctions, etc...).

Merci bcp.
A+
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #6
oula! vives réaction en peu de temps!

elliot a dit:
Salut MaX-MoD

Je dois reconnaître que celà m'interesse au plus
haut point...........

Lorsque tu auras un peu de temps su tu pouvais développer
le sujet et peut-être communiquer l'algo de la PID afin que
les personnes désireuses puissent l'adapter à leur chip
et à leur compilo Wink
Oui, le code sera diffusé (je pense en licence GPL, peut-être aussi sur sourceforge) gratuitement, libre à ceux qui le veulent de l'adapter à leur chip et compilo.
la portabilité du code C est aisée puisque C30 est ANSI (d'après ce qu'on m'a dit sur jenesaisplusquelforum)

Doctor_Ichy a dit:
je suis interesser par le model 3phase pas a pas avec entree encodeur de 1000pas par tour :D

tu pourras venir chez moi tester ton proto sur mes moteur Laughing


moi pas le temp pour developer une carte de controle :(
Héhé si je passe dans le coin pq pas ^^
les steppers 3p c'est pour un peu plus tard, c'est dans les cartons mais ca viendra une fois que le contrôle des DC BLDC et AC 'traditionnaux'

mais tkt si j'ai besoin d'un béta-tester pour les step 3p je te le ferais savoir :wink:


Fred8 a dit:
Tu as quoi comme compilateur? MPLAB C30 ?
Tu as un ICD2 pour développer? ou mieux ?

Les projets que j'ai eu à faire jusque là utilisait des PIC et avaient besoin de respecter des temps très précis et très courts, ce qui fait que je ne me suis jamais mis au C pour PIC, et çà me manque beaucoup aujourd'hui...
Lorsque tu auras ecrit un bout de code qui tourne bien, tu pourrais le diffuser? (même si c'est tout petit bout, histoire de voir comment sont faites les initialisations, les déclarations de fonctions, etc...).

Merci bcp.
A+
MPLAB C30 et ICD2, les émulateurs sont encore un peu trop chers pour mon budjet (ou mon budjet encore trop petit)^^

en ce qui concerne la vitesse d'un prog en C ou ASM sur les dsPIC, ben le C à de nouveau largement l'avantage, contrairement aux PIC 12 14 16 etc.
c'est aussi du à leur architechture optimisée C.
il faut même plus passer par l'asm pour certaines opération comme la division / multiplication qui, ici, est faite en un cycle horloge.

pour le code, j'essaye de le faire propre et bien commenté avant de le diffuser, et j'utilise un max les interruptions des dsPIC qui sont très utiles et performantes. ce sera certainement ce qui nécessitera le plus d'adaptation pour passer à un autre µC.


plus d'infos sur les possibilités:
  • entrée encodeur 100KHz (6000trs/min pour tes 3phases Ichy!) et pas de max de divisions
  • fréquence PWM de 40KHz avec une résolution de 10bits, 160KHz avec 8b
  • régulation de l'intensité dans les bobines (pap, détection court circuit...)
  • Fréquence d'entrée d'au moins 50KHz, à vue de nez 100KHz possible, idem pour le calcul PID
...
la suite plus tard je me fais virer de la salle info :???:
 
D
Doctor_itchy
Compagnon
20 Avr 2007
5 460
Morlanwelz
oublie pas l'etage de puissançe de 0 a 325V DC en entree et en sortie ^^
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #8
Doctor_itchy a dit:
oublie pas l'etage de puissançe de 0 a 325V DC en entree et en sortie ^^
:mrgreen:

Tkt, même 20KV 1KA c'est possible, faut juste trouver les IGBT^^

vu que j'aurais à commander des DC et BLDC et ptet des 3p ben je publierai les shemas etc. pour des interfaces puissance jusqu'à 300V 10A ou un truc dans le genre.

après, du momment que tu trouves les IGBT, les drivers de chez ON par exemple vont jusqu'à 1.2KV... y'a de la marge.


Bon la suite des caractéristiques:

  • Protection contre les surintensités des moteurs AC DC par logiciel (lecture de I par convertisseur AN) OU PAR HARDWARE, ce qui garanti une protection maximale des servos et de leur alim. en effet, si l'µC 'freeze' il risque d'appliquer du 200-300V DC aux bobines du pauvre moteur AC qui sera détruit en quelques secondes :???:
    un simples AOP et un shunt pourra assurer une protection supplémentaire, quoique dans la plus part des cas un fusible rapide bien dimentionné fera l'affaire.
  • Réglage par le port série via nimporte quelle console RS232 (ce qui règle le pb d'OS, puisque ce genre de log est gratuit et existe pour Win (même 3.1^^) linux mac, etc. etc.
    De plus le firmware pourra évidemment être mis à jours (bootloader). là par contre il faudra étudier la possibilité d'utiliser le protocole de transmission de fichiers 'brut' via la console RS232 pour assurer la compatibilité avec un max d'OS (quoique une librairie, GTK, permet de développer des applis graphiques pour win, unix et aparemment mac).
    dans les cartons également une fonction de réglage auto des paramètres PID, avec retour des temps de réponse, bande passante, nombre de pseudo-oscillations, stabilité etc. qui caractérisent le couple servo-mécanisme.

bref pas mal de boulot!
la seule limite des possibilités c'est... mon imagination^^

:!: d'ailleurs si il vous vient à l'idée une fonction qui pourrait être intéressante, faites-le moi savoir :!:

vos idées et remarques m'intéressent :wink:

au passage, l'un de vous aurait un servo DC avec encodeur quadrature (ou ss mais avec un axe en 6.35mm) qui tourne sous environ 12V :?:
j'ai comme qui dirait pas la foi de creuser eBay à la fac... et je n'aurais internet que dans 15j- 3 semaines :cry:
à vendre (ou mieux à prèter :wink: ), faites une offre!

en ce qui concerne le code, ca avance, mais je pense que je vais ouvrir un vouveau sujet sur l'avancement du projet, un peu comme un worklog, et discuter ici des tests, améliorations à faire etc.

A+
 
D
Doctor_itchy
Compagnon
20 Avr 2007
5 460
Morlanwelz
un mode micropas 256µpas :D
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #10
tss, overkill le 256e de pas :mrgreen:

mais si ca te fait plaisir, ben je note!
le µpas c'est pour moi à intégere d'office pour le controle des pap, spa compliqué de faire du N µpas!


Ah, autre fonction à laquelle je pensais:
le controle des BLDC sans avoir recours à des capteurs à effet hall, avec soit détection de courant nul, soit utilisation de l'encodeur quadra.
mais avec l'encodeur quadra, le pb c'est que qu'il faut réétalonner le système à chaque coupure de courant :???:

enfin bon, je me fais encore virer :/

A+
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #11
Salut,

j'ai créé des "projets vides" pour développer une appli PID (ou autre) sur 30F2010 et 33F12jmc202, et pour tester tout ca j'ai fait un petit prog qui utilise entrée quadra, PWM et boucles de calcul de sinus décalés de 2PI/3.
en mettant une led tricolore sur les sorties PWM ca me donne une led qui change de couleur en tournant mon encodeur, c'est joli, mais ca ne fonctionne qu'en mode debug (donc connecté au pc via ICD2), mais dès que je programme le pic en release, ben... les boucles infinie deviennent finies, donc ca ne fonctionne plus >_<

j'ai d'ailleurs passé une demi journée à essayer de trouver l'erreur que j'ai pu faire... sans résultats.
ca pose donc un sacré problème quant à l'utilisation de C30 comme compilo.
il se peut qu'il soit instable... rien ne garantira le fonctionnement du contrôleur même si <<il à l'air de marcher>>.

si tel est le cas, il faut soit
-attendre que C30 devienne stable
-changer de compilo pour un compile cher ~$$$-$$$$

j'espère pouvoir régler le pb sinon je vais devoir me mettre à l'assembleur (dans ce cas attendez le contrôleur pour 1-2ans :p ) ou casser ma tirelire pour un compilo de HI-TECH (1200$ pouir la version 16b si je me souviens bien)
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Max-Mod, j'ai déjà rencontré ce genre de pb, même si je n'ai jamais utilisé C30. Je ne pense pas du tout que C30 soit la cause de tout cela, c'est un programme largement diffusé et éprouvé dans l'industrie.

Lorsque tu utilises l'ICD2, certains paramètres comme les bits de configuration de l'horloge sont inactivés (ou plutôt "overdrived").
Avec l'ICD2, tu as une horloge commandée, ralentie (on ne fait pas de temps réel avec un ICD2, on peut juste mettre 2 points d'arrêt).
Sans ICD2, tu n'as plus d'horloge...

Combien de fois je me suis laissé avoir aussi par mon résonateur qui nécéssitait le gain maxi de l'ampli...

Idem en utilisant des conditions de debuggage dans mes programmes :
"If Debug = 1
Programme asm (boucle de tempo par ex);
Endif"

Super pratique en débug, mais si tu oublie de mettre la variable Debug à 0 en mode "Alone µC", tu shuntes toutes tes tempos, et rien ne marche...

Autre point : où as-tu eu ton DsPIC? J'ai eu un gros souci un jour sur des samples qui n'étaient pas fonctionnels à 100%, un PIC18F8720. Une fois ils marchaient, la fois d'après, non. Incapable de trouver une logique à l'histoire. Quelques semaines plus tard, je vais sur le site de Microchip, et là, un Errata est apparu, le PIC a un problème hard, il est déconseillé de l'utiliser, le remplacer par un 18F8722...

Voilà, tiens-nous au courant, et quand tu auras l'occas, je suis preneur de ton petit soft pour apprendre sur C30.

Fred8
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #14
j'avais compris que ICD2 changait certains bits d'option :wink:

du coup j'ai essayé plusieurs configs différentes, rien n'y fait :cry:

l'oscillateur fonctionne. il n'y a pas d'erreurs mathématiques, d'adressage ou quoi que ce soit (voir le fichier traps.c).

en y repensant, je me demade si le Watchdog n'est pas activé, malgrès que je l'ai configuré éteint... je vais vérifier ca ce soir.

si ca vous intéresse, voila un petit test... on tourne l'ecodeur, on a un champ rotatif (enfin courant triphasé) sur les sorties basses PWM.
je dois encore améliorer certaines choses (commentaires code etc.) mais ca peut servir de base à un programme C30 pour 30F2010 (va falloir aussi que je me penche sur les #ifdefined __dsPIC30F... #define pour assurer la compatibilité avec les autres dsPIC30F.
les 33F auront leur projet à eux, ils sont plus complexes à utiliser (il faut -on peut enfin!!!- définir quelles pins seront assignées à quel module, plus de pièges à erreurs HW, interruptions légèrement différentes...) je l'ai un peu entamé, surtout pour savoir si mon 'bug' venait du 30F2010 (en sample :wink: ) et tester sur le 33F12jmc202 (il est quant même plus chiant en 3v3, faut faire une alim séparée etc. mais il a l'air d'en valoir la peine)

aussi j'ai regardé l'errata du 30F2010.
aparemment pas d'erreur connue...


NOTA:
le projet contient des adresses absolues.
rajouter le dossier h dans "include search directory", fenêtre project options.
il n'est pas nécessaire de rajouter le dossier c, car main.c se trouve dedans.

pour les bits de config, pas de WDT, après ca dépend de vôtre HW.

A+ Voir la pièce jointe Test2.zip
 
E
elliott
Compagnon
5 Nov 2006
905
MaX-MoD a dit:
si ca vous intéresse, voila un petit test... on tourne l'ecodeur, on a un champ rotatif (enfin courant triphasé) sur les sorties basses PWM.
Interessant mais pas encore équipé pour bosser sur DsPic :sad:
donc pas de test possible,cependant je suivrais celà avec intérêt :!:
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Max, tu l'as eue où ta version de C30? Student Edition? L'optimisation du code est limitée à 60j dessus...
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #17
oui la student, le dernière 3.01 (upgradée hiers, mais ca change rien) MPLAB 7.62 (la dernière aussi, pareil).

mais avec ou sans optimisations mon test ne change presque pas. le gain est négligeable, presque nul (enfin dans SIM)

hiers soir j'ai un peu bossé dessus, et malgrès que j'ai spécifié dans mon code les macros de WDT_DISABLE, je pense que ce put** de WDT de @##!!! est tjrs activé.
en replaceant dans mon test POSCNT ds la boucle while principale, quant je lance le prog "en vrai", la couleur change rapidement et revient à la couleur d'origine...

ce soir j'essaye de vider le registre du WDT dans la boucle, je vais voir ce que ca fait.

en regardeant dans le "manuel" de ICD2 aparemment les 30F peuvent être altérés par deux programmation à la suite si on n'efface pas le chip entre deux... d'autre pb peuvent aussi apparaitre.
je vais refaire un sample de 30F2010 ce soir car je voudrais bien vérifier que ce soir le PIC et pas mn prog qui merde avec celui là, même si je pense que la version finale utilisera un 33F.

apparemment y'a pas mal de pb due à la conception des PIC :???:
dommage, ca devient chiant de bosser avec de µC apparemment attrayants à l'origine.

bon je vais en cours, A+ :wink:
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Quand tu y penses, tu as des mêmes défauts de jeunesses chez tous les constructeurs.

Le pentium 60 faisait des erreurs dans les divisions, pourquoi les PIC les plus complexes seraient-ils épargnés?

Si tu maîtrise leur architecture, continue avec eux. Tu passeras au coeur ARM ou au PC miniaturisé après !

Je pense franchement que le gros problème, c'est l'ICD2. La plupart du temps, je ne m'en sert que de programmateur, et j'efface toute ma mémoire avant de flasher.

A+ Fred
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #19
ouais ben là le pb c'est pas le débuggage mais la programmation X(
ca debug comme ca :smt023 mais quant on programme :erik_c:

autre truc tout pourrit c'est le "visual initialiser" qui est sensé générer le code configuration pour les perifs qu'on veut, et ca de façon visuelle sans toucher plus d'une ligne de code (appel à la fonction visualinitialiser():wink:
ben le code créé ne compile pas sans erreur, et en plus quant on les a corrigés c'est pas bon, ca fonctionne pas :???:

cet aprem je teste le 33F en profondeur. bon il faut déjà que je lise bien la datasheet pour configurer les pins redirigeables après c'est de la bibine (enfin sur le papier^^).
A+
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
D'accord avec toi, c'est nul cette option de config visuelle. En plus, çà rallonge le code.
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #21
En plus, çà rallonge le code.
c'est ce que j'avais cru comprendre aussi..

la config de 33f c'est vraiment pas gateau... 3h de lecture de datasheet et reference guide pour enfin arriver à démarrer ma dsFerrari^^

bon ca roule à 40MIPS, pas trop de problèmes à part un comportement bizarre...

si je met dans une boucle infinie PORTAbits.RAx = PORTAbits.RAy;
la pin x prend bien la valeur de la y, mais si j'exécute le code une seule fois (même après un délai de 1s, au delà duquel le PIC est stable) ben rien ne se passe :smt011

c'est à devenir fou :axe:

A+
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Tu as prix quoi comme dsPIC?
Un qui se soude facilement, genre SO28 (dsPIC33FJ12MC201/202) ???

Dans le cas du contrôle BLDC, tu comptes mettre un dsPIC par moteur?
Il n'y a pas assez de sorties PWM pour 2 moteurs de ce type de toute façon.
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #23
oui le 202. Justemen je l'ai choisit car il peut être soudé facilement. Quelque soit je pic il en faut un par moteur car ils n'ont que 4 sorties pwm et une entrée encodeur, sauf pr les dc où le 2e enc sera géré par soft.
au fait la boucle pid de microchip est exécutée en 30 cycles... Alors à  40mips deux servos dc c pas la mort^^
a+

EDIT:[/color]
-caractères pourrits (posté depuis mon tel portable)


sinon j'ai compris pourquoi le pic fesait cette coquille.
du coup ca fonctionne vraiment bien, pas de pb jusqu'à là.

[HS]J'ai recus ma LiveBox et le décodeur télé :7dance:
et demain j'attends le technicien qui va me dire <<mais qui a fait un branchement aussi pourrit !?!>> en voyant la boite FT^^
inutile de dire que c'était certainement lui qui l'avait fait la fois précédente :mrgreen:[/HS]
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
MaX-MoD a dit:
sinon j'ai compris pourquoi le pic fesait cette coquille.
du coup ca fonctionne vraiment bien, pas de pb jusqu'à là.
C'est à dire? Tu peux me préciser?
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #25
quant le pic lit la valeur du registre PORTx, il lit l'état actuel du port, pas ce qu'on lui a demander de sortir.
quant on écrit dans ce registre, on écrit en fait dans le registre LATx associé (c'est en fait un buffer qui retient les valeurs demandées en sortie), valeur qui est ensuite affichée aux pins correspondantes.
mais l'exécution du code est tellement rapide que la broche dont on a demandé un changement de valeur n'a pas le temps de changer d'état.

le pic va donc lire la valeur de PORTx, la sauvegarder, effectuer les modifications demandées et recharger le résultat dans PORTx... avec des mauvaises valeurs, puisque par exemple la broche x n'aura pas eu le temps de changer d'état!
en fonction du temps d'exécution de la boucle, et de la valeur le la broche y, la sortie x va osciller. c'est ce que j'ai observé.
d'ailleurs ca fesait un détecteur sans contact très précis^^

la solution:
LATAbits.LATAx = PORTAbits.RAy;

ainsi, le pic fera les opération binaires sur la valeur qui est demandée au port a, et non sur les valeurs REELLES des sortie, sucseptibles d'osciller!

vicieux quant même...

bonne soirée!
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Grr...bon sang de C30, je n'arrive pas à lui faire trouver toutes les librairies....
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #27
c'est surement pour ca que microchip eux même déconseille l'utilisation des librairies des périphériques :lol:
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Dommage que tu sois si loin Max-Mod, on aurait pu un petit bout de chemin ensemble :lol: (en électronique je parle, parce que, sinon, j'ai tout ce qu'il faut à la maison ! MDR... :lol: :lol: )
 
M
MaX-MoD
Compagnon
17 Avr 2007
2 306
Annecy (74)
  • Auteur de la discussion
  • #29
Fred8 a dit:
Dommage que tu sois si loin Max-Mod, on aurait pu un petit bout de chemin ensemble :lol: (en électronique je parle, parce que, sinon, j'ai tout ce qu'il faut à la maison ! MDR... :lol: :lol: )
héhé ^^


bon un peu d'aide les pros de l'élec :wink:

pour la partie puissance, je comple faire un PCB d'un demi pont en H, on en utilisera 2,3 ou 4 en fonction que ce soit un servo DC, un BLDC ou un pap qu'on veut commander.
il n'y a pas de protection de surintensité sur la carte, ca se fera par la carte de commande servo par lecture de la tension aux bornes d'une sésistance entre la masse et l'alimentation basse des MOS/IGBT.

l'avantage c'est que la +part des MOS et IGBT ont une disposition de leurs pins compatibles, ainsi on ne sera pas limité à certains transistors exotiques et durs à trouver.

je vais aussi modifier le shemas, pour qu'on puisse souder des transistors en D-PAK2 et D-PAK plus petits (p exemple pour mes MOS 60V 20A)

j'en suis arrivé à ca comme deseign, c'est encore approximatif mais dites-moi ce que vous en pensez...

PS: la diode D1 1N4001 ne sont pas adaptées, elles ne sont pas assez rapides mais j'ai du mal à trouver des diodes rapides facile à trouver, de puissance (1A) et pas chères...
R2 est un strap, c'est une résistance de 0Ohms en boitier CMS 1206 (ou 1204, dans le genre)

demi H_3D_2.png
toujours l'appercu 3D ^^

demi H_3D.png
l'appercu 3D

demi H.png
pcb face composants

demi H_s.png
shema
 
Fred8
Fred8
Compagnon
18 Mai 2007
853
45 - Orléans (Ingré)
Tu utilises quel soft pour tes PCB?
J'ai un peu avancé sur MPLab, j'ai plein de warning :

c\main.c: In function 'main':
c\main.c:19: warning: implicit declaration of function 'Init_Ports'
c\main.c:20: warning: implicit declaration of function 'Init_Other'
c\main.c:21: warning: implicit declaration of function 'Init_QEI'
c\main.c:22: warning: implicit declaration of function 'Init_PWM'
c\main.c:23: warning: implicit declaration of function 'Init_Timers'
c\main.c: In function '_QEIInterrupt':
c\main.c:57: warning: PSV model not specified for '_QEIInterrupt';
assuming 'auto_psv' this may affect latency
c\main.c: In function '_T1Interrupt':
c\main.c:69: warning: PSV model not specified for '_T1Interrupt';
assuming 'auto_psv' this may affect latency
c\main.c: In function '_INT0Interrupt':
c\main.c:86: warning: PSV model not specified for '_INT0Interrupt';
assuming 'auto_psv' this may affect latency

C30 me fait l'état de la mémoire.
Le plus ennuyeux, c'est la conclusion :

Link step failed.
BUILD FAILED: Sat Sep 29 11:40:09 2007
 
Haut