RTKlib/постпроцессинг

Это по ветке NMEA->GxTXT->GPTXT?
пусто там. все параметры этой ветки пустые.
независимо от того включаю отладочные сообщения или нет

Ну вот сделайте на нём poll message
Должно быть что-то вида

$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,HW  UBX-G60xx  00040007 FF7FFFFFp*53
$GPTXT,01,01,02,ROM CORE 7.03 (45969) Mar 17 2011 16:18:34*59

Пусто :frowning:
Прошелся по ветке NMEA - далеко не во всех параметрах есть сообщения.
Нажимал на кнопку внизу окна Poll и кликал по свойству строки Poll message - всё равно пусто.
Что-то не так делаю?

Оказывается сообщения включались, только надо долго ждать появления результата.
А потом пока не нажмёшь Poll - не обновляется.
Нажал “Enable message” - стало оперативно обновляться.
Также и с SFRB.
После переподключения необходимо повторить операции.
Где поправить настройки?

У второго модуля(6M) нет таких проблем. По конфигурации обоих модулей прошелся - настройки одинаковые.

Сохрани настройки в EEPROM

Нажимаю Receiver->Action->Save config

не помогло

У меня появилась идея задокументировать техническую информацию
о старых гарминовских девайсах с sirf3 чипсетом, так как все они имеют
SMA разъем для внешней антенны.

А как получать сырые данные на Garmin? На каком-то совсем древнем девайсе (кажется GPS12) их пытались извлекали из бинарного протокола Garmin.

Пока никак, но на устройствах с sirf3 можно попытаться.
Всех их объединяет центральный процессор OMAP1623:
gpsmap 60/76c(s)x, streetpilot i3 (2MB SRAM+16MB NOR)
streetpilot c5xx, nüvi 2x0,3x0,6x0(32MB SDRAM +256MB/1/2/4GB NAND),
LCD с тачскрином,
и такая конфигурация не идет ни в какое сравнение
с ардуиной и ко., при том что суммарная цена ниже.
С 32MB SDRAM конечно удобнее работать, но у них нет последовательного порта
как у gpsmap 60/76c(s)x, и отладкой придется заниматься через usbtty.
Я тут откомпилировал старый u-boot-1.1.6 для OMAP1610/OSK5912
(бинарник ~ 100K), так что если поправить информацию в lowlevel_*.S
то все будет отлично работать.
Можно даже было бы навигационный софт с nüvi 8xx запустить, но я думаю
ему будет в 32 MB тесновато.

http://artico.lma.fi.upm.es/numerico/miembros/antonio/async

Добавил https://wiki.openstreetmap.org/wiki/Garmin_LowLevel

OMAP пожалуй самый злокачественный ARM процессор в части конфигурации GPIO MUX :roll_eyes: http://www.ti.com/lit/ds/sprs231e/sprs231e.pdf


Name                  Nüvi350       SP C550                        60/76C(S)x

FUNC_MUX_CTRL_3      = 0            0                              0x1B000001
FUNC_MUX_CTRL_4      = 0x10000000   0x10400000                     0x10449243
FUNC_MUX_CTRL_5      = 0x00012480   0x00012000                     0x00012000
FUNC_MUX_CTRL_6      = 0x0001001B   0x0001001B                     0x00010240
FUNC_MUX_CTRL_7      = 0x00000040   0                              0
FUNC_MUX_CTRL_8      = 0x18000000   0x18000000                     0
FUNC_MUX_CTRL_9      = 0x12242000   0x1224201B                     0x12242000
FUNC_MUX_CTRL_A      = 0x00000480   0x00003488                     0x00003480
FUNC_MUX_CTRL_B      = 0x00092690   0x00092690                     0x000800C0
FUNC_MUX_CTRL_C      = 3            3                              0x203
FUNC_MUX_CTRL_D      = 0            0                              0x00003080
FUNC_MUX_CTRL_E      = 0            0                              0
FUNC_MUX_CTRL_F      = 0x08001000   0x00001000                     0x00001000
FUNC_MUX_CTRL_10     = 0x00000090   0x00002090                     0x08042001
FUNC_MUX_CTRL_11     = 0            0                              0
FUNC_MUX_CTRL_12     = 0            0                              0

USB_TRANSCEIVER_CTR  = 0            6                              0

PULL_DWN_CTRL_0      = 0x7FFFF7FF   0x76FFF7FF                     0x7FFFF7FF
PULL_DWN_CTRL_1      = 0x278376C9   0x218070EB                     0x218373EB
PULL_DWN_CTRL_2      = 0xAC5027A5   0xAC0E27A5                     0xAC7E27A5
PULL_DWN_CTRL_3      = 0x0E000003   0x0E000003                     0x0E000103
PULL_DWN_CTRL_4      = 0xF00FD228   0xF00FD228                     0xF00FD228

PU_PD_SEL_0          = 0            0x09000000                     0
PU_PD_SEL_1          = 0x00000122   0x06030500                     0x06000400
PU_PD_SEL_2          = 0x002DD000   0x0071D000                     0x0001D000
PU_PD_SEL_3          = 0x00000100   0x00000100                     0x00000001

GPIO1_DATAOUT          |6           &0xFFFF7EEF(8110)|4000
GPIO1_DIRECTION      = 0xEEB9       = 0x64C                        0x1190
GPIO2_DATAOUT          bic 85       &0xFFFFB5B8(4a47)              &~6000 |1004
GPIO2_DIRECTION      = 0x9F78       =0x2180                        =0x8040
GPIO3_DATAOUT        bic 1<<b(800) | 1              &0xFFFFF5F6(a09)|=0x8066         &~860 |1
GPIO3_DIRECTION      = 0x74FF                       1<<a(400)                        8
GPIO4_DATAOUT        bic 1<<c(1000) | 0x900         &0xFFFFBFF9(4006)|1100            &~30 | 300
GPIO4_DIRECTION      = 0xE4FF                        1<<b(800)                         8001

Ну так их обычно настраивают через графический конфигуратор или через библиотеку из SDK для процессора. В крайнем случае используют кучу #define c адресами, смещениями и битами в регистрах. Вам удалось найти SDK на этот проц?

Сейчас только сообразил, что по крайней мере модели
с поддержкой TMC всегда имеют UART с выходом наружу,
и он скорее всего в том числе используется для доступа к bootloader (как например blob на nüvi 8xx).
К нему также всегда можно подключить u-blox, если sirf3 не оправдает доверия :sunglasses:

Что вы понимаете под SDK ? Есть Linux для OMAP1 (1610), например http://elinux.org/OSK,
и 32MB SDRAM более чем достаточно чтобы его запустить,
загрузив zImage в RAM с помощью старого доброго Updater.exe (RGN 0xC), также как это было сделано для Nüvi 860,
нужно только разобраться, куда и как какое железо подключено:
pci шины у OMAP нет.
Nüvi 350 и StreetPilot C550 специально выбраны, так как имеют TMC, а с гарминовской прошивкой
они и треки-то писать не умеют.
К тому же как видно по конфигурации gpsmap 60/76C(S)x, nüvi в режиме логгера
можно научить реально экономить электроэнергию: понизив напряжение на
субсистемах OMAP и снизив тактовую частоту DPLL c 204 MHz как минимум до 80 MHz,
если вообще не до 12 MHz.
Я выдернул и переформатировал таблицу из мануала,
с этим уже можно работать.
Пример для FUNC_MUX_CTRL_3:


MUXREG  3 00 3[2:0] = 000 --> G19 KB.C[5]      O   Reg3[2:0] = 000
MUXREG  3 00 3[2:0] = 111 -->     GPIO28      I/O  Reg3[2:0] = 111
MUXREG  3 03 3[5:3] = 000 --> C21 KB.C[4]      O   Reg3[5:3] = 000
MUXREG  3 03 3[5:3] = 111 -->     GPIO27      I/O  Reg3[5:3] = 111
MUXREG  3 06 3[8:6] = 000 --> E18 KB.C[3]      O   Reg3[8:6] = 000
MUXREG  3 06 3[8:6] = 110 -->     GPIO63      I/O  Reg3[8:6] = 110
MUXREG  3 09 3[11:9] = 000 --> D19 KB.C[2]      O   Reg3[11:9] = 000
MUXREG  3 09 3[11:9] = 111 -->     GPIO61      I/O  Reg3[11:9] = 111
MUXREG  3 12 3[14:12] = 000 --> D20 KB.C[1]      O  Reg3[14:12] = 000
MUXREG  3 12 3[14:12] = 001 -->     MPUIO6      I/O Reg3[14:12] = 001
MUXREG  3 15 3[17:15] = 000 --> F18 KB.C[0]      O  Reg3[17:15] = 000
MUXREG  3 15 3[17:15] = 001 -->     MPUIO0      I/O Reg3[17:15] = 001
MUXREG  3 18 3[20:18] = 000 --> E19 KB.R[4]       I Reg3[20:18] = 000
MUXREG  3 18 3[20:18] = 001 -->     MPUIO15     I/O Reg3[20:18] = 001
MUXREG  3 21 3[23:21] = 000 --> E20 KB.R[3]       I Reg3[23:21] = 000
MUXREG  3 21 3[23:21] = 001 -->     MPUIO13     I/O Reg3[23:21] = 001
MUXREG  3 24 3[26:24] = 000 --> H14 KB.R[2]       I Reg3[26:24] = 000
MUXREG  3 24 3[26:24] = 001 -->     MPUIO10     I/O Reg3[26:24] = 001
MUXREG  3 27 3[29:27] = 000 --> F19 KB.R[1]       I Reg3[29:27] = 000
MUXREG  3 27 3[29:27] = 001 -->     MPUIO9      I/O Reg3[29:27] = 001

Библиотеки от производителя (TI) для инициализации и работы с переферией.
Но если использовать Linux, то там наверное уже сделана поддержка UART, SPI, SD карт и другой распространенной переферии. Сам Garmin в этих приборах тоже использует Linux?

Естественно. Я же не кремлевский мечтатель, чтобы тут околесицу живописать.
Но всем этим драйверам нужна конфигурационная информация, иначе откуда
им знать, что TMC на UART2, а не на UART1.

Нет. Вот полный список устройств с линуксом
http://developer.garmin.com/open-source/linux
Хотя ситуация с 35xx мне непонятна: в обновлении прошивки явно не Linux.

Если декодировать MUX в соответствии с таблицей для OMAP1610 http://lxr.free-electrons.com/source/arch/arm/mach-omap1/mux.c
то видно, что при запуске конфигурируются следующие системы: UART1,2,3, некоторые GPIO, uWire (видимо тачскрин), MMC/SD , I2C (барометр и т.п.?)
и матричный контроллер для кнопок (на 60/76CSx):


+UART1_TX

+UART2_RX
+UART2_CTS

+UART3_RX
+UART3_CTS
+UART3_RTS   
+UART3_BCLK  

+USB1_VP

+R18_1510_GPIO0
+R19_1510_GPIO1
+M14_1510_GPIO2
+P18_1610_GPIO3
+P20_1610_GPIO4
+W8_1610_GPIO9
+N20_1610_GPIO11
+N19_1610_GPIO13
+M7_1610_GPIO62

+V19_1610_UWIRE_SCLK
+U18_1610_UWIRE_SDI 
+W21_1610_UWIRE_SDO 

+MMC_CMD
+MMC_CLK
+MMC_DAT0
+MMC_DAT1
+MMC_DAT2
+MMC_DAT3

+I2C_SCL
+I2C_SDA

+F18_1610_KBC0
+D20_1610_KBC1
+D19_1610_KBC2
+E18_1610_KBC3
+C21_1610_KBC4
+E20_1610_KBR3
+E19_1610_KBR4


На 60/76 задействованы 2 UART’а : для внешнего последовательного порта
и для GPS, на nüvi 350 тоже 2: TMC и GPS, а на streetpilot C550 все 3:
TMC,Bluetooth (фирмы Parrot) и GPS. Кто куда подключен еще надо выяснить (TMC +extern проще всего перебором).
Параметры LCD для C550 я нашел прямо в прошивке, но они в общем-то и не нужны:
гармин их туда уже записал и Linux ими прямо и воспользуется.
Для того чтобы запустить загруженный в SDRAM zImage, надо еще будет модифицировать
вот этот генератор ATAGs (выкинув всю конфигурацию для OMAP3)
https://github.com/nmenon/omap-u-boot-utils/blob/master/src/asm/sty-omap3.S

Похоже, что это не обязательно:


...
Machine: Generic OMAP1510/1610/1710
Warning: bad configuration page, trying to continue
...

http://www.drolez.com/software/tungsten
Надо будет попробовать…
qpe на гармине это конечно priceless :sunglasses:

Возник вопрос по программе rnx2rtkp из комплекта RTKlib 2.4.5b5. Какие спутниковые системы (GPS ,Glonass, BeiDou и т.д.) она поддерживает и использует при решении? Не нашел у нее ключа командной строки, задающего используемые системы.

Она понимает сохранённые с помощью гуишной версии конфиг.

-k file   input options from configuration file [off]

У меня не получается настроить rtkpost.exe для статики/кинематики. В этих режимах у меня получаются single решения. rnx2rtkp эти же файлы с наблюдениями обрабатывает нормально, получая fix/float.