Easyelectronics.ru

Электроника для всех
Текущее время: 17 окт 2019, 13:10

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 03:29 
Заглядывает иногда

Зарегистрирован: 14 май 2017, 19:45
Сообщения: 64
Предел возможностей stm8


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 03:36 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4339
Откуда: Кемеровская область, Киселевск
Не согласен пока, конкретный параметр уточните в чем STM8 упрется в возможностях. Тогда можно будет более конструктивно говорить о возможностях этой серии.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 03:44 
Заглядывает иногда

Зарегистрирован: 14 май 2017, 19:45
Сообщения: 64
Конкретно в скорости обновления картинки. Если будет больше разрешение и глубина цвета всю картинку будет долго обновлять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 03:55 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4339
Откуда: Кемеровская область, Киселевск
Ну это будет зависеть от реализации, необязательно весь экран постоянно обновлять.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 04:40 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1765
Вот люди используют
https://www.numworks.com/resources/engi ... cture/ion/
можете посмотреть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 10:18 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3999
Откуда: КЧР, поселок Нижний Архыз
Reflector писал(а):
Как подключать будешь?

К STM32F0. Ногодрыгом через DMA.
DbIHbIC писал(а):
всю картинку будет долго обновлять.

сотня миллисекунд — не долго! Тем более, целиком картинка обновляется только при полной смене меню, а это бывает редко, да и как-то глаз не цепляется к морганию, когда все равно менюшка целиком изменяется!
Все остальные манипуляции проводятся лишь с частью изображения.
Ну, да ладно: я все равно хоть и купил 3 разных экранчика, еще ни один не осилил подключить (2, правда, так и не пробовал еще; из оставшихся двух оба не работали — либо китайцы криво напаяли, либо брак).
DbIHbIC писал(а):
Предел возможностей stm8

Для STM8 за глаза хватит такого экранчика! SPI, если что.
И да, цветные TFT тоже можно через SPI подключать. И вместо буфера в оперативе использовать память экрана. Да, видео не погоняешь, но для меню возможностей STM8 хватит, чтобы ничего не мыргало.

И еще: гемор с USB не стоит того, чтобы вместо 0xx лепить 1xx! Проще ch340 прифигачить с тремя кондерами и одним кварцем. Зато на МК кварц не нужен.
Но если пару недель потратить, и разобраться с USB, то на STM32F042 можно развернуть. И не понадобится ни ch340, ни кварца.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 13:17 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1015
Eddy_Em писал(а):
К STM32F0. Ногодрыгом через DMA.

Один порт займут данные, еще нужна минимум 1 нога для WR, а лучше еще и для RS, получается DMA будет гнать данные сразу в 2 порта?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 14:05 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3999
Откуда: КЧР, поселок Нижний Архыз
Не займут данные 1 порт, шина-то восьмибитная!
Если же реально нужна скорость, то и микроконтроллер выбирают подороже — как минимум F4xx с FSMC!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 14:22 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1015
Eddy_Em писал(а):
Не займут данные 1 порт, шина-то восьмибитная!

Я конкретно указал, что она 16-ти битная.

Цитата:
Если же реально нужна скорость, то и микроконтроллер выбирают подороже — как минимум F4xx с FSMC!

F4 с FSMC в 2 раза дороже F1 с FSMC, а этот F1 будет раза в 3-4 быстрее F0 с ногодрыгом через DMA, даже если считать только саму передачу, а для DMA ведь еще нужно данные подготовить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 15:30 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3999
Откуда: КЧР, поселок Нижний Архыз
Цитата:
F4 с FSMC в 2 раза дороже F1 с FSMC

Если нужна такая бешеная скорость, явно собираются видео показывать. А для видео STM32F1 ну никак не подходит!
В общем, надуманная проблема.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 22 янв 2018, 19:15 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1765
Reflector писал(а):
В общем, надуманная проблема.

Проблема надумана ещё с первого поста.
Просто когда время есть - что бы и не поклацать кнопками.
Раньше с семечками на завалинке сидели (или с пивом если деньги были).
Сейчас - в форуме.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 26 янв 2018, 19:55 
Старожил
Аватара пользователя

Зарегистрирован: 19 фев 2015, 17:37
Сообщения: 1524
Откуда: void
Этап третий (АЦП)

Пришло время заняться аналоговыми измерениями и на очереди функция analogRead и её эквивалент для платформы Discoduino. Забегая вперед, тут все прошло достаточно просто, хотя и есть несколько существенных отличий. Сперва пробежимся по коду от Arduino.

Show

Как видно, в самом начале тут много магических чисел при вычислении конечного значения вывода, что есть конечно нехорошо. Можно догадаться, что аналоговые контакты расположены в системе отсчета Arduino сразу за цифровыми с соответствующими номерами.

Код:
#define PIN_A0   (14)
#define PIN_A1   (15)
#define PIN_A2   (16)
#define PIN_A3   (17)
#define PIN_A4   (18)
#define PIN_A5   (19)
#define PIN_A6   (20)
#define PIN_A7   (21)

static const uint8_t A0 = PIN_A0;
static const uint8_t A1 = PIN_A1;
static const uint8_t A2 = PIN_A2;
static const uint8_t A3 = PIN_A3;
static const uint8_t A4 = PIN_A4;
static const uint8_t A5 = PIN_A5;
static const uint8_t A6 = PIN_A6;
static const uint8_t A7 = PIN_A7;

Всего контактов шесть (на самом деле, у микросхемы Atmega 328P до восьми каналов АЦП, но в корпусе DIP-28 выведены на два меньше, чем на полноценной TQFP версии, поэтому аналоговых входов у всех Arduino плат расширения только шесть). Номер вывода приводится к числу из диапазона [0...5], чтобы можно было без проблем записать в регистр. И сразу же запускается измерение! А как же настройка АЦП? Если обратиться к даташиту, то для начала работы нужно как минимум включить его в Power Reduction Register. Не говоря уже о том, чтобы выставить бит ADEN в регистре ADCSRA. Это приводит к мысли, что настройка АЦП выделена в отдельный блок в какой-то функции инициализации и, выходит, обязательна для любых скетчей на платформе Arduino, независимо от того, используют они функции АЦП в своем коде или нет. С одной стороны, очевидно, пользователям приходится платить за то, что они не используют, с другой стороны, так достигается прозрачность использования — всего одна функция для всех возможных применений. Такую особенность крайне желательно сохранить.

Перейдем к портированию на STM32. Как известно, у микросхем из числа производительных серий (к которым и относится, собственно, F4) на борту куча всякой периферии, в том числе до трех АЦП. Самый неприятный момент, с которым я мог бы столкнутся, заключался в том, что контакты от разъема Arduino платы расширения были выведены на каналы нескольких отдельных АЦП и пришлось бы внутри одной функции сразу следить за множеством вводных (порт, номер вывода, номер канала, номер АЦП) . Но, к счастью, после изучения принципиальной схемы платы и даташита на микросхему, оказалось, что можно ограничиться одним (первым) АЦП. Это несколько упрощало дело. Инициализацию АЦП я вынес в отдельный кусок кода и поместил во вспомогательную функцию, которая вызывается при самом первом обращении к analogRead. По окончании работы этой функции получаем указатель на уже настроенную структуру для АЦП. Аналогичным способом конфигурируются сами контакты, только тогда, когда в них реально возникает надобность. Для этого есть функция analogPinMode и массив из статических битовых переменных. Параметры АЦП для измерений я постарался подобрать средние, чтобы отражали общую температуру по больнице, так сказать. Реализация всего остального оказалась похожа на первый этап, так что тут даже говорить особо не о чем.

Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 26 янв 2018, 21:50 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5690
И стоило ради подобного уходить с ардуньи?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Discoduino
СообщениеДобавлено: 26 янв 2018, 22:42 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4339
Откуда: Кемеровская область, Киселевск
Это неизлечимая болезнь.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3

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


Кто сейчас на конференции

Сейчас этот форум просматривают: zxczxcs


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB