Configurare SA818

De la YO3ITI
Sari la navigare Sari la căutare

Serial activat

Fără activare /dev arată așa:

$ ls -l /dev/serial*
lrwxrwxrwx 1 root root 7 Sep 28 21:59 /dev/serial1 -> ttyAMA0

Următoarea linie trebuie adăugată în /boot/config.txt:

enable_uart=1

După activare:

$ ls -l /dev/serial*
lrwxrwxrwx 1 root root 5 Sep 28 21:59 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 Sep 28 21:59 /dev/serial1 -> ttyAMA0

Instalare pip

sudo apt install python3-pip

Instalare serial:

$ sudo pip3 install pyserial
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting pyserial
  Downloading https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl (193kB)
    100% |████████████████████████████████| 194kB 1.5MB/s 
Installing collected packages: pyserial
Successfully installed pyserial-3.4

Erori script

$ sa818conf 
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/serial/serialposix.py", line 265, in open
    self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
FileNotFoundError: [Errno 2] No such file or directory: '/dev/ttyS0'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/lucian/scripts/orangeserial.py", line 15, in <module>
    stopbits=serial.STOPBITS_ONE)
  File "/usr/local/lib/python3.7/dist-packages/serial/serialutil.py", line 240, in __init__
    self.open()
  File "/usr/local/lib/python3.7/dist-packages/serial/serialposix.py", line 268, in open
    raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyS0: [Errno 2] No such file or directory: '/dev/ttyS0'

Exemple programare

Pentru configurarea parametrilor SA818 se folosește o interfață UART standard. Formatul comenzii UART este 9600, 8, N, 1, care înseamnă: Baud = 9600; data bit = 8 bit; Parity = None; Stop bit = 1 bit. Interfața este TTL sau CMOS la 3,3V. Parametrii care pot fi configurați sunt: lărgimea de bandă, frecvența Tx, frecvența Rx, Squelch, Tx SubAudio (Tx CTCSS/ Tx-DCS), Rx SubAudio (Rx CTCSS/ Rx DCS), volum, frecvența de scanare, filtrul audio, etc. Când sunt primite comenzile, modulul va verifica și va răspunde cu un mesaj de tip ACK (acknowledge). Înainte de trimiterea următoarei comenzi, trebuie așteptat.

AT+DMOCONNECT

AT+DMOSETGROUP=GBW,TFV, RFV,Tx_CTCSS,SQ,Rx_CTCSS

. GBW: Channels space. 0.12.5k; 1.25k . TFV: Transmit frequency. Range: 134.0000~174.0000MHz . RFV: Receive frequency. Range: 134.0000~174.0000MHz. The frequency should be the times of 12.5KHz or 25KHz. . Tx_CTCSS: CTCSS value in transmit PL103.5 = 13, PL123 = 18 . SQ: Squelch level (0~8). 0. monitor mode which can.t be used in scanning mode. . Rx_CTCSS: CTCSS value in receive PL103.5 = 13, PL123 = 18 . x: Configuration result. 0. succeeded; 1. data out of range.

De exemplu:

AT+DMOSETGROUP=0,152.1250,152.1250,0012,4,0003<CR><LF>

Sau:

AT+DMOSETGROUP=0,152.1250,152.1250,754N,4,445I<CR><LF>

Răspuns:

+DMOSETGROUP:0<CR><LF>  OK

Exemple:

AT+DMOSETGROUP=1,432.7750,432.7750,0018,8,0013
AT+DMOSETGROUP=1,432.5000,432.5000,0013,8,0013
AT+DMOSETGROUP=1,432.5000,432.5000,0025,8,0025
AT+DMOSETGROUP=1,432.5000,432.5000,0000,8,0000
AT+DMOSETGROUP=1,432.7750,432.7750,0000,8,0000

Configurarea volumului:

Forma:

AT+DMOSETVOLUME=X

Nivelul volumului este în intervalul 1--8

AT+DMOSETVOLUME=3

Filtre

AT+SETFILTER=PRE/DE-EMPH, HIGHPASS, LOWPASS

PRE/DE-EMPH: 1: emphasis bypass 0: emphasis normal

HIGHPASS: 1: voice_highpass_filter_bypass 0: voice_highpass_filter normal

LOWPASS: 1: voice_lowpass_filter_bypass 0: voice_lowpass_filter normal

AT+SETFILTER=0,0,0

Configurarea tonului de închidere

Format:

AT+SETTAIL=TAIL

TAIL: 1: open tail tone 0: close tail tone

RSSI

Format:

RSSI?

Valorile RSSI sunt de la 0 la 255, unitate de 1dB

Versiunea modulului

Format:

AT+VERSION

Erori comunicare serială

>> AT+DMOCONNECT
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 537, in write
    n = os.write(self.fd, d)
OSError: [Errno 5] Input/output error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tom/scripts/orangeserial.py", line 33, in <module>
    ser.write((rinput + '\r\n').encode('utf-8'))
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 571, in write
    raise SerialException('write failed: {}'.format(e))
serial.serialutil.SerialException: write failed: [Errno 5] Input/output error

By default Raspbian configures the Raspberry Pi serial port (GPIO14-GPIO15) to provide boot-up information. It also allows you to login via a connected device. If you need to use the Pi’s serial port for something else (i.e. a specific add-on board) you will need to disable this default functionality.

Comenzi

Coduri CTCSS

NS PL Hz
1 XZ 67.0
39 WZ 69.3
2 XA 71.9
3 WA 74.4
4 XB 77.0
5 WB 79.7
6 YZ 82.5
7 YA 85.4
8 YB 88.5
9 ZZ 91.5
10 ZA 94.8
11 ZB 97.4
12 1Z 100.0
13 1A 103.5
14 1B 107.2
15 2Z 110.9
16 2A 114.8
17 2B 118.8
NS PL Hz
18 3Z 123.0
19 3A 127.3
20 3B 131.8
21 4Z 136.5
22 4A 141.3
23 4B 146.2
NATO 150.0
24 5Z 151.4
25 5A 156.7
40 159.8
26 5B 162.2
41 165.5
27 6Z 167.9
42 171.3
28 6A 173.8
43 177.3
29 6B 179.9
44 183.5
NS PL Hz
30 7Z 186.2
45 189.9
31 7A 192.8
46 196.6
47 199.5
32 M1 203.5
48 8Z 206.5
33 M2 210.7
34 M3 218.1
35 M4 225.7
49 9Z 229.1
36 M5 233.6
37 M6 241.8
38 M7 250.3
50 0Z 254.1