Search the Community
Showing results for tags 'stm32f103'.
-
Приветствую, друзья! Передо мной стоит задача: подключить камень stm32f103c8t6 по SPI через MAX7219 к семисегментнику. Подключал по схеме: Выясняется, что у меня ничего не работает. Понять почему я, увы, не могу. Функции инициализации SPI и отправки данных: Чтобы понять проблему, я подключил логический анализатор ко всем трем выводам(MOSI, SCK, SS): Исходя из даташита на MAX7219, она принимает данные после того, как будут отправлены 2 байта и поднята ножка SS. На фотографии с анализатора становится понятно, что SS дергается после того, как абсолютно все данные уйдут. В чем проблема, с чем это связано - я не могу понять. Пробовал добавить задержку в функции отправки, подумав, что, может быть, мой анализатор не фиксирует их. На что я получил ошибки в отправляемых данных: Не понимаю, что я сделал не так... Буду очень рад, если Вы подскажете! Заранее большое спасибо!
-
FT232RL Низкий уровень на TX
Cianid posted a topic in В помощь начинающему
Добрый день!. У меня связка Stm32+FT232. Когда кидаю данные с контроллера в COM-порт, все отлично работает, в терминале данные вижу. Но обратно, не работает. Что я увидел: на выходе TX FT232 нет 3.3В, когда данные отсутствуют. Вместо этого сигнал около 50мВ. При этом, светодиод на CBUS0, индицирующий прием моргает, пачки данных наблюдаю. Когда TX висит в воздухе уровень - 3.3В. Подключение FT232: VCC-5В от USB Bus, VCCIO от 3V3OUT, клок - внутренний. Вход RX на STM32 стандартный - входной режим с подтяжкой. В общем вопрос, почему FT232 не вытягивает нагрузку? -
Можно ли автоматизировать тестирование платы не на уровне модульных тестов, а на уровне функционала? В предыдущей статье этой серии было рассказано о различных способах создания и использования многократно используемой среды для разработки на примере создания шаблонной прошивки для STM32F103. Сейчас будет рассказано, как настроить автоматизированное тестирование готового устройства в конвейере разработки после сборки прошивки. Читать статью
-
Глюк 1: Мне тут нужно было в одном относительно старом проекте, который делался на 4-м Кейле, поменять некоторые дефолтные настройки. К I2C оно не относится, но глюк я поймал именно с I2C! Сейчас на компе только 5-й, 4-го нет. Проц - тот-же F103, к нему по I2C подключена 24LC16. Запускаю под дебаггером (JLink-Lite подключен, причем настоящий) - ничего не работает, бне входя в деббагер (но с подключенный JLinkом) - все прекрасно работает. Отставил старую программу, набросал в калокубе с халом только работу с I2C и епромкой - абсолютно тоже самое! Под дебаггаром все функции I2C выходят по таймауту, с еепромки читабтся нули и в нее ничего не пишется. Без входа в дебаггер - все ОК. WTF?! Глюк 2: это коллега тут возится с девайсом на STM32L452 и жалуется. Просил спросить: Для тактирования используется MSI + PLL. I2C настроен на 400кгц, тактируется от системного клока. На одной плате, запускаешь под дебаггером - есть 400кгц. Включаешь ее без дебаггера - там около 40кгц. Из 5-ти плат, так ведет себя одна, 4 другие в - вообще кто в лес, кто по дрова. ТЕперь самое интересное - для проверки "на какой- частоте проц работате," вывели махание ножкой в систике - так там четко, 1мс. Есть идеи?
-
Здравствуйте! По ряду причин хочу реализовать фильтр Винера на F103ZE, с точки зрения реализации мне показалось не сложным (АЦП -> ПРЕОБРАЗОВАНИЕ -> ЦАП). Но проблема возникла уже в самом начале не могу вывести входной массив из АЦП в ЦАП (т.е. подать на АЦП какой либо периодический сигнал и снять его с ЦАП). Как я наивно полагал хватит такого кода: HAL_TIM_Base_Start_IT(&htim6); uint16_t ADC_BUF[64]; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_ADC_Start_DMA(&hadc1,(uint32_t*) &ADC_BUF,64); HAL_DAC_Start_DMA(&hdac, DAC_CHANNEL_1,(uint32_t*)ADC_BUF,64, DAC_ALIGN_12B_R); } Но чего-то вразумительного с ЦАП вывести не удалось. Прошу помощи в этой задаче, готов заплатить за подробную консультацию.
- 7 replies
-
- stm32f103
- stm32f103 фильтр винера
-
(and 1 more)
Tagged with:
-
Здравствуйте, столкнулся с такой проблемой: имеется устройство на мк stm32f103, работающее с microSD картой по spi. Так вот со старыми microSD картами(2gb) все работало отлично, но они закончились. Купили новые(тоже на 2gb), а они пишут через раз, и регистр CID с карточки не считывается. Бегло пробежал по спецификациям на карты(старой и новой), никаких различий не увидел. Может кто-нибудь сталкивался с подобной проблемой? Заранее спасибо.
- 3 replies
-
- stm32f103
- stm32f103 microsd
-
(and 1 more)
Tagged with:
-
Господа, я понимаю, что причину моей проблемы вы не найдете, но может быть подскажете, как искать ошибку. А может быть и констатируете, что это не ошибка, а глюк отладчика... Суть такова. Контроллер STM32F103, в нем включен USART. В обработчике прерывания по приему заполняется буфер, объявленный как uint8_t rx_buffer[50]; Буфер кольцевой. Работаю с KEIL. Отлаживаю по SWD, в окно watch я добавил rx_buffer. Проблема в чем - в эту переменную, согласно уведомлениям отладчика, периодически в случайные позиции на мгновение вместо 0x00 записывается 0xFF или 0xAA. При этом единственное место в программе, где в эту переменную что-то пишется - это обработка прерывания по приему, я ставил брейкпоинт на эту единственную строку - не срабатывает. Потому как я для чистоты эксперимента вообще отключил источник данных. Я закомментировал практически всю программу main() { while(1) { LCD_DrawFill(0,0,30,30,BLACK); } } Выяснилось, что глюк появляется когда присутствует именно эта строка. ну и анализ и комментирование строк в этой функции привели к тому, что глюк вызывается при записи в регистр данных SPI3. Я бы обозначил эту проблему, как конфликт SPI и RAM если бы не два "но". 1. В SPI ведется запись еще несколькими функциями, но проблема возникает только в одной из них. 2. Я написал кусок кода, который в цикле проверяет каждый элемент rx_buffer на предмет отличия его от изначального 0x00 и поставил на нем брейкпоинт. Понимая, что проверка и кратковременное изменение буфера могут не совпасть по времени, я запустил программу на ночь, по моим прикидкам буфер должен был быть проверен около 3 миллионов раз. Ни разу програма не засекла вмешательство в буфер. Похожие глюки, с записыванием данных не в те переменные у меня была как-то, когда я объявил безразмерный массив ( uint8_t XXX[]; ) Но в данном случае ничего такого у меня нет. Скажите, возможно ли что отладчик брешет? Как используя средства отдладки KEIL подловить момент записи в переменную и определить кто на нее посягает?
- 19 replies
-
- stm32f103
- stm32f103 ram spi
-
(and 2 more)
Tagged with:
-
Есть необходимость обмена строками по USB между STM32F103 и ПК. Поднимается HID устройство. Кто что посоветует. Может кто то сталкивался. Побитовый обмен работает на ура но при объявлении в REPORT более длинного массима скажем 63 байта ничего не получается. Смотрел разную документацию - пишут для лампочек, кнопок. В мыше есть поля смещения по осям. где LOGICAL_MAXIMUM = 255 попытался прописать под мышь с массивом таких данных (63). Ни как. В общем совсем запутался. ПОЖАЛУЙСТА укажите куда и что. СПАСИБО!!!
-
Здравствуйте. Вопрос наверно стар но конкретного ответа так я и не нашел. КАКОЙ метод (прерывание или DMA)нужно использовать при работе с STM32F103 по шине I2C с несколькими устройствами. Примеры попадающиеся на просторах в основном проверка в цикле с тайм-аутом (как по мне не очень красиво). Устройства всегда слейв. При этом: одно память чтение/запись не постоянная, второе датчик опрос постоянный. Кроме этого используется АЦП(где тоже соответственно опрос постоянный, сдесь DMA), USART(DMA) и SPI Ethernet(планируется DMA). СПАСИБО ЗА СОВЕТ!!!