Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 новичку в ARM что к чему
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пн фев 24, 2020 22:25:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6098 ]     ... , , , 301, , , ,  
Автор Сообщение
В сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 14:27:37 
Друг Кота
Аватар пользователя

Карма: 78
Рейтинг сообщений: 839
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4232
Откуда: Минск
Рейтинг сообщения: 0
А теперь сделайте этот же коронный номер на C, пожалуйста.

Ну и интересно, каковы накладные расходы на хранение такого рода списка пинов. То, что они быстро работают, мы уже поняли, но интересно, сколько flash/ram памяти на них уходит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 14:30:46 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 164
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 988
Рейтинг сообщения: 0
Проверил скорость вех вариантов.
BSRR победил как всегда :))

У тебя задействованы не все оптимизации, если данные, WR и DC будут на одном порту, то для кода
Код:
void lcd_send_cmd(uint8_t cmd)
{
   LCD_DC_L;
   LCD_WR_L;
   GPIOB->BSRR = 0xff000000 | (cmd << 8);
   LCD_WR_H;
   LCD_DC_H;
}

uint8_t data = GPIOB->IDR;
lcd_send_cmd(data);

получим

Однако запись можно совместить и получить такой вариант:
Код:
using LCD_DC = PB5;
using LCD_WR = PB7;
using LCD_DATA = GpioB<0xFF00>;

void lcd_send_cmd(uint8_t cmd)
{
   PinList<LCD_DC, LCD_WR, LCD_DATA>::write(cmd);
   LCD_WR::set();
   LCD_DC::set();
}



Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 14:35:41 
Электрический кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1000
Рейтинг сообщения: 0
А теперь сделайте этот же коронный номер на C, пожалуйста.

Код:
*((volatile uint8_t *)&GPIOB->ODR +1) = (__RBIT(GPIOB->IDR)>>24);


Ну и интересно, каковы накладные расходы на хранение такого рода списка пинов. То, что они быстро работают, мы уже поняли, но интересно, сколько flash/ram памяти на них уходит.
Ноль целых, хрен десятых. Я же привёл листинг. Это ВСЁ!!! Они обрабатываются на этапе компиляции.


Последний раз редактировалось VladislavS Ср дек 18, 2019 15:19:47, всего редактировалось 1 раз.

Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
В сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 14:43:50 
Друг Кота
Аватар пользователя

Карма: 78
Рейтинг сообщений: 839
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4232
Откуда: Минск
Рейтинг сообщения: 0
А есть какой-нибудь репозиторий на github, чтобы взглянуть, как эти шаблоны реализованы?


Вернуться наверх
 
Вебинар: «На чём собрать AC/DC и DC/DC преобразователь? Интерфейсные модули RS485/CAN» (11.03.2020)

11 марта 2020 года компания КОМПЭЛ, совместно с MORNSUN приглашают вас принять участие в вебинаре, который посвящен компонентам для разработки AC/DC источников питания и DC/DC преобразователей, интерфейсным изолированным модулям RS485/CAN и их особенностям.

Зарегистрироваться>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 18:24:51 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 312
Откуда: Алчевск
Рейтинг сообщения: 0
2 Reflector
Я пишу на С и там с -O3 получается так
Код:
      136:     LCD_DC_L;
