Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

coredumped писал(а):Вы, судя по Вашим же словам, до отладки еще не добрались (раз еще SysInit не написан).
Добрался, под отладчиком тесты всякие смотрю. Кстати, может Вы подскажете, все ли нормально в моем тексте инициализации тактирования? Спрашивал чуть раньше (http://radiokot.ru/forum/viewtopic.php? ... 3#p1878133), но местный "знаток" STM32 оказался балаболом.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Пардон, я пока не сильно разбираюсь в названиях камней...
Версия с мегабайтным флешем столько стоит...
Но даже 7 долларов с тремя каналами не решает проблемы. Нужно ШЕСТЬ.
Поэтому сама по себе цена ничего не решает 7 или 20....
Реклама
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

КРАМ писал(а):Вы наверно не делаете СЕРИЙНЫХ изделий....
Мне левота по три копейки не нужна...
Потом такая "экономия" вылазит сотнями долларов....
Ездили - знаем....
10000 изделий, например, это по Вашему не серийное производство? :))) Правда там камни STM32F051, но не в этом суть.
STM32F417 пока только 500 штук куплено (это мелкосерийное изделие).
Если брать хотя бы 1000 штук, уже цена будет меньше, чем заявлена на сайте ST, причем существенно.
Когда займетесь серийным производством, все узнаете.
А барыги имеют приличные скидки, а Вам рассказывают басни. Надо этих гандонов заставлять работать по нормальным ценам, либо посылать их... и брать напрямую у производителя. По крайней мере вести с ними (производителями) переговоры, а они потом Вам скажут через кого и по какой цене Вам будут поставки.
Все будет только лучше, в крайнем случае - хуже.
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

coredumped писал(а): Когда займетесь серийным производством, все узнаете.
:))) :))) :)))
Офф, конечно (не реклама!!!):
http://vimeo.com/78625864
Это в Серпухове. А есть еще в Москве, правда не такой красивый и чуть поменьше.
Вы когда нибудь брали "напрямую у производителя"? :)))
Тогда наверно знаете как звучит нах по английски? :wink:

По делу.
Три канала по любому мало. Даже за 7 долларов.
Последний раз редактировалось КРАМ Сб янв 04, 2014 22:36:30, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

КРАМ писал(а):Вы когда нибудь брали "напрямую у производителя"? :)))
Регулярно покупаем без посредников. Российскую фирму, скорее всего, пошлют, а если иметь представительство в ЮВА, то проблем никаких нет.
Все будет только лучше, в крайнем случае - хуже.
Реклама
Chettuser

Сообщение Chettuser »

Я STM32L151 давно щупал на отладке от STM. Даже побаловался и выкладывал на mycontroller.ru. Только тот сайтец загнулся по ряду причин. И всё равно для простых вещей возвращаюсь к тому, что попроще - PIC12 и PIC16. Вот и думаю - у меня есть самособранный PICkit 2, зачем я буду делать еще один под другие камни? Поэтому буду пока смотреть в сторону PIC24HJ и PIC32 (ох чую, щас лоток с кошачим калом в мою сторону полетит!). Тем более что сравнивать PIC32 и STM32 как бы неправильно - разные они.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

Щас Химера запьет икру шампанским :))) :))) :)))
А мне как-то пофиг... Каждый выбирает свой путь сам 8)
Все будет только лучше, в крайнем случае - хуже.
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

Леонид Иванович писал(а):Что там еще есть необходимое для начальной настройки контроллера? Я посмотрел и ничего такого не обнаружил. Или я не прав?
А у Вас уже проект заработал? Когда заработает, при чем так, как задумано, а не как получилось, тогда можно будет сказать, что все правильно.
Что же касается system_init, лично я считаю, что проще взять готовое и проверенное решение, предоставленное CMSIS, чем биться головой об клавиатуру. Лучше потратить силы на сам проект, чем на разборку стартапа. Я еще понял бы Вас, если бы Вы писали свою OS. В следующих камешках, заметьте, настройка клоков несколько сложнее, но есть экселевский файлик, который генерирует код за Вас. Не думаю, что Вы сможете сделать лучше.
Леонид Иванович писал(а):А сделаю так, как посчитаю нужным, и именно с помощью той информации, которую хочу получить в ответ.
Не понятно, какую Вы хотите информацию получить в ответ. Вы положили кусок какого-то кода, и просите ткнуть носом в ошибки. Причем неясно, чего Вы хотите добиться. Если хотите разобраться, то запускайте и отлаживайте. Или Вы хотите, чтоб мы разобрались за Вас? Укажите хоть исходные данные - кварц, внешний или внутренний генератор, желаемая тактовая частота.
Все будет только лучше, в крайнем случае - хуже.
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

Леонид Иванович писал(а):Нет, проект не заработал. Чтобы он заработал, мне предстоит разобраться с каждым битиком, а на это нужно уйма времени.
Чтоб заработал (в первом приближении) Ваш проект - времени нужно... приблизительно часа 2. При условии, что есть собранный прототип.
Леонид Иванович писал(а):Смущает то, что видел в сети много примеров, где для аналогичных целей проделывается гораздо больше записей во всякие регистры. Я хочу, чтобы специалист по STM32 глянул на этот код и сказал, достаточно ли его для включения тактирования. Возможно, я что-то не учел.
Возьмите файл system_stm32f10x.c из CMSIS - там есть все необходимые для запуска операции. Файлик написан специалистами. Он 100% работающий. Что Вам еще нужно?
Все будет только лучше, в крайнем случае - хуже.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

coredumped писал(а):Чтоб заработал (в первом приближении) Ваш проект - времени нужно... приблизительно часа 2. При условии, что есть собранный прототип.
Да, плата полностью собрана. Работаю над ней где-то 2 месяца, пока только мигаю светодиодом, и то мне не нравится текст работы с портами. Как Вы описываете порты I/O? Я хочу добиться того, чтобы описание соответствия сигнал-пин было в одном месте программы, а сменить порт и пин было делом одной строчки. Пока решил использовать для каждого пина шаблонный класс с перегруженными операторами присваивания. Память немного расходуется, зато очень наглядно. Что касается двух часов, то это шапкозакидательство, которое почему-то чаще всего позволяют себе адепты ARM. И почему-то они в основной массе хамы. Не знаете, почему?
Леонид Иванович писал(а):Возьмите файл system_stm32f10x.c из CMSIS - там есть все необходимые для запуска операции. Файлик написан специалистами. Он 100% работающий. Что Вам еще нужно?
Мне нужно разобраться. Здесь утверждалось, что там есть что-то нужное кроме настройки тактирования. Почитал документацию на STM32, посмотрел внутренности этого файла (которые выглядят полным кошмаром), ничего нужного не нашел. Что имелось в виду?
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

В этом файле, помимо настройки клоков, устанавливается таблица векторов прерываний, больше ничего.
Для быстрой смены пинов, удобно использовать макросы.

Вот, для примера (Cortex-M0):

Код: Выделить всё

#define PA_IN 	GPIOA->MODER = 0x002A0000
#define PA_OUT	GPIOA->MODER = 0x002A5555

#define IORD_PIN  	GPIO_Pin_10
#define IOWR_PIN  	GPIO_Pin_11

#define IORD_LO		GPIOB->BRR = IORD_PIN
#define IORD_HI		GPIOB->BSRR = IORD_PIN
#define IOWR_LO		GPIOB->BRR = IOWR_PIN
#define IOWR_HI		GPIOB->BSRR = IOWR_PIN

#define A0_PIN		GPIO_Pin_13
#define A1_PIN		GPIO_Pin_14
#define A2_PIN		GPIO_Pin_15
#define SET_ADDR_0 	GPIOB->BRR  = 0x0000E000
#define SET_ADDR_1 	GPIOB->BSRR = 0xC0002000
#define SET_ADDR_2 	GPIOB->BSRR = 0xA0004000
Все будет только лучше, в крайнем случае - хуже.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

coredumped писал(а):В этом файле, помимо настройки клоков, устанавливается таблица векторов прерываний
Таблица векторов прерываний находится в другом файле - startup_stm32f10x_md_vl.s. Но как это использовать? Например, сейчас я пишу класс Wake-порта, где нужно задействовать прерывания UART. Сделать обработчик прерывания методом класса, насколько я знаю, невозможно (так как любому методу неявно передается указатель this, а обработчик прерывания не может иметь параметров). Как лучше поступить в такой ситуации?
coredumped писал(а):Для быстрой смены пинов, удобно использовать макросы. Вот, для примера
Плохой пример. Магические числа, которые нужно вычислять в уме, очень много работы при переносе сигнала на другой пин и порт. Я хочу сделать, чтобы объявление пина выглядело так:

Код: Выделить всё

Gpio<PORTC, PIN9> Pin_Led; 
Pin_Led.mode(Mode::OUTPUT_2MHz);
А использование так:

Код: Выделить всё

Pin_Led = 1;
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

Леонид Иванович писал(а):Таблица векторов прерываний находится в другом файле - startup_stm32f10x_md_vl.s. Но как это использовать?
Обратите внимание на такой оператор
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
или его аналог
NVIC_SetVectorTable( NVIC_VectTab_FLASH, 0x0 );

Что же касается С++, то я противник применения этого монстра во встроенных системах, поэтому не применяю. Разбираться с особенностями написания ISR в плюсах Вам прийдется самому. Или погуглите на буржуйских форумах, там извращенцев хватает.
Все будет только лучше, в крайнем случае - хуже.
Chettuser

Сообщение Chettuser »

Подкину корм тролям: 32F429IDISCOVERY
Опытный кот
Аватара пользователя
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Сообщение coredumped »

Chettuser писал(а):Подкину корм тролям: 32F429IDISCOVERY
И фчём прикол? Очередная мормышка от ST. Очень правильная политика - делать девборды и продавать по цене почти равной себестоимости.
Я еще дарил бы эти платки ВУЗ-ам (может они так и делают?).
Все будет только лучше, в крайнем случае - хуже.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

coredumped писал(а):Обратите внимание на такой оператор SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
Спасибо, но это не совсем то. Переместить всю таблицу векторов нужно, например, при написании бутлодера, но сделать обработчик прерывания членом класса это не поможет.
coredumped писал(а):Что же касается С++, то я противник применения этого монстра во встроенных системах
Единственная радость от появления дешевых STM32 - это то, что для встроенных систем теперь тоже можно писать на C++. Лишняя производительность процессора и оверхед друг друга скомпенсируют. Структура программы, написанной на C++ намного красивее. Что касается оверхеда, то не так он велик, как про него обычно думают.
coredumped писал(а):Или погуглите на буржуйских форумах, там извращенцев хватает.
Почему извращенцев? Вот Вам самому не противно общаться в таком стиле?
HHIMERA писал(а):Верх идиотизма... никакой информации...
А у Вас верх хамства. Как это никакой информации? Сразу понятно, что на выводе светодиода устанавливается уровень логической единицы. При желании можно определить константы LED_ON, LED_OFF.
Контактная информация:
Chettuser

Сообщение Chettuser »

Там еще новинок много появилось. Они меняют железо на отладках - к чему бы это? Серии остаются те же M0, M3, M4.
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Chettuser писал(а): а с STM32 разбираться и дорогущие средства покупать - это невыгодно ИМХО
Зачем покупать - спаять можно тоже и проще чем Pickit2 и 3:
СпойлерИзображение
извините за кривую пайку, но работает
Вымогатель припоя
Аватара пользователя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Сообщение menzoda »

Леонид Иванович писал(а): Единственная радость от появления дешевых STM32 - это то, что для встроенных систем теперь тоже можно писать на C++. Лишняя производительность процессора и оверхед друг друга скомпенсируют. Структура программы, написанной на C++ намного красивее. Что касается оверхеда, то не так он велик, как про него обычно думают.
Да и до этого можно было писать на Си++, лишь бы компилятор поддерживал. Есть проектик, тоже на АРМ, но стареньком ARM7TDMI работающем на 50 МГц, так вот там несколько мегабайт отменного говно-кода на Си++, и ничего - работает. Так что считаю, что на оверхед плюсов обращать внимание вообще не стоит.

А вот в остальном Си++ терпеть не могу. По сравнению с простым и лаконичным Си (хотя, недавно мое отношение к нему пошатнулось), Си++ представляет собой какую-то свалку различных механизмов и подходов, как говорится пытаясь и рыбку съесть и на хер сесть. Хотя, я бы не отказался от чего-нибудь типа С# для embedded применения, только без слишком уж "сахарных" конструкций.
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

имхо, скорее всего за С++ для микроконтроллеров будущее - по аналогии с PC где сейчас никто практически не пишет на чистом Си (разве что драйвера и пр. системное). Периферия микроконтроллеров становится все сложнее - фирме производящей микроконтроллеры остается написать библиотеку классов под свое железо и толпы программистов-ардуинщиков заполонят... И только истинные джедаи будут юзать чистый Си.
p.s. это так - бредовые фантазии
на авр уже народ Си++ пользуется: https://sites.google.com/site/vanyambau ... eka-ve_avr
Ответить

Вернуться в «Разные вопросы по МК»