Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/70: Рейтинг темы: голосов - 70, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
1

stm32f10x и saleae logic

10.08.2014, 13:55. Показов 14402. Ответов 38
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Приобрел не так давно на просторах китайского интернета Saleae Logic Analyzer для, скажем так, полноты ощущений при погружении в мир микроконтроллеров )

Фото девайса (~ 1,5M)

Хотел сначала попробовать его на SPI интерфейсе, но решил сначала подключить что попроще

Для опытов была задействована простая программа, которая раз в 500ms включает/выключает светодиод

Смотрел на анализатор во время работы функции

Код
void LED_BLINK() {
LED_ON();
Delay(500);
LED_OFF();
Delay(500);
}
Визуально я вижу что МК производит с пином 2 действия в секунду (включает/гасит светодиод), то есть все работает так как должно, однако на анализаторе я вижу такую картинку:


<Изображение удалено>

Не понимаю почему анализатор показывает смену состояний не каждые 500мс?
Я не так настроил софт или еще чего не понимаю?
Помогите, пожалуйста, разобраться

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2014, 13:55
Ответы с готовыми решениями:

Восстановление клона Saleae Logic 16
Добрый день! Прошу оказать помощь в оживлении клона Saleae Logic 16. Немного предистории: заказал...

Китайский Saleae Logic (на Cypress) в Linux
Имеется китайский логический анализатор (на вид такой). Установил с офсайта софт Saleae. Включаю --...

Logic от Saleae - как сделать вывод в ASCII ?
Верчу в руках логический анализатор, клон Saleae, любезно одолженный мне товарищем DrVtos. ...

3V logic --> 6v logic 20Mhz 5mA x4
Привет всем. Нужен преобразователь уровней напряжения логики из трех вольтовой (плис). В 6...

перестал работать клон saleae
днём работал. вечером включаю, привычно запускаю софт, жамкую кнопку старт и удивляюсь красоте -...

38
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
11.08.2014, 13:10 21
Author24 — интернет-сервис помощи студентам
Да, но функция GPIO_Init выполняет установку параметров только тех выводов, которые задаются битовой маской GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;. Остальные не модифицируются.
Для входа скорость указывать не надо.
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
11.08.2014, 14:01 22
Цитата Сообщение от DOOMSDOY
Да, но функция GPIO_Init выполняет установку параметров только тех выводов, которые задаются битовой маской GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;. Остальные не модифицируются.
Для входа скорость указывать не надо.
Все понял, спасибо!
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
14.08.2014, 15:44 23
Раз уж зашла речь о тактировании....

Видимо, я снова что-то не понимаю

в system_stm32f10x.c стоит
Код
#define SYSCLK_FREQ_72MHz  72000000
Но при выполнении кода:
Код
  uint32_t q;
uint8_t a;
RCC_GetClocksFreq(&RCC_Clocks);
q = RCC_Clocks.SYSCLK_Frequency;

a = RCC_GetSYSCLKSource();

SysTick_Config(72);
RCC_GetClocksFreq(&RCC_Clocks);
q = RCC_Clocks.SYSCLK_Frequency;

a = RCC_GetSYSCLKSource();
в дебаггере я вижу что:
GetSYSCLKSource выставлен в PLL (что вроде так и должно быть)
а RCC_Clocks.SYSCLK_Frequency = 648000000

Как тут получаются 648 мегагерц? оО
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
14.08.2014, 16:16 24
А что при этом показывает .HCLK_Frequency - 72МГц?

Цитата Сообщение от korosyo
SysTick_Config(72);
И, кстати, не на тему PLL: обычно параметр функции SysTick_Config() задают в тиках процессора - например, 72000 (или более корректно: SystemCoreClock/1000). А 72 тика - это жесть.

Или у Вас этот код какую-то разовую микрозадержку делает, в режиме поллинга, без SysTick-прерывания?
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
14.08.2014, 16:30 25
Цитата Сообщение от OtyxPM
Цитата Сообщение от korosyo
SysTick_Config(72);
Кстати, не на тему PLL: обычно параметр функции SysTick_Config() задают в тиках процессора - например, 72000 (или более корректно: SystemCoreClock/1000). А 72 тика - это жесть.

Или у Вас этот код какую-то разовую микрозадержку делает, в режиме поллинга, без SysTick-прерывания?

Мне нужна задержка в 10 наносекунд для дерганья RST ножки SPI интерфейса для инициализации Nokyo 3310 LCD
И на плате stm32-h103 от от olimex это работает - дисплей отображает то что я ему говорю

Сейчас хочу перенести код на китайскую плату с китайским же дисплеем
И сталкнулся с зависаниями процессора при инициализации....

Хотя плату от олимекса хотел завести с тактовой частотой в 24 Мгц - проц вис в момент
Код
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
Заработал только на частоте 72МГц

UPD: .HCLK_Frequency показывает те же 648000000, что тоже странно - не пойму откуда он их берет
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
14.08.2014, 16:39 26
Цитата Сообщение от korosyo
Мне нужна задержка в 10 наносекунд для дерганья RST ножки SPI интерфейса для инициализации Nokyo 3310 LCD
Это из пушки по воробьям. Обычно для таких целей не делают спецсупернанозадержку :-) , а применяют стандартную 1 мсек, дисплей точно так же согласится ресетнуться. Или Вам ждать целую миллисекунду невыносимо долго? :-)

Так что насчёт .HCLK_Frequency ?
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
14.08.2014, 19:17 27
Нет, не долго - попробую поменять )

