Скептик
Members-
Постов
324 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Весь контент Скептик
-
Заметил, что двухдиапазонный Wi-Fi усилитель EDUP нормально работает только при нагрузке на антенном порту согласованной не только в диапазоне рабочих частот (2.3-2.7 ГГц, 5.1-6 ГГц), а гораздо шире (100 МГц - 6 ГГЦ) . Т.е. с обычной антенной или с открытым входом усилитель самовозбуждается. Было выяснено, что проблема в отсутствии согласующего резистора на входе Приемного тракта диапазона 2.4 ГГц. Резистор был впаян, возбуд устранён. Ссылка на товар: https://sl.aliexpress.ru/p?key=Ifx1O1X Ссылка на проведённые мероприятия: https://disk.yandex.ru/d/6B7B1ccn_PNYXA
-
А вдруг нет? Не очень хочется перепаивать его снова.
-
Пришлось перепаять главный микроконтроллер в полётном контроллере pixhawk px4-pro v 4.3.9, а в нем нет бутлодера. Нашёл репозиторий на гитхабе, но там надо собирать в зависимости от версии платы. На официальном сайте такой платы нет, с такой версией платы другие. Кто может подсказать какая версия у меня реально? У меня такой: https://docs.px4.io/main/en/flight_controller/mro_pixhawk.html исходники бутлоадера в этом репозитарии https://github.com/PX4/PX4-Bootloader
-
Карманный спектроанализатор из китая SA6 весьма неплох, но работает 50/50. Провел посильный реверс инженеринг данного девайса с целью разобраться в причинах возможных неисправностей. Прошивка закрытая, взлому "с кандачка" не поддаётся. Всё остальное сделал как смог. Надеюсь, будет кому-нибудь полезно. Не судите строго рукожопа, не владеющего современными средами разработки и визуализации. Возможны ошибки. Ссылка на папку с моими наработками: https://disk.yandex.ru/d/Dlg76J3yIPsYzg
-
Спасибо. Пробовал, не помогло. да и в других проектах CPOL и CPHA такие. Полезу в дебагер.
-
Приветствую! Пытаюсь общаться с датчиком MPU9250 по SPI. Использую HAL. При обращении к SPI функции всё время возвращают статус HAL_BUSY. Смущает серый цвет Baub Rate. Подскажите, где копать.
-
Подскажите, как инициализировать SPI-интерфейс у MEMS-датчика MPU-9250. В документации сказано, что по умолчанию он находится под I2C-интерфейсом и что бы переключиться, надо изменить регистр. А та часть главы, на которую приводится ссылка, отсутствует. Note: To prevent switching into I2C mode when using SPI, the I2C interface should be disabled by setting the I2C_IF_DIS configuration bit. Setting this bit should be performed immediately after waiting for the time specified by the “Start-Up Time for Register Read/Write” in Section 6.3. For further information regarding the I2C_IF_DIS bit, please refer to the MPU-9250 Register Map and Register Descriptions document.
-
А вот код на 407vgt в вашем стиле, который запускает 20 2-х канальных преобразований ADC с использованием DMA и разрешает прерывание по завершении процесса преобразования. Обработчик прерывания и настройка вектора прерывания отсутствует. По документации на 407 и 411 даже адреса регистров по-моему одинаковые. Надеюсь чем-то помог. ADC_DMA.c
-
Проверил на своём stm32f407vgt, заработало. Нашёл 3 ошибки в предыдущем файле ADC_DMA.txt. Так что вот с исправленными ошибками: ADC_DMA.txt
-
Нашёл ошибку! При открытии файла указатель почему-то автоматически перемещается в конец. Видимо, такая фича FatFs. Как только попробовал записать в файл, запись произощла в конец. Ворспользовался функцией: f_lseek(&logFile, 0); Всё заработало. Даже стыдно, что до этого сразу не догадался. В старых библиотеках FatFs даже порядок аргументов разнится: в старой: f_write(&fil_obj,var,strlen(var),&ByteWrite); в новой: f_read(&logFile, &readBuff[0], 8, &bytesRead);
-
Старенький, конечно. У меня по-новее, но все равно спасибо, буду ковырять дальше (глубже).
-
Мне кажется, алгоритм должен быть примерно такой: ADC_DMA.txt
-
Очень плохо читаемый код. Непонятно, где настройки ADC. Сначала запускается DMA.
-
Осваиваю работу с SD картой 8Mb отформатированную в FAT32, 4096 байт/кластер, с одним файлом LOG.TXT. Использовал CubeIDE. Подключил SD карту по интерфейсу SDIO 1 bit. Проверил работу SDIO чтением секторов через функции HAL, нашёл файл LOG.TXT и его содержимое. Подключил библиотеку FatFs. Использовал функции: f_mount(&fs, "", 1); f_open(&logFile, "LOG.TXT", FA_OPEN_APPEND | FA_WRITE | FA_READ); f_read(&logFile, &readBuff[0], 4, &bytesRead); f_close(&logFile); Все функции возвращают уведомление об успешном выполнении (значение 00). Проблема: bytesRead ==0 (0 прочитанных байт), буффер readBuff[] пуст.
-
Новая проблема. Не совсем ассемблер, но тоже с ADC. Запускал ADC в режиме непрерывной конвертации для считывания 16-и значений в память с использованием DMA. Код генерировал в среде STM32CUBEide с использованием библиотеки HAL. Не работает. Считывается только первое значение и заполняет первый элемент массива. В трассировщике заметил, что неправильно выставляются регистры DMA. Выставил руками, заработало. Не пойму в чём ошибка, в самой библиотеке HAL, или в моём неправильном использовании её функций. Выдержку кода прилагаю. ADC_DMA.txt
-
Справился! Оказалось, что отладчиком его проверить нельзя, так как там всё происходит аппаратно и сразу. При установке времени выборки 3 такта программа не успевает считать результат и OVR устанавливается в 1. Увеличил время выборки до 15 цикло, заработало. Не нашёл в RM0090 что при установки OVR работа ADC останавливается. Спасибо, что помогли!
-
Проверил в отладчике. Он сразу устанавливается вместе с флагами STRT и EOC. После чтения из ADC_DR флаг EOC как положено, сбрасывается. Преобразование останавливается. Запуск ADC писал на C , устанавливая флаги командами типа *adc_cr2 |= 1<<30 /* SWSTART=1, (при EOCS,CONT,ADON=1) */, что бы не пропустить следующего преобразования.
-
Отладчик и прошивальщик там очень соблазнительные.
-
Прочитал. Как я понял, режим Continuous Conversion Mode исользуется только совместно с DMA. Отдельно невозможно?
-
Ну вы и расписались, господа. А дело было так. Я изучаю STM32 на примере F407VGT и одновременно практикуюсь на типовых примерах в среде STM32CUBEIDE. Один из типовых примеров работы с ADC не получился. Узнав, что в среде редко, но встречаются ошибки, решил проверить на ассемблере. Код выложил без надстроек для компактности, там, где ошибка. Сделал элементарную ошибку по невнимательности, глаза замылились и обнаружил её лишь на следующий день. Однако следующую проблему решить не смог, поэтому снова прошу помощи у искушённых корифеев. В настройках ADC есть параметр преобразования - односигнальное/непрерывное, управляемое флагом ADC_CONT. В многочисленных примерах приведен запуск ADC без прерывания и DMA в непрерывном режиме. У меня не получилось. CUBE-код осуществляет только одно преобразование, asm-код 2 преобразования. Потом последовательность заканчивается. Одна из ссылок на пример: http://mypractic.ru/urok-27-rabota-s-acp-cherez-registry-cmsis-osnovnye-rezhimy-preobrazovaniya.html подпункт "Один канал, непрерывное преобразование." Руководствовался RM0090. Если поможете, буду рад.
-
Прошу прощения, не понял пока почему, но заработало...
-
А так читается? main_ADC.txt
-
Пробую работать с ADC на ассемблере. Не получается. Программа виснет на 65-ой строчке. Не пойму, где ошибка. main_ADC.asm
-
CUBE32IDE как то шьёт. Первый раз надо перетыкать, а потом не надо.