Page 1 of 1

Protocole de transfert

Unread postPosted: 24 Mar 2013, 17:45
by Handers
Bonjour,
Je cherche actuellement a comprendre comment fonctionne la transition de donnée entre ti z80 et plus particulièrement comment se fait la transmission d'un bit via la commande linkSend( d'omnicalc, mais toute information ou idée sur la manière dont sont transmit les bits via le port link sont les bienvenues :)
Cela a pour but de permettre d'envoyer des octets de donnée à la ti via un microcontrôleur et d'exploiter ainsi son affichage et son moteur de calcul.
Merci d'avance :D

Re: Protocole de transfert

Unread postPosted: 24 Mar 2013, 17:49
by Lionel Debroux
En standard, les TI-Z80 et TI-68k utilisent une sorte de protocole half-duplex "je descends une ligne / l'autre descend l'autre ligne pour l'acknowledge / etc."
Voir par exemple http://tict.ticalc.org/docs/J89hw.txt et le Linkguide de TILP.

Naturellement, en ASM, on peut faire utiliser tout autre protocole: des choses plus proches d'un RS232 standard, CALCnet de Kerm, etc.

N'hésite pas à poser des questions complémentaires :)

Re: Protocole de transfert

Unread postPosted: 24 Mar 2013, 17:57
by Handers
Merci :)
Donc si je souhaite envoyer un octet à la 83+ (170d --> % 10101010), je connect le cable link à deux port de mon micro (A0 et A1 par ex), je met A0 à1 et j'attend jusqu'a ce que A1 passe à 1 puis je met A0 à 0 j'attend que A1 passe à 0 etc ?

Re: Protocole de transfert

Unread postPosted: 24 Mar 2013, 18:16
by Lionel Debroux
Il faut plutôt mettre à zéro les fils :)
Code: Select all
$60000E RW Direct link port access
   :7-4   -
   :3   Live status of D1/ring/white  (1=pulled down)
   :2   Live status of D0/tip/red  (1=pulled down)
   :1   Activate (pull down) D1/ring/white
   :0   Activate (pull down) D0/tip/red
   Note: The byte sender/receiver will be confused by direct link port
   access, it should be disabled first.  (See $60000C:6.)
   * D0/tip/red is pulled down first (by sender) when sending a '0'.
   * D1/ring/white is pulled down first (by sender) when sending a '1'.
   * The innermost ring is signal ground.
   * The link port normally operates in a half-duplex mode where a bit
     is sent by activating the corresponding line ("ring" or "tip") and
     the receiver acknowledges by activating the other line.  The
     sender now releases its line and finally the receiver releases the
     acknowledge.  Whole bytes are always sent, LSB first.  An "error"
     condition (="abort") is signalled by activating both lines at the
     same time for ~250us.
   * When generating stereo sound, use tip/red for right channel and
     ring/white for left channel.

Re: Protocole de transfert

Unread postPosted: 24 Mar 2013, 18:29
by Handers
Super ! Merci beaucoup !
Ca devrait pas être trop compliqué à coder ça :)
Je vais vérifier à l'oscillo qu'omnicalc utilise le même protocole, ce serait super car ses commandes sont très facilement utilisable dans un programme en basic.
En tout cas merci infiniment, je te tiendrais au courant de mes progrès :)
Si j'arrive à quelque chose de viable, tu penses que je peux poster la partie microcontroleur sous forme d'algorigrame ?
Encore merci :D