.HCLK_Frequency показывает те же 648000000, что тоже странно - не пойму откуда он их берет
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
14.08.2014, 19:23 28
А если поставить
Код
#define SYSCLK_FREQ_24MHz  24000000
вместо
Код
#define SYSCLK_FREQ_72MHz  72000000
То эти переменные становятся 216000000
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
15.08.2014, 02:19 29
По совету пользователя sitimur в теме выше, вывел на PA8 MCO, результаты тоже странные получились....
При выводе на МСО сигнала RCC_MCO_SYSCLK получаю частоту 8МГц с вот такими разрывами

При выводе HSE получаю те же 8МГц и тоже с разрывами

Ну и на последок RCC_MCO_PLLCLK_Div2

Теперь я совсем запутался, на какой частоте сейчас работает проц? оО
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
15.08.2014, 14:24 30
Не понятно что за разрывы...разве кварц не должен выдавать постоянную частоту?
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 222
15.08.2014, 14:31 31
Цитата Сообщение от korosyo
Не понятно что за разрывы...разве кварц не должен выдавать постоянную частоту?
Этот фефект в начале ЗАПИСИ может быть связан с буферизацией Wymdows самого saleae logic по USB на жёстком диске
Варианты проб:
Подключи щупы к выключенному контроллеру
запусти запись
включи питание контроллера
....
0
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
15.08.2014, 14:34 32
Частоту сэмплирования в выпадающем списке вверху слева поставьте побольше!!
У Вас там сейчас 16 MHz, как Вы ими тактовую мерить собрались...
Если анализатор не хочет работать на большей. то надо взть хороший USB кабель и желательно подключать в ЮСБ-порты, которые впаяны прямо в материнку.
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
15.08.2014, 15:05 33
У меня ноутбук, так что все порты впаяны в материнку. Больше 16МГц ставить не дает. Попробую на работе на стационаре в понедельник.

А почему HCLK_Frequency может показывать 648000000 при выставленных 72000000?
0
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
15.08.2014, 15:46 34
Не знаю почему. Сейчас нет времени копаться в этом и смотреть почему так может быть.
Больше 16МГц ставить не дает.
Найдите более качественный/короткий кабель. У меня с копеечными кабелями оно тоже скорость постоянно сбрасывает. Тут надо пробовать разные. Ну и на вашем месте, с таким анализатором, я бы не поскупился и взял кабель подороже. Для того, чтобы выхать максимум скорости (100 МГц) надо действительно хороший кабель и не каждый ноут это сможет.

По поводу частоты, если обьяснять максимально просто: у вас уровень на линии меняется с частотой, к примеру, 48 милиионов раз в секунду (при тактовой частоте в 24 МГц), а анализатор опрашивает линию 16 миллионов раз в секунду. В итоге анализатор не может восстановить частоту исходного сигнала просто потому, что между двумя соседними измерениями уровень на линии успевает поменяться несколько раз.
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
15.08.2014, 23:00 35
Разобрался.
Эклипс при создании проекта ставит частоту внешнего кварца 32Мгц
Если ему сказать что мы имеем кварц на 8МГц то все становится ОК.

Осталось понять где в конфиге он запрятал эту цифру что бы не пересоздавать проект
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 4
16.08.2014, 00:56 36
Цитата Сообщение от korosyo
Разобрался.
Эклипс при создании проекта ставит частоту внешнего кварца 32Мгц
Если ему сказать что мы имеем кварц на 8МГц то все становится ОК.
Скажите, пожалуйста, а Вы для работы в/с istypsi-ом какие-то дополнительные plugin-ы устанавливали? Я работаю с "ванильным" эклипсом, и ему абсолютно фиолетово, на какой тактовой частоте шуршит тот или иной проц (F1, F3, F4, L1). Всё определяется дефайнами.
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
16.08.2014, 02:18 37
Использую GNU ARM Eclipce Plugin
Самому-то ему фиолетово, но при создании проекта он пихает флаг к сборке -DHSE_VOTUE
Пока используется HSI все ок, а когда на плате появляется HSE то нужно что бы этот параметр был равен частоте используемого кварца в Гц
0
0 / 0 / 0
Регистрация: 07.08.2014
Сообщений: 25
16.08.2014, 03:49 38
Только сейчас обратил внимание, что вы написали L1...
Вы в какой ОС работаете?
Никак не могу найти ld файл для L1 для GCC...
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 50
21.08.2014, 12:46 39
Цитата Сообщение от korosyo
У меня ноутбук, так что все порты впаяны в материнку. Больше 16МГц ставить не дает. Попробую на работе на стационаре в понедельник.

А почему HCLK_Frequency может показывать 648000000 при выставленных 72000000?
Надо уменьшить в настройка количество каналов , при 3х 100MHZ , при 5 50MHZ и так далее.
0
21.08.2014, 12:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2014, 12:46
Помогаю со студенческими работами здесь

как посчитать количество импульсов в saleae?
может, кто сталкивался с подобной задачей? импульсы с меняющимся периодом/частотой - нужно...

Modbus RTU на STM32F10x
Доброго времени суток. Столкнулся с задачей реализации Modbus на STM32f100C4T6B. До этого момента...

таймер и PWM на STM32F10x
В целях развлечения купил как-то парочку сервоприводов с дилэкстрима (Tower Pro SG90) и сейчас,...

Наличие DAC в STM32F10X.
Добрый день! Не могу понять, в каких STM32F10X есть DAC, а в каких нету. В разных документах...

Saleae есть ли версия софта со сканированием в реальном в.?
или точнее режим постоянного кольцевого сканирования Как-то утомляет постоянно кнопку нажимать ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru