Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 10.01.2021, 15:44  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 674
Сказал спасибо: 360
Сказали Спасибо 753 раз(а) в 358 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

sat_art, полностью согласен. Смысла нет, просто интересно было - насколько этот изврат прокатывает на F103 и F030.

UPD:
Тут еще один изврат нарисовался: STM8S103 (ну или 003) в такой конфигурации:
таймер генерирует тактовую для SPI slave, который толкает данные на WS28xx.
DMA нэт, данные для SPI берем в прерываниях, на 16MHz для 8 пикселов вывод занимает 2% времени.

Так недолго и до PIC10F200
Реклама:

Последний раз редактировалось j-Roger; 10.01.2021 в 15:54.
j-Roger вне форума  
Непрочитано 23.02.2021, 20:38  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Товарищи, а где стырить вменяемую реализацию работы с DHT22 на STM32F103 — без калокуба, на таймере с DMA (либо, на худой конец, на UART в полудуплексном режиме с DMA). Лень самому городить, когда столько людей этим пользуется…
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 13.03.2021, 14:07  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Новый вопрос: вожусь со светодиодной матрицей (поочередно соединены четыре матрицы 8х га MAX7219. И в мануале вообще не вижу прерывания SPI по окончанию передачи данных! Есть по TXE, но в это время передача еще идет. Данные передаю при помощи DMA, а MAX7219 требует сразу после последнего тактового импульса поднять ногу CS, чтобы захватить данные из буфера.
А еще у меня почему-то все данные, приходящие на вход, идут на выход, хотя последние 16 бит должны захватываться!

Как с этой хренью бороться нормальным способом? Чтобы не по-абдурински, используя блокирующие вызовы, а с помощью DMA и конечных автоматов?
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 13.03.2021, 14:54  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 401
Сказали Спасибо 2,216 раз(а) в 1,314 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Поднятие ноги CS должно происходить после загрузки всех матриц в линейке. И 7219 отличается от 7221 тем, что в 7219 - это не CS, а именно Load.
Поэтому привязывать это к концу каждой передачи SPI нет смысла. Можно передать по DMA полную строку, затем в прерывании по завершению ВЬФ-транзакции включить прерывание SPI RXNE и получить его по завершению передачи SPI
NewWriter вне форума  
Непрочитано 13.03.2021, 15:15  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

NewWriter, вот, что у меня получается на выходе первого модуля при передаче данных для двух:

Во-первых, первый MAX должен буферизовать первые 16 бит, а он выплевывает все, как есть. Во-вторых, ничего не происходит и на индикаторах темнота. (на наводки внимания не обращайте, у меня щупы дерьмовые).

А разве прерывание SPI RXNE произойдет, когда на входе ничего нет, да и SPI работает в режиме только на выход?
__________________
Смерть бандеровской мразоте!

Последний раз редактировалось eddy; 13.03.2021 в 15:17.
eddy вне форума  
Непрочитано 13.03.2021, 15:41  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

О, команды screen test при блокирующей передаче таки отправляются. Видимо, я где-то накосячил с передачей данных по DMA (хоть осциллограф показывает красоту)…

UPD: все завелось, всем спасибо!
https://github.com/eddyem/stm32sampl...MAX7219_screen
__________________
Смерть бандеровской мразоте!

Последний раз редактировалось eddy; 13.03.2021 в 16:54.
eddy вне форума  
Непрочитано 28.04.2021, 11:58  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Добрый день, подскажите, почему на выходах очень маленькая частота.
настраиваю stm32f103rb на 48МГц, в while переключаю вкл/выкл. частота всего 220кГц (64МГц-›290кГц)

Код:
  while (1)  {
		 HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0);
		 HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
Через таймер пробовал с 0 делителем и 1 отсчетом - там только 74кГц
sanstan вне форума  
Непрочитано 28.04.2021, 17:06  
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,671
Сказал спасибо: 130
Сказали Спасибо 1,074 раз(а) в 517 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Потому-что не нужно использовать HAL для высокоскоростных операций.
1) Проверь тактовую частоту. Точно не накосячил? Выведи её наружу на MCO вывод и измерь. Возможно ошибка в конфигурировании.
2) Инверсия вывода - крайне медленная операция, связанная с необходимостью чтения регистра, модификации и последующей записью. Да и еще HAL часто генерит сильно не оптимальный код. Проще писать по очереди 1 и 0 в порт. Сразу. А еще лучше ручками через регистры установки и сброса битов (BSRR и BRR). Только так можно максимум выжать.
DanilinSA вне форума  
Сказали "Спасибо" DanilinSA
sanstan (29.04.2021)
Непрочитано 29.04.2021, 07:32  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 401
Сказали Спасибо 2,216 раз(а) в 1,314 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от sanstan Посмотреть сообщение
с 0 делителем и 1 отсчетом - там только 74кГц
Если использовали программное переключение выхода через ф-цию ХАЛа, то она просто не успевала отработать со скоростью таймера. Посмотрите во внутрянку этой ф-ции - там овер-дофига текста написано.
И кстати, программное переключение с такой скоростью таймера будет вообще пропускать часть событий, ибо скорость таймера очень высока.
NewWriter вне форума  
Эти 2 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
sanstan (29.04.2021)
Непрочитано 21.05.2021, 11:51  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Интересный глюк вылез. Плата с STM32F103RBT6, кетайская, ессно.
В устройстве тикает RTC - там все Ок.
И в процессе доработок, как обычно, чего-то не хватило. На сей раз - BACKUP регистров. Цеплять что-то типа 25 серии ПЗУ или писать во FLASH категорически не хочется.
И тут вижу, что в RTC есть регистр ALARM... и по даташиту он сбрасывается только при общем сбросе BACKUP-а, при этом сбрасывается и счетчик RTC

... а у меня при сбросе CNT на месте, а ALRM становится 0xFFFF

Вот как так? Я где то ступил или чип кривой? Маркировка вроде STM...
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 11:55.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot