ab0tj / SmartModem

PIC16F88 ZCD Packet Modem

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SmartModem

*** This is old code that was never finished. You should probably not use it for anything other than stealing code snippets.
I am only leaving it here for posterity ***

A ZCD packet modem for the Microchip PIC 16F88.
Designed for use with the MiniGate. (See https://github.com/ab0tj/MiniGate)

Source code is C, written using MPLAB X and the HiTech C Compiler.

A schematic of the TNC that this was based on is available in Bob_Ball_TNC.pdf

The modem will decode incoming AFSK data, removing NRZI and any bit stuffing,
and then send the recieved bytes out the serial port. No error checking or other
processing is performed, in order to keep the modem as transparent as possible
while still taking care of the timing-sensitive TNC functions. This way, the
rest of the TNC can be implemented on a non-realtime system (that would have 
much more buffer space available than the PIC chip does), such as a PC or
Netduino.

Transmit functionality is planned but not yet implemented.

The software receiving bytes from the SmartModem can assume that any bytes
received are data straight from the AFSK input signal, except 0x1B. 0x1B is
used as an escape character of sorts. An AX.25 flag will be preceeded by the
escape byte to distinguish it from a 'bit stuffed' 0x7E (~) in the packet data.
If 0x1B appears in the packet data, it will be sent twice.

This software is free and open source, released under the GPLv3 license.
See the file LICENSE for more information.

About

PIC16F88 ZCD Packet Modem

License:GNU General Public License v3.0


Languages

Language:Makefile 73.0%Language:C 20.7%Language:Shell 6.4%