-

dsTNC - czyli TNC oparty o procesor DSP



Przypominam, że koncepcja urządzenia , konkretny wzór schematu ideowego, oprogramowania, oraz mozaika ścieżek obwodu drukowanego podlega pod prawo autorskie polskie i unijne :

  • Ustawa z dn. 4 luty 1994r. o Prawie Autorskim i Prawach Pokrewnych
  • Dz. U. nr 24 poz. 83 z późniejszymi zmianami
W związku z powyższym publikowane tu materiały należy traktować edukacyjnie i informacyjnie. Nie mogą być one wykorzystywane do jakiejkolwiek działalności zarobkowej bez pisemnej zgody autora. (powyższy tekst pochodzi ze strony Marcina SP7XIA bardzo mi się spodobał i postanowiłem go podkraść - za jego zgodą :-))



Pewnego dnia postanowiłem zrobić coś nowego; nauczyć się cyfrowego przetwarzania sygnałów. Ponieważ od jakiegoś czasu bawię się w APRS - postanowiłem zrobić modem AFSK1200 właśnie w tej technice - głównie dlatego, że dedykowane kostki modemów analogowych są drogie i trudnodostępne. Procesor użyty w projekcie kosztuje 25 zł netto i jest dostępny "od ręki" np w TME czy Farnellu.


Postanowiłem spróbować swoich sił w zaimplementowaniu algorytmu zaproponowanego w 1995r przez Thomasa Sailera HB9JNX na procesor dsPIC30F4013. Owocem moich przemyśleń jest rozrysowany poniżej algorytm:

Algorytm jest bardzo skuteczny, przy jego pomocy udaje się poprawnie zdekodować 900 ramek (!!! ktoś zdekoduje więcej ? ;-)) (wyniki tutaj) z 2 ścieżki APRS test CD kolegi WA8LMF (plik wav UWAGA ! 130 MB, WA8LMF test CD) (Oczywiście moim modemem :-)) Modem oparty o układ TCM3105, który - jak mi się wydawało - potrafił odebrać wszystko, odbiera jedynie 747 ramek :-)


Następnie powstał schemat:

aż wreszcie gotowy modem (modem na zdjęciu pozbawiony jest układu MAX232 - ponieważ podłączam się do niego kabelkiem USB - TTL):


Sygnał audio podawany jest przez strojony filtr dolnoprzepustowy MAXima na wejście przetwornika ADC procesora. Sam filtr jest opcjonalny i w przypadku jego braku można go zastąpić rezystorem 680R pomiędzy nóżkami 2 a 5 podstawki i zworą pomiędzy nóżkami 5 i 6. Ważne, żeby poziom sygnału wejściowego audio nie był zbyt niski


Sygnał wyjściowy AFSK wytwarzany jest techniką PWM i po przejściu przez filtr podawany jest na wejście nadajnika.


Procesor pracuje z prędkością 10 MIPS (może pracować maksymalnie na 30 MIPS) i część modemowa zajmuje ok 6% czasu procesora. Po zakończeniu pracy nad projektem AFSK1200 spróbuję uruchomić na tym samym sprzęcie FSK4800 (D-STAR) i FSK9600. Trzymajcie kciuki.


Aktualnie udostępniam firmware KISS_TNC które realizuje funkcje kontrolera KISS z prędkością 57600 bit/s na porcie szeregowym, gotowe do współpracy z oprogramowaniem UIView, Xastir, czy stosem AX25 w Linuxie. Dostępne jest również oprogramowanie dsDIGI realizujące funkcję DIGI WIDE1-1, szczegóły tutaj.

Procesor można zaprogramować programatorami ICD2, ICD3, PICkit Microchipa. Proszę zwrócić uwagę na rozkład pinów złącza ISP - to mój własny standard (kiedyś zrobiłem sobie taki kabelek i się tego trzymam).

Rozpiska złącz, na zdjęciu poniżej (kliknij w obrazek żeby powiększyć):

UWAGA! Piny portu szeregowego dotyczą wyprowadzeń modemu. Sygnał TxD modemu łączymy z RxD komputera, a RxD modemu z TxD komputera.

Demonstracja działającego układu w porównaniu do linuxowego soundmodemu przedstawiona jest na poniższym filmiku:


Na tym właśnie TNC pracuje DIGI/iGate SR9NKO proszę rzucić okiem na zasięgi odbiornika.
Układ nie wymaga żadnego uruchamiania czy strojenia (poza zaprogramowaniem procesora). Jedyne co trzeba zrobić, to ustawić poziom sygnału audio podawanego na wejście nadajnika.

Jeśli masz pytania - zapraszam do mailowania. 73! DE Tomek, SP9UOB.

Jeśli jesteś zainteresowany płytką drukowaną bądź zaprogramowanym procesorem - również proszę o kontakt.

-