PIC16F628 or 16F88 could be great ones to start.
PIC16F819, 16F877 are also really popular
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.
@ 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 ...
_______________________________________________
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?
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
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...
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...
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
Bookmarks