Easyelectronics.ru

Электроника для всех
Текущее время: 25 фев 2018, 06:44

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

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

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


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

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

_________________
RADIOWOLF.RU


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

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


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

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

_________________
RADIOWOLF.RU


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

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


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

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2223
Откуда: КЧР, поселок Нижний Архыз
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
Сообщения: 429
Eddy_Em писал(а):
К STM32F0. Ногодрыгом через DMA.

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


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

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


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

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 429
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
Сообщения: 2223
Откуда: КЧР, поселок Нижний Архыз
Цитата:
F4 с FSMC в 2 раза дороже F1 с FSMC

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


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

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

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


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

Зарегистрирован: 19 фев 2015, 17:37
Сообщения: 1130
Откуда: 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
Сообщения: 4643
И стоило ради подобного уходить с ардуньи?


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

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

_________________
RADIOWOLF.RU


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

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


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

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


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

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

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