1

Salut,

J'ai besoin de faire transiter des informations entre une ti89 et une carte électronique.

En gros:
La carte électronique reçoit en flux continu des signaux analogiques de capteurs (couple, vitesse, pression, force).
Elle doit les envoyer (à intervalles réguliers 20 ms par exemple) à la calculatrice qui, après calcul (0.01 -> 1 sec), renverra à la carte d'autres signaux.
Enfin la carte utilisera ces données pour piloter des actionneurs.

Comment dialoguer entre ti89 et carte électronique ? (plutôt violent comme question mais lisez d'abord la suite)
Quel microcontroleur utiliser ?
Faut-il une mémoire externe pour tamponner les données venant de la calculatrice ?
Faut-il au contraire un microcontroleur rapide qui écoute en permanence la calculatrice et qui reconstitue les données en reconnaissant des entêtes de données valides ?
Si jamais c'est jouable, comment transferer des données dans l'autre sens ?
Comment écouter la calculatrice avec un microcontroleur, comment récupérer des infos sorties I/O 89 dans la mémoire d'un µcontroleur ?
Me conseillez-vous un format de donnée ?


J'ai posé ces questions pour que vous puissiez sonder plus précisément mon ignorance en électronique.

J'aimerais que vous me fassiez part de vos remarques sur ce projet, savoir en combien de temps (en heures) il peut aboutir... , que vous m'indiquiez dans les grandes lignes quelles techniques utiliser ... etc ...


Merci !


PS0: J'ai le temps (enfin, .... le delai est assez grand mais je n'ai pas que ça à faire) et je ne suis pas seul.
PS1: J'ai accès à des laboratoires d'EEA bien fournis.
PS2: Je ne m'y connais quasiement pas en l'electronique.
What kind of technology is this?

2

Niveau programmation, je dois avoir les compétences requises pour les traitements des signaux.
J'aimerais avoir des coups de pouces, des conseils de personnes qui se sont lancées dans un projet du même style.

Quel microcontroleur est le plus facile à utiliser pour un débutant, et qui puisse satisfaire mes exigences ?
Avez-vous des liens vers des docs de tels µproc ?

Merci
What kind of technology is this?

3

Galmiza :
Faut-il une mémoire externe pour tamponner les données venant de la calculatrice ?
Faut-il au contraire un microcontroleur rapide qui écoute en permanence la calculatrice et qui reconstitue les données en reconnaissant des entêtes de données valides ?

Il faut gérer ça via des interruptions plutôt, non ?

4

written by Johan Borg, johbo050@student.liu.se
14th Jan, 2000


60000C link port contol
:6 enable direct port access
:3 enable interrupt on error
:1 enable interrupt on transmit buffer empty
:0 ebable interrupt onbyte recived


60000D:7 error(?)
:6 transmit buffer is empty (2 byte buffer (?))
:5 receive buffer has a byte
:4 link-interrupt is waiting to be serviced (?)
:2 port is in use?


60000E:0 data to "tip" on link-connector, if direct port access enabled
:1 data to "ring" on link-connector, if direct port access enabled
:2 data from "tip"
:3 data from "ring"
:6 enable direct port access

60000F-byte data from-to recive/transmit buffer

Level 4:
Triggered by the link hardware for various reasons. Read from $60000C and sometimes read/write $60000F to properly acknowledge this interrupt.



Je ne sais pas si utiliser les interruptions soit la meilleure solution car je ne cherche pas à dialoguer avec une autre ti89. Mais effectivement recevoir des octets est bien moins contraignant que de recevoir des bits sans début ni fin.
Je pensais tout faire en very-low level.
Si j'arrive à intercepter un flux de 0 et de 1 venant de la ti89, je n'aurais pas de problème à retrouver l'information envoyée.
Pour envoyer des informations à la ti, il faudra faire la même chose mais en réduisant suffisamment la fréquence d'envoi pour que la ti ait le temps d'intercepter tous les bits (sinon, il ne sera pas possible de trouver (ou alors probabilité infime) une suite de bit qui correspond à une entête).

Comme ça, ça a l'air faisable surtout si on peut connecter directement les entrées/sorties de la calculatrice sur des entrée/sorties d'un microcontroleur, mais il y a forcement des contraintes auxquelles on est confronté au dernier moment (histoire d'avoir perdu un max de temps).
J'apprécierai donc des mises en garde, les "fautes bêtes" qui vous ont fait perdre du temps, des détails auxquels je n'ai pas pensé et qui anéantissent les chances de réussite du projet, etc...


Merci
What kind of technology is this?

5

6

7

Personne n'a donc fait de transmission de données entre ti-carte électronique ?
Pour piloter un moteur tout bête c'est autrement plus facile, mais je pars de 0 ou '\0' plutôt, donc TOUT ne peut m'être qu'utile.
N'hésiter pas à poster des montages ridicules.

Bon hé bien si j'y arrive je posterai les plans.

Pour l'instant j'ai imaginé ça:
http://mapage.noos.fr/galmiza/Other/cartepilote.PNG

Il n'y a aucun filtre mais c'est juste pour voir les grandes lignes.

Les entrées sur le microcontroleur sont exploitables directement dans le programme qui sera chargé dedans.
What kind of technology is this?

8

et t'as pas tout simplement envisagé de te connecter directement au bus de la TI ?
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

9

A la limite pourquoi pas mais je ne sais pas du tout comment il fonctionne, quel est le type de données qui y circule, comment et où s'y connecter.
Je n'ai pas besoin d'une vitesse de transfert très grande, et garder la ti89 intacte est dans mon cas un plus car elle servira de poste de controle et de commande, donc sera éloigné du reste de l'electronique. J'aimerai donc garder son aspect esthetique et originale (ça fera plus pro).

Par contre si la connection au bus rend plus simple l'electronique qui suit (genre connecter directement le bus ti aux entrées du µcontroleur) et ne déteriore pas trop la ti89 (les soudures et les nouveaux cables n'empecheront-ils pas de fermer le couvercle), je suis prêt à me plier à ton idée.

As-tu des liens vers des docs détaillées sur ce fameux bus, ses protocoles, ... ?

Merci vince
What kind of technology is this?

10

-

11

le bus des proco moto sont sans doute les plus simples à comprendre.

le soucis avec certaines calto il est matériel principalement, on va pas oser aller souder des fils sur les pistes... mais bon ton périphérique, tu lui ajoutes un décodeur d'adresses et tu lui câbles data, contrôle et adresses ensuite le décodage/chip select active le périph quand il est adressé et alors il a accès au buse data...

c'est ultra simplifié parcque pas le temps mais l'idée est là
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

12

-

13

En parlant de tes puces c'en est où ?
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon

15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^

18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#

14

le truc du bus c'est limite ironique

c'est extrêmement intéressant utile rapide toussa

mais aller souder 40 fils de 0.5 mm sur autant de pattes d'un proco dont les broches sont écartées de 0.5mm, c'est suicider la calcu directement neutral j'ai testé, j'ai soudé deux fils, cramé une piste et abandonné après réparation. j'avais un fer a souder de 40w, on peut mieux faire, mais c'est pas gagné, surtt si vous tenez a la santé de votre calc. Je dis pas que c'est impossible quand on a un labo, du matos, etc. mais pour monsieur tout le monde qui veut faire un TIPE c'est hors de portée.

le bus de com est la seule solution abordable rapidement mais j'ai des doutes quant a la vitesse de l'asservissement obtenu comme ça, a moins de commander un truc comme une plaque électrique (inertie thermique toussa triso) je doute de la réactivité du truc.

enfin teste, le truc est "faisable". on trouve des CAN/CNA sur bus I²C, que tu peux interfacer avec la lib I²C de Orion_. ensuite tu peux coder un truc en C qui fait:

while 1 {
in=lit_valeur_CAN();
out=function(in);
ecrit_valeur_CNA(out);
}

15

Même à raison d'une donnée traitée toutes les 3 secondes, ça suffit.

J'ai regardé la doc de microcontroleurs PIC, apparement toutes les opérations nécessaires sont présentes, à savoir les ror rol, les et/ou/eox logiques, les cmp et les mov.
Je pense faire ecouter le PIC en permanence les ports de la ti.
Un changement d'état d'une des sorties sera le feu vert pour la lecture de l'autre.
En gros les bit arriveront un par un.

Approche algo:

loop dan ti:
if (sortie1 viens de changer d'état)
{
rol "octet de controle d'entete",1
if (sortie2) "octet de controle d'entete" &= 0xFFFFFFFE;
else "octet de controle d'entete" |= 1;

if (entete1, "octet de controle d'entete")
{ branch Snifffer de donnees dédie à l'interception du fichier type 1}
if (entete2, "octet de controle d'entete")
{ branch Snifffer de donnees dédie à l'interception du fichier type 2}
etc...

}
bra loop

un truc du style.
Quand la ti a bien recu un paquet, elle doit le fait savoir donc apres chaque envoie de paquet, le PIC fait une petit pause pour attendre un signal de la ti.
Si il le recoit il se met en mode ecoute.


Mais, une question:
Si je mets un bit de sortie ti à 1, il va apparaitre une tension de 5V, mais pendant combien de temps, jusqu'à quoi, jusqu'a ce que je le mette à 1 depuis la ti uniquement ou depuis le microcontroleur ?
Comment ça marche la sauvegarde de la tension ?
Est-ce la calculatrice qui maintient la tension à 5V, comment ?
Est-ce possible de brancher directement les sorties ti aux pattes du PIC, y a-t-il des "interferences" ?

Je sais, je n'y connais rien.

meRci
What kind of technology is this?

16

ah.

si tu pars comme ça, utilise direct le DBUS de la calcu, la réception d'un octet génèrera une interruption logicielle dans la calcu.

docs:
http://www.galaxoft.org/linkguide/dbus.html
[tiwiki]DBUS[/tiwiki]

je peux me pencher sur ton code, l'implémentation du DBUS en ASM PIC m'intéresse, j'ai un projet en t^ete basé la dessus aussi.

et ta boucle d'asservissement dans la calcu pourra utiliser [tiwiki]OSReadLinkBlock[/tiwiki] et [tiwiki]OSWriteLinkBlock[/tiwiki]