0
Не порите чушь, ей же больно.
При полностью залоченном камне у встроенного бутлоадера есть только одна доступная команда «Стереть все». Этой команды достаточно, чтобы вернуть девственность железке.
Никакие собственные лоадеры — необязательны.
  • avatar
  • SeregaB
  • 24 февраля 2017, 13:07
0
Мне понравилось, что они включили в в фильтрацию RTR
На картинке Figure 229. Filter bank scale configuration — register organization вроде-бы все понятно нарисовано.

У 105/107 есть еще прикол в том, что надо обязательно указатель на фильтры CAN2 инициализировать. Иначе он указывает куда-то вдаль и приема нет. :)
  • avatar
  • SeregaB
  • 31 марта 2016, 11:33
0
отличаются ли они электрически

ИМХО, об этом тебе вряд ли кто нибудь расскажет. Применяй только в соотв. с ДШ и не парься. :)

не будет ли проблем с перемычками для включения SPI? Немного выше писали люди, что не всегда эти перемычки бывают

Я писАл об этом. Индикаторы были АБСОЛЮТНО одинаковые в обозначении и заказе, с точностью до буквы. Но ревизии плат, на которых собран сам индикатор — разные. На одной не было места для этих перемычек, на другой — было.
Видимо, если тебе обязательно нужен SPI, самый правильный путь — найти как обозначается модификация индикатора с последовательной загрузкой и искать конкретную модель.
  • avatar
  • SeregaB
  • 05 марта 2016, 14:43
0
Покопал документацию, но не нашел информации чем отличаются 1602A от 1602С
Плохая у тебя лопата. :)
www.adafruit.com/datasheets/WEH1602.pdf
vdd.varitec.co.jp/pdf/WEH001602C.pdf
Они разные по размерам платы.
  • avatar
  • SeregaB
  • 03 марта 2016, 21:26
0
Минимум строк, не значит понимание. А смысл копипастить, если не знаешь что это, весьма призрачный.
Смысла спорить на отвлеченные темы не вижу. Совсем.
Если на прочитать Reference manual хотя бы по-диагонали, то ни копипаст ни какие другие снипеты не помогут. ИМХО.
  • avatar
  • SeregaB
  • 05 февраля 2016, 00:31
+2
Очень рекомендую применять принцип «Делай как я», а не «Делай как я сказал». ;)
Вот это
#define PutPixel(x, y) ( screen_field[(127-(x))*8+(63-(y))/8]|=(0x01<<((63-(y))%8)) )

из Вашего кода.
Хрен разберешь что за наборчик магических циферок
А дадут Вам экранчик 96х64, «что будете делать?»
Явно напрашивается что-то типа
#define LCD_DOT_Y   64
#define LCD_DOT_X   128
#define LCD_MAX_Y   (LCD_DOT_Y-1)
#define LCD_MAX_X   (LCD_DOT_X-1)


Еще хочу заметить, что:
1. В эмбеддерстве, обычно, в части железа сами что-то берут, а не дают непонятно кто.
2. Конкретно в примере с @aliaksei нечто подобное будет загромождать ненужными сущностями простейший код.
  • avatar
  • SeregaB
  • 05 февраля 2016, 00:26
+1
По поводу таких снипетов имею сказать следующее. Смысла в них мало
Если бы смысла было мало, то ST не стал бы заморачиваться своими примерами SPL.

@aliaksei утаил :) самое главное — где берут такие штучки.

Скачивается SPL на конкретное семейство, далее в папочке \STM32F0xx_StdPeriph_LibV1.4.0\Projects\STM32F0xx_StdPeriph_Examples такого кода под разную периферию в разных режимах сколько хочешь. Ничего выдумывать и хранить лишнего не надо. Только рихтуй под свои конкретные нужды.

В частности в \STM32F0xx_StdPeriph_LibV1.4.0\Projects\STM32F0xx_StdPeriph_Examples\ADC
лежат директории с примерами
ADC_AnalogWatchdog
ADC_BasicExample
ADC_BatteryChargeMonitoring
ADC_DMA
ADC_LowPower

Выбирай подходящее по смыслу и — вперед.
  • avatar
  • SeregaB
  • 04 февраля 2016, 23:26
0
ИМХО, это не снипеты, а «использование SPL». В терминах ST снипетом называется конструкция вида:

/**
  * @brief  This function :
             - Enables GPIO clock
             - Configures the USART1 pins on GPIO PB6 PB7
  * @param  None
  * @retval None
  */
__INLINE void Configure_GPIO_USART1(void)
{
  /* Enable the peripheral clock of GPIOA */
  RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
	
  /* GPIO configuration for USART1 signals */
  /* (1) Select AF mode (10) on PA9 and PA10 */
  /* (2) AF1 for USART1 signals */
  GPIOA->MODER = (GPIOA->MODER & ~(GPIO_MODER_MODER9|GPIO_MODER_MODER10))\
                 | (GPIO_MODER_MODER9_1 | GPIO_MODER_MODER10_1); /* (1) */
  GPIOA->AFR[1] = (GPIOA->AFR[1] &~ (GPIO_AFRH_AFRH1 | GPIO_AFRH_AFRH2))\
                  | (1 << (1 * 4)) | (1 << (2 * 4)); /* (2) */
}

/**
  * @brief  This function configures USART1.
  * @param  None
  * @retval None
  */
__INLINE void Configure_USART1(void)
{
  /* Enable the peripheral clock USART1 */
  RCC->APB2ENR |= RCC_APB2ENR_USART1EN;

  /* Configure USART1 */
  /* (1) oversampling by 16, 9600 baud */
  /* (2) 8 data bit, 1 start bit, 1 stop bit, no parity, reception mode */
  USART1->BRR = 480000 / 96; /* (1) */
  USART1->CR1 = USART_CR1_RXNEIE | USART_CR1_RE | USART_CR1_UE; /* (2) */
  
  /* Configure IT */
  /* (3) Set priority for USART1_IRQn */
  /* (4) Enable USART1_IRQn */
  NVIC_SetPriority(USART1_IRQn, 0); /* (3) */
  NVIC_EnableIRQ(USART1_IRQn); /* (4) */
}

  • avatar
  • SeregaB
  • 02 февраля 2016, 10:26
0
Поправил.
PS. До этого момента проблем с Дропбоксом не было. :(
  • avatar
  • SeregaB
  • 29 декабря 2015, 09:30
0
Сейчас именно так и сделал. :) Спасибо за простое решение.
С тайм-аут выкинул за ненадобностью. Перед переинициализацией на 9600 переключаю TxD в GPIO-вход и смотрю уровень. При низком — функция OWI_Reset сразу возвращает код ошибки КЗ.
А у меня утром сегодня башка плохо варила и я пытался по приему байта 0х00 определить КЗ. :)
  • avatar
  • SeregaB
  • 01 ноября 2015, 00:02
0
Где нибудь, в моей заметке написано что код steel_ne нерабочий?
Я пытался в процедуре сброса определить три состояния:
1. Есть датчик OWI
2. Нет датчика
3. КЗ ни линии.

Не получилось по п.3 потому, что ответ, записанный в переменной ow_presence при наличии датчика всегда нулевой. Мне показалось это странным, решил понять в чем дело. Разобрался, кратенько описал.
У steel_ne и в указанной тобой библиотеке и по ссылке которую дал я очень тонко обойден этот момент. Ответ сравнивается с исходной посылкой.
if (ow_presence != 0xf0) {
		return OW_OK;
	}


Т.о., получив 0х00, при сравнении с 0xF0 все работает.

Я понимаю, после того как дописал кусок кода дальше, что я не могу получить в ответе 0х00 при КЗ в линни, поскольку не будет стартового бита. И выходить при КЗ пришлось по тайм-ауту приема. Но мне необходимо знать до начала штатной работы есть КЗ или нет (подавать умощненное питание на время преобразования или не стОит, поскольку датчики включены с фантомным питанием).
  • avatar
  • SeregaB
  • 31 октября 2015, 23:11
0
А можно конкретно? Не ради флейма, а просто интересно. Что за ЕМБЕДДЕРСКАЯ задача, к которой невозможно подобрать подходящий по функционалу STM32?
Желательно реальные, а не экзотику типа: «хочу 20 набортных UART + 10 набортных МАС»
  • avatar
  • SeregaB
  • 21 октября 2015, 10:32
0
Нынче — уже хлам. :) Сейчас любые контроллеры устаревают, практически, быстрее, чем испекаются. :) Недаром все производители заявляют про время жизни конкретных линеек.
Несколько лет назад в Терре купил «на всякий случай» F100C по акции — «32 бита по 99 центов». До сих пор удалось применить едва-ли штук 5-ть. Под любую КОНКРЕТНУЮ задачу ОБЯЗАТЕЛЬНО находится более подходящий контроллер из семейства STM32.

Собственно неясно что заказывал, поэтому трудно заценить щедрость продавана.
  • avatar
  • SeregaB
  • 19 октября 2015, 10:01
0
Спасибо.
Просьба — если не сложно, в статьях сделай перекрестные ссылки на 1, 2, 3 части.
0
CMD0. Подробно описано здесь и рядом elm-chan.org/docs/mmc/mmc_e.html
  • avatar
  • SeregaB
  • 12 марта 2015, 10:13
0
цифровое управление,
два отдельных источника — силовой и для питания управляющей части.
Непонятно, чего ты паришься с триггером. :) Поставил контроллер, навешал кнопок и/или энкодеров на входы, на выходы — релюшек и все дела.
Триггер интересен там, где приходится извращаться с дерганием самого себя за хвост. Или там где нет совсем мозгов (МК). Если в схеме есть МК, то вполне естественно использовать его как тот самый триггер. :) Примерно как здесь
POW — сигнал ОТ контроллера «удерживать включенным»
BTN — сигнал НА контроллер «нажатие кнопки».
При таком включении можно заставить пользователя выстукивать морзянкой «ВЫКЛ» для выключения. :)
  • avatar
  • SeregaB
  • 16 января 2015, 13:46
0
Все равно ты УНИВЕРСАЛЬНОГО решения не найдешь. :)
У меня, например, во всех трех приборах, в которых применял подобное решение (триггер и силовой ключ), отключение производилось основным контроллером, поскольку требовалось записать некие параметры текущей сессии в EEPROM. Получалось что в одну сторону триггер перекидывается кнопкой, а в другую только сигналом от МК. И при таких условиях одна кнопка на перекидывание триггера и туда и сюда уже не годится совсем.
  • avatar
  • SeregaB
  • 16 января 2015, 12:42
+1
Или ты про ситуацию, когда источник источник один — батарейка
Ну да. Места обычно не хватает в батарейных приборах. А нынче удобнее всего литий применять (2,9..4,2 В). Как раз SN74LVC2G74DCU идеально ложится под такую задачу и корпус всего чуть больше SOT-23.

А если еще нужен стабилизатор для питания логики, то ну его нах., его ведь еще микропотребляющим надо делать. Исходная схема (триггер на двух транзисторах), приведенная ТС, становится гораздо привлекательнее.
  • avatar
  • SeregaB
  • 16 января 2015, 11:34
0
Второй (2803) — лишний. Учитывая, что это переключалка с неопределенным начальным состоянием и то, что обычно батарейка меньше 5,5 В (для 74 серии), затвор «силового» транзистора можно подключить сразу к выходу триггера.
  • avatar
  • SeregaB
  • 16 января 2015, 11:02
+1
Что-то обидно стало за STM32.
ну тогда цена возрастет почти в двое )
А если присмотреться, то получается так:
www.compel.ru/infosheet/TI/MSP430G2553IN20/ 2.4371 $
www.compel.ru/infosheet/ST/STM32F100R6T6B/ 2.0854 $

Соотношение цены 0,86, экономия 16%. :) И это только на микроконтроллере.

зато у MSP430 потребление низкое
Ага. Когда спит, зубами к стенке. В реальной работе разница нивелируется практически до нуля.

гибкость и продуманость на таком уровне — что и не снилось STM
Эти сказки рассказывай где-нибудь на непрофильном сайте. :) Объясни-ка нам, как в продуманном и гибком MSP430G2553 задействовать SPI и USART, желательно одновременно.
Типичная задача — собрали данные с 16-ти каналов АЦП, запомнили лог в SPI EEPROM, передали данные в РС, при подключении к оной.

PS. Холивар предлагаю не разводить, но и огульно хаять Cortex не позволю. :)

PSPS. Я не утверждаю, что MSP430 — плохо. Самому нравится, например, MSP430AFE253. Но, в данном конкретном случае, MSP430G2553 плохо ложится на задачу.
  • avatar
  • SeregaB
  • 07 декабря 2014, 14:07