Нажимаю Receiver->Action->Save config
не помогло
Нажимаю 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 тесновато.
OMAP пожалуй самый злокачественный ARM процессор в части конфигурации GPIO MUX 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 не оправдает доверия
Что вы понимаете под 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
Возник вопрос по программе rnx2rtkp из комплекта RTKlib 2.4.5b5. Какие спутниковые системы (GPS ,Glonass, BeiDou и т.д.) она поддерживает и использует при решении? Не нашел у нее ключа командной строки, задающего используемые системы.
Она понимает сохранённые с помощью гуишной версии конфиг.
-k file input options from configuration file [off]
У меня не получается настроить rtkpost.exe для статики/кинематики. В этих режимах у меня получаются single решения. rnx2rtkp эти же файлы с наблюдениями обрабатывает нормально, получая fix/float.
Проверь координаты базы в настройках, возможно там у тебя стоит 90х0, а не реальные.
Доброе время суток, есть оем плата на Ublox 6m с прошивкой 7.03 http://www.ebay.com/itm/200911914297?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT. ROM патчил-сырые данные выдает. Как я понял из данной темы перед каждым запуском RTKnav надо в U-centr включать передачу сырых данных или можно это сделать и через rtklib? Либо получить сырые с данного приемника данные следующим путем: слить прошивку с сайта ublox, пропатчить необходимые биты, вычислить контрольную сумму, залить в приемник (патчить, как я понят, любым HEX редактором, шить через U-centr, как контрольную сумму вычислить так и не понял )
Можно отправлять команды типа - RTKLIB_2.4.3\data\ubx_m8n_bds_raw_1hz.cmd , где-то тут даже писали команды для активации хака.
А вообще по-идее можно сохранить в EPPROM введённые настройки.
Всю тему пролистал, команды под RTKlib для 6m не нашёл. Хотя было упоминание, что для ublox costum message надо RTKlib патчить.
Заметил что мой приемник RAW данные выдает, а RXM-SFRB нет (может эфемериды еще не скачались?)
Заметил что мой приемник RAW данные выдает, а RXM-SFRB нет (может эфемериды еще не скачались?)
Да, он их выдаёт когда они реально есть, т.е. в комнате их можно ждать доооолго.