Перейти к содержанию
    

Eskimos

Участник
  • Постов

    6
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Добрый день. Возникла задача сделать электронной устройство, одной из функций которого является получение координат с точностью 0.1м. Было принято предварительное решение использовать ГНСС модуль GeoS-5 RTK. Он позволяет работать с такой точностью только в режиме RTK, т.е. ему нужно получать поправки по протоколу RTCM 3.0/3.2. Одним из вариантов является использование еще одного(или нескольких?) ГНСС модуля, который нужно расположить в точке с известными с высокой точностью координатами. Но, как я понимаю, это будет работать, если расстояние между модулями не более 30-50 км. Второй вариант - использовать координаты вышек операторов связи, но сами операторы точные координаты вряд ли предоставят(поправьте если не прав), а использовать базы гугла или яндекса для такой задачи нельзя, так как в них координаты базовых станций формируются исходя из подключений пользователей. Есть ли сервисы, которые смогут передавать поправки? Какие архитектурные решения можно еще посоветовать для данной задачи?
  2. Спасибо за ответы. Видимо такая запись не осуществима, буду искать другой выход из ситуации
  3. Если вторая команда будет FLASH_ProgramWord_16(address,0x1122); , результат будет FF22. Я в приведенном коде по сути нули и добавляю, но не работает. Возможно там аппаратно так сделано, что если одна часть полуслова не 0xFF, то вторую нельзя записать.
  4. Добрый день! Занимаюсь разработкой загрузчика для STM32F105R8T6. Согласно документации на семейство микроконтроллеров запись во флеш память осуществляется 16-битными полусловами. У меня появилась необходимость записать в ячейку памяти с четным адресом 1 байт, а затем(то есть не одновременно 2 байта, а 1 за 1, в общем случае между этими записями могут быть еще какие-то операции) с последующим нечетным адресом еще 1 байт. Перед записью все используемые ячейки памяти стерты. Поскольку писать можно только 16-битными полусловами, приходится сделать следующее для записи(привожу 2 варианта в разном порядке): uint32_t address = 0x08006040; FLASH_ProgramWord_16(address,0xFF22); FLASH_ProgramWord_16(address,0x11FF); uint32_t address = 0x08006040; FLASH_ProgramWord_16(address,0x11FF); FLASH_ProgramWord_16(address,0xFF22); Сама процедура записи(но вряд ли дело в ней): void FLASH_ProgramWord_16_was(uint32_t Address, uint16_t Data) { /*Разблокировать flash*/ if((FLASH->CR & FLASH_CR_LOCK) != RESET) { FLASH->KEYR = (uint32_t)0x45670123; FLASH->KEYR = (uint32_t)0xCDEF89AB; } /* Ожидание последняя операция должна быть завершена */ while (FLASH->SR & FLASH_SR_BSY); if (FLASH->SR & FLASH_SR_EOP) { FLASH->SR = FLASH_SR_EOP; } FLASH->CR |= FLASH_CR_PG; *(uint16_t*)Address = Data; while (FLASH->SR & FLASH_SR_BSY); } В 1 варианте получаю FF22, во втором 11FF, желанные 1122 получить не удается. Возможно ли реализовать такую запись во флеш именно на таком микроконтроллере? И если возможно, то что я не так делаю? Спасибо.
  5. Добрый день! Скажите пожалуйста, где можго почитать про обвязку ПЛИС Virtex-4? И еще: когда нужно и нужно ли на пользовательские выводы ставить конденсаторы?
×
×
  • Создать...