0x08000AF4 4A08      LDR      r2,[pc,#32]  ; @0x08000B18
0x08000AF6 F04F7180  MOV      r1,#0x1000000
0x08000AFA 6011      STR      r1,[r2,#0x00]
   137:                 LCD_WR_L;
0x08000AFC 104B      ASRS     r3,r1,#1
0x08000AFE 4907      LDR      r1,[pc,#28]  ; @0x08000B1C
0x08000B00 600B      STR      r3,[r1,#0x00]
   138:                 GPIOB->BSRR = 0xff000000 | (cmd<<8);
0x08000B02 F04F437F  MOV      r3,#0xFF000000
0x08000B06 EA432000  ORR      r0,r3,r0,LSL #8
0x08000B0A 6008      STR      r0,[r1,#0x00]
   139:     LCD_WR_H;
0x08000B0C 2080      MOVS     r0,#0x80
0x08000B0E 6008      STR      r0,[r1,#0x00]
   140:                 LCD_DC_H;
0x08000B10 0040      LSLS     r0,r0,#1
0x08000B12 6010      STR      r0,[r2,#0x00]

Как написать на С Ваше выражение?


Вернуться наверх
 
Новые литиевые ХИТы Fanso для экстремальных условий!

Когда работаешь в экстремальных условиях, к выбору электронных компонентов подходишь с особой тщательностью. Высокие температуры, большие перепады давления, труднодоступность – все это требует специальной продукции. Склад КОМПЭЛ пополнился новыми литиевыми ХИТами Fanso, стабильно работающими даже при температуре до 150 ºС.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 18:57:29 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 164
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 988
Рейтинг сообщения: 1
Как написать на С Ваше выражение?

Там по листингу видно, что вместо 0xFF00'0000 используется 0xFFA0'0000, т.е. дополнительно сбрасываются в 0 WR и DC. Будет одна запись в BSRR вместо трех.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 19:51:48 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 17
Зарегистрирован: Сб янв 28, 2006 22:47:24
Сообщений: 183
Рейтинг сообщения: 0
Какие страшные вещи вы тут обсуждаете, в теме для новичков. Аж мороз по коже...

У меня все проще, STM32F303BC стала не видна после случайной попытки изнасилования прошивкой для F103 из кейла дебагером ST-Link. Не видна не в утилите ST-Link, ни в IAR. При попытке приконнектится к микроконтроллеру вылезают сообщения об отсутствии целевого устройства. Это теперь навсегда или можно как-то исправить?

Попробовать через usart ее почистить? Но, вроде как для запуска загрузчика нужно ноги boot подтянуть и притянуть на плюс-минус питания? Reset обязательно нужно к чему-то подключить?

ПЫСЫ. До того МК определялся в утилите ST-Link как STM32F302/303. А после того как потыкался в него из кайла, космика и еще чего-то, пропал МК из виду. Есть еще микроконтроллеры, но перепаивать переходную плату, да потом снова запороть микроконтроллер очень не хотелось бы.

_________________
Астролябия-сама меряет, было бы что мерять!!!


Последний раз редактировалось Asmodey Ср дек 18, 2019 22:28:37, всего редактировалось 2 раз(а).

Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср дек 18, 2019 21:23:49 
Вымогатель припоя
Аватар пользователя

Карма: 9
Рейтинг сообщений: 145
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 666
Откуда: Караганда, Казахстан
Рейтинг сообщения: 1
Попробуй запустить с нажатым Ресетом. Код чужой прошивки, естественно, работает неправильно и, похоже, отключает что-то из отладочных средств, из-за чего ST-link перестает работать. Запуск с Ресета позволит запустить ST-link, не выполнив ни одного байта из кода чужой прошивки.

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
  Новые паяльные станции, паяльники ATTEN на складе в Москве!
  Паяльник ST-2065D1916 руб., станция паяльная ST-808190 руб.
  Посетителям форума скидка 15%!
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт дек 19, 2019 12:11:29 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 312
Откуда: Алчевск
Рейтинг сообщения: 0
Перенес ногу DC на порт В. Добавил линию задержки RCD для DC. Код сократился до
Код:

   136:                 GPIOB->BSRR = 0xff900000 | (cmd<<8);GPIOB->BSRR = 0x00000090;
0x08000AF4 4903      LDR      r1,[pc,#12]  ; @0x08000B04
0x08000AF6 EB012100  ADD      r1,r1,r0,LSL #8
0x08000AFA 4803      LDR      r0,[pc,#12]  ; @0x08000B08
0x08000AFC 6001      STR      r1,[r0,#0x00]
0x08000AFE 2190      MOVS     r1,#0x90
0x08000B00 6001      STR      r1,[r0,#0x00]

Получился самый быстрый код.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт дек 19, 2019 12:43:54 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 164
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 988
Рейтинг сообщения: 0
Получился самый быстрый код.

Значение DC скорее всего защелкивается вместе с данными по фронту WR, если DC и WR устанавливать одновременно, то мы опять возвращаемся к тому с чего начали, т.е. неопределенному поведению. Поменяется частота или длина проводов и уже может начать глючить, хотя весьма вероятно оно изредка глючит уже сейчас.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт дек 19, 2019 12:55:11 
Электрический кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1000
Рейтинг сообщения: 0
То есть, если что и задерживать, то как раз WR.

Зато как быстро глючит :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт дек 19, 2019 12:57:28 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 312
Откуда: Алчевск
Рейтинг сообщения: 0
DC устанавливается с задержкой 22 наносекунды от WR. Сбрасывается через 2. Визуально помех пока не обнаружил.Будут помехи - разделю установку.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт дек 19, 2019 13:03:09 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 164
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 988
Рейтинг сообщения: 0
DC устанавливается с задержкой 22 наносекунды от WR. Сбрасывается через 2. Визуально помех пока не обнаружил.Будут помехи - разделю установку.

Насколько совмещенная установка влияет на производительность учитывая, что в основном на дисплей передаются данные для которых дергать DC не нужно? Думаю разницы практически не будет. Например, выводим символ 8*12, это 192 байта данных цветов плюс 4 или 8 данных координат окна, итого 200 байт против 3 для работы с регистрами которые будут на треть медленнее. Заметное замедление будет наблюдаться только если задавать координаты для каждой выводимой точки, иначе разница должны быть меньше процента.


Последний раз редактировалось Reflector Чт дек 19, 2019 13:18:16, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт дек 19, 2019 13:14:40 
Электрический кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1000
Рейтинг сообщения: 0
Что-то тут не так. Надо первой командой устанавливать: WR=0, нужное значение DC и Data(Cmd). Второй командой ставить WR=1, а остальное пусть остаётся старое. Так без всяких линий задержки должно работать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт дек 19, 2019 13:27:13 
Держит паяльник хвостом

Карма: 15
Рейтинг сообщений: 164
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 988
Рейтинг сообщения: 0
Что-то тут не так. Надо первой командой устанавливать: WR=0, нужное значение DC и Data(Cmd). Второй командой ставить WR=1, а остальное пусть остаётся старое. Так без всяких линий задержки должно работать.

Кстати да, по скорости так действительно лучше будет, главное потом не забыть сбросить DC если захочется передавать данные при помощи DMA :)

ps. Но у себя так не буду делать, потому что не использую F1 и быстрее будет писать только данные в половинку порта, а DC сбрасывать при значительно более редких обращениях к регистрам дисплея.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт янв 02, 2020 17:11:51 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 17
Зарегистрирован: Сб янв 28, 2006 22:47:24
Сообщений: 183
Рейтинг сообщения: 0
Попробуй запустить с нажатым Ресетом. Код чужой прошивки, естественно, работает неправильно и, похоже, отключает что-то из отладочных средств, из-за чего ST-link перестает работать. Запуск с Ресета позволит запустить ST-link, не выполнив ни одного байта из кода чужой прошивки.

Только сейчас дошли руки до макетки с этим МК. Замутил ресет, МК тут же определился, стерся и зашился по новой правильной прошивкой. afz, спасибо. Нужно ST-Link_ом с линией NRST для STM32 обзавестись.

_________________
Астролябия-сама меряет, было бы что мерять!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт янв 02, 2020 20:01:37 
Вымогатель припоя
Аватар пользователя

Карма: 9
Рейтинг сообщений: 145
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 666
Откуда: Караганда, Казахстан
Рейтинг сообщения: 1
Asmodey, вот так можно доработать обычный китайский ST-link. Там, правда, предлагают отсоединять "лишние" (продублированные) ноги +3.3 и +5В, а я, по-простому, откинул ноги для STM8 (как бы не те, которые автор этого материала использовал первоначально). И еще момент. Совсем тонкий МГТФ (там у него, как бы, не МГТФ 0.03) сейчас хрен найдешь, я, по-простому, воспользовался обычным обмоточным проводом в эмалевой изоляции - мне попался под руку ПЭТВ-F 0.2, но это, сам понимаешь, некритично. Дополнительный плюс - МГТФ - многожилка, которая норовит разползтись при пайке на вывод SMD-компонента, а обмоточный провод сплошной...

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт янв 02, 2020 20:13:35 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 17
Зарегистрирован: Сб янв 28, 2006 22:47:24
Сообщений: 183
Рейтинг сообщения: 0
Да, так и думаю сделать. Нужно только еще пару свистков заказать, а то этот единственный пока и ковыряя его рискую остаться без отладчика. Еще есть J-Link, но у меня с ним не сложилось пока. Просто времени не было разбираться с джейлинком.

Еще вот что. Когда только "запорол" МК в поисках по гуглу наткнулся на инфу, что STM32 имеют два уровня защиты от считывания прошивки. Если я правильно понял, то защита второго уровня лочит микроконтроллер наглухо и запрещает даже стирание и перепрошивку, превращая его в одноразово программируемое устройство. Это так?

_________________
Астролябия-сама меряет, было бы что мерять!!!


Последний раз редактировалось Asmodey Чт янв 02, 2020 20:24:07, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт янв 02, 2020 20:23:25 
Вымогатель припоя
Аватар пользователя

Карма: 9
Рейтинг сообщений: 145
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 666
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0
А я тебе сразу говорил, заказывай, хотя бы, пару. :)

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт янв 02, 2020 20:25:55 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 17
Зарегистрирован: Сб янв 28, 2006 22:47:24
Сообщений: 183
Рейтинг сообщения: 0
Да у меня так получилось, что сразу на нехилую сумму всего заказал. И все равно запланированного бюджета на все не хватало, пришлось урезать свои хотелки в пользу самого необходимого. Вот и второй свисток урезался...

_________________
Астролябия-сама меряет, было бы что мерять!!!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6098 ]     ... , , , 301, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y