TTY - Teletype Terminal


Closed Thread
Results 1 to 27 of 27

Hybrid View

  1. #1
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    PIC16F628 or 16F88 could be great ones to start.

    PIC16F819, 16F877 are also really popular
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  2. #2
    Join Date
    Feb 2004
    Location
    Germany
    Posts
    762


    Did you find this post helpful? Yes | No

    Default

    @ Dwayne

    isn't this something we are "already" working on ?

    ;-)
    regards

    Ralph

    _______________________________________________
    There are only 10 types of people:
    Those who understand binary, and those who don't ...
    _______________________________________________



  3. #3
    Foxx373's Avatar
    Foxx373 Guest


    Did you find this post helpful? Yes | No

    Default

    ok, im trying to figure out how to at least transmit the TTY tones... the only way i can think of doing it is using a crapload of If-Then statements. Kinda like this...


    IF key="A" THEN
    FREQOUT PORTB.1,40,1800
    FREQOUT PORTB.1,40,1800
    FREQOUT PORTB.1,40,1800
    FREQOUT PORTB.1,40,1400
    FREQOUT PORTB.1,40,1400
    end if


    then have the same for the rest of the characters. But i think it would be better to put whatever they keyboard data that comes by into memory, that way there is a buffer... but i have no idea how to do that.

    Any other suggestions on how to do this?

  4. #4
    Join Date
    Oct 2004
    Location
    Italy
    Posts
    695


    Did you find this post helpful? Yes | No

    Default

    Hi,

    The standard used by TDDs is the Baudot code implemented
    asynchronously at 45.5 (USA), 1 start bit, 5 data bits,
    and 1.5 stop bits.

    In your example I see only the 5 data bits.

    From the PBP manual:

    FREQOUT generates tones using a form of pulse width modulation.
    The raw data coming out of the pin looks pretty scary. Some kind
    of filter is usually necessary to smooth the signal to a sine
    wave get rid of some of the harmonics that are generated.

    * * *

    Two questions when you use the FREQOUT command + filter:

    1. What happen during transitions with the output signal?
    2. Is the the output phase-continuous during transitions?

    The output of the sinusoidal FSK Generator has to be
    phase-continuous during transitions.(Mark and space transitions).

    See page 2 of this PDF for Frequency shift keying (FSK) signal.
    http://www.cs.sfu.ca/CourseCentral/3...s/lecture7.pdf

    * * *

    What about using the HW tone generator XR 2206 from Exar Corporation?
    (The input for the tone generator XR 2206 is serial data).

    XR-2206 monolithic function generator
    Datasheet Rev 1.03
    http://www.exar.com/products/XR2206v103.pdf

    Page 9

    FSK Generation
    Figure 13 shows the circuit connection for sinusoidal FSK
    signal operation. Mark and space frequencies can be
    independently adjusted by the choice of timing resistors,
    R1 and R2; the output is phase-continuous during
    transitions. The keying signal is applied to Pin 9.


    Again, start with the decoder part of your project.
    The encoder part is easy.

    Best regards,

    Luciano

  5. #5
    Join Date
    Dec 2003
    Location
    Wichita KS
    Posts
    511


    Did you find this post helpful? Yes | No

    Default

    Hello Ralph,

    Ralph>>@ Dwayne

    isn't this something we are "already" working on ?<<

    <chuckle> Yep... I was working more on letting the PIC do all the work, instead of using PLL chips to detect the tones like I did in 1990.

    Dwayne
    Ability to Fly:
    Hurling yourself towards the ground, and missing.

    Engineers that Contribute to flying:
    Both optimists and pessimists contribute to the society. The optimist invents the aeroplane, the pessimist the parachute

    Pilots that are Flying:
    Those who know their limitations, and respect the green side of the grass...

  6. #6
    Join Date
    Dec 2003
    Location
    Wichita KS
    Posts
    511


    Did you find this post helpful? Yes | No

    Default

    Hello Fox,

    Fox>>ok, im trying to figure out how to at least transmit the TTY tones... the only way i can think of doing it is using a crapload of If-Then statements. Kinda like this...


    IF key="A" THEN
    FREQOUT PORTB.1,40,1800
    FREQOUT PORTB.1,40,1800
    FREQOUT PORTB.1,40,1800
    FREQOUT PORTB.1,40,1400
    FREQOUT PORTB.1,40,1400
    end if


    then have the same for the rest of the characters. But i think it would be better to put whatever they keyboard data that comes by into memory, that way there is a buffer... but i have no idea how to do that.

    Any other suggestions on how to do this?
    <<

    Ouch...Lets think about this a second ok? There are a couple of options.
    It would be much better to represent your letters in a numeric or bionary form.
    Letting one tone be 1's and the other be zeros'. but that poses a slight problem, because how are you going to represent letters that have 3 of the same tones, verse 2 of the same tones? One way to do this, it to have representations of one tone in one variable, and representation of the other tone in another variable.

    Lets let one tone represent 1800hz and the other tone represent 2150hz ( I like thinking of it in "tones" instead of Mark,stop, space, and start bits.

    Lets look at Morse code (which the idea is similiar to Baudot, except it uses 6 possible bits to print out the ASCII characters that Hams use.

    T=_
    M=_ _
    O=_ _ _
    9=_ _ _ _.

    Notice the problem concerning the dashes or spaces? Using just a 1 and zero will not truely represent and differentiate between the characters.
    T=0
    M=00
    O=000
    9=00001
    which all 3 equate to zero and if you attempt to use 1's to present dashes, you run into the same problem using 0's to represent the "dits".

    One way to do such a thing, is the following: (letting 1 equate to dits)
    Vs Var byte (keeps track of the dits...shorts)
    Vl Var Byte (Keeps track of the dashes...long)

    T:
    Vs=%00000000
    Vl= %00000001
    $00,$01

    0:
    Vs=%00000000
    Vl= %00000111
    $00,$07

    Now, lets take a "complicated" character... Like the period. It is of 6 characters in Morse, and baudot is in 5... but the same principal applies
    .:
    .-.-.-

    Vs=%00101010
    Vl =%00010101
    $2A $15

    Now, with this in mind, we can play a game of receive/shift!

    Loop:
    Vs=0;
    Vl=0;
    counter=0;
    Loop2:
    receive tone
    if Tone length = correct (because you may have a 'pause')
    {
    (and a pause generates a tone!)
    (on some machines! )
    switch Tone

    case tone=low
    Vs[0]=1;
    Vl[0]=0;
    Vs<<1
    Vl<<1


    case tone=high

    Vs[0]=0;
    Vl[0]=1;
    Vs<<1
    Vl<<1

    endswitch
    counter =counter+1;
    }endif (counter less than 6)
    if counter<6 goto Loop2 (hey, get next tone!)
    if counter =6 then Loop1 (error, too many tones)
    }endif

    Vs, and VL have your data , you could combine them into 1 word if you want, instead of 2 separate bytes.

    Now you can do a couple of things from here... either a table lookup, or
    a if/case statement.

    switch VsVl
    case VsVl=$0007
    Print "O"
    case VsVl=$2A15
    Print "."

    etc. etc. etc.
    Last edited by Dwayne; - 10th March 2005 at 22:18. Reason: mistyped counter
    Ability to Fly:
    Hurling yourself towards the ground, and missing.

    Engineers that Contribute to flying:
    Both optimists and pessimists contribute to the society. The optimist invents the aeroplane, the pessimist the parachute

    Pilots that are Flying:
    Those who know their limitations, and respect the green side of the grass...

  7. #7
    Join Date
    Oct 2004
    Location
    Italy
    Posts
    695


    Did you find this post helpful? Yes | No

    Default

    See attachments.

    Oscilloscope picture of the transition SPACE to MARK. The signal is generated with the sound card and the SW CallTTY v. 1.10.

    Luciano
    Attached Images Attached Images  

Similar Threads

  1. Key_in from terminal
    By iw2fvo in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 25th May 2009, 16:15
  2. Hyper Terminal Setting for TTL putput
    By ClayE in forum Serial
    Replies: 6
    Last Post: - 7th June 2008, 06:50
  3. Tapping data from a Unix VT220 terminal
    By sougata in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 22nd February 2006, 04:47
  4. what is hyper terminal?
    By moud_man in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 27th September 2005, 19:33
  5. USB Terminal
    By Normnet in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 28th April 2005, 11:51

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts