Очередная багофича HAL

Наткнулся на новый косяк библиотеки HAL в функции HAL_I2S_Transmit. Есть у нее параметр uint16_t Size, который удваивается в случае работы с данными 24 или 32 бита

// stm32f4xx_hal_i2s.c line 537
if((tmp1 == I2S_DATAFORMAT_24B) || (tmp1 == I2S_DATAFORMAT_32B))
{
  hi2s->TxXferSize  = (Size << 1U);
  hi2s->TxXferCount = (Size << 1U);
}
else
{
  hi2s->TxXferSize  = Size;
  hi2s->TxXferCount = Size;
}


Проблема в том, что переменные TxXferSize и TxXferCount имеют тип uint16_t. И если на вход HAL_I2S_Transmit передать размер 0x8000 и более, то после сдвига влево результат превращается в тыкву.

// stm32f4xx_hal_i2s.h line 110
typedef struct __I2S_HandleTypeDef
{
  SPI_TypeDef                *Instance;    /*!< I2S registers base address        */
  I2S_InitTypeDef            Init;         /*!< I2S communication parameters      */
  uint16_t                   *pTxBuffPtr;  /*!< Pointer to I2S Tx transfer buffer */
  __IO uint16_t              TxXferSize;   /*!< I2S Tx transfer size              */
  __IO uint16_t              TxXferCount;  /*!< I2S Tx transfer Counter           */

Процесс близится к самому интересному

Ну в общем к настоящему моменту выпилены каналы в трёх развёртках — левая стенка, правая стенка и зад-потолок. Сварен каркас, выложен под. Затем печь предварительно собрана и подогнана, без глины. По размерам канала изготовлены и вставлены на крепёжках три спирали, после чего под угол примерно 45% срезан ободок по периметру портала печи. Затем печь была разобрана и сложена уже на глину, после чего, ещё по сырой глине была стянута стальным каркасом. Через неделю после сушки из печи была извлечена опорная проставка для временного крепления потолка печки, до того, как печь была стянута стальным каркасом.


Под катом большое количество фоток в процессе. Сейчас печь сохнет при температуре от 4 до 25 градусов в цеху. Сохнет уже 3 недели. Так что если всё будет ок — то завтра попробую сделать пробный запуск.


Читать дальше

Микроскоп для пайки на экшен камере

Понадобилось мне недавно паять корпус lga-16. Обычно пользуюсь dip, soic и проблем не знаю. Но акселерометры в dip что-то не встречаются. В итоге после боданий с лутом удалось получить 0.2-е дорожки. Но вот правильно припаять микросхему размером 3х3 мм c 16 выводами как то не вышло — не получается точно позиционировать. Стало ясно — лупы уже для работы не хватает, нужен микроскоп, да такой что бы фен спокойно гулял под объективом. Стереоскопический особо пока не нужен, так что решил остановится на USB микроскопе. Гугление и али-шатания показали, что цены на хорошие USB микроскопы гуманностью не страдают. За несчастные 1.5-2 килорубля впаривают VGA с интерполяцией, максимум 30 кадров (если повезет с освещением) и крошечным дисплеем. А хочется то православные 1080/60. С такими характеристиками только модуль камеры типа ov2710/ov4689 стоит порядка 2.5-4 килорублей, а ведь надо еще основу и оптику, да и бестеневое освещение не помешает. Плюс недорогие микроскопы страдают коротким фокусным расстоянием — фен надо держать под углом, а это не очень удобно — можно что нить сдуть.
Было решено колхозить свой вариант в самом популярном на youtube формате — штатив от старого фотоувеличителя, добрая советская оптика и какая нибудь камера с интерфейсом USB/HDMI.


Читать дальше

Как вам комплект?

Как вам комплект для сборки печки?

Long life

Действительно Long Life — это когда в половину одиннадцатого вечера ломается жалкий остаток круга на отрезной станок, у которого диаметр нестандартный, а ты обнаруживаешь завалившийся за радиатор «обрезок», который там уже года два-три лежит…
LongLife
LongLife
и который раза в два больше твоего рабочего)


Скоро следующая статья про печку. Сейчас много нудных сверлильно-накруточных работ.
LongLife

Редактор г-кода файлы

В общем по неизвестной мне причине прикреплённые файлы открепились от поста
http://we.easyelectronics.ru/skelet/redaktor-g-koda.html

Каким либо способом прикрепить их де даёт редактор. Удалить пост тоже.
Пробую второй раз. Глюки какие-то :(
  • 0
  • 22 декабря 2018, 22:02
  • skelet
  • 3

Редактор г-кода

Иногда мой код полное «Г».
Но это не отменяет необходимости его редактировать.
Эта запись так на всякий случай, чтобы я потом долго не искал что и где взять.


Читать дальше

Управление муфельной печью

Доброго вечера всем!
Собираю печку для обжига керамики. Начал резво, корпус собрал, количество проволоки рассчитал, сегодня на котельной на смене — решил заняться управлением. А тут не всё так просто. Думаю, напишу, может кто подскажет.
Мощность 7 киловатт. Температуру снимать буду через термопару — рабочий диапазон от комнатной до 1000-1100 градусов. Инерционность небольшая, так как спирали открытые. Затеялся сделать что-то вроде ПИД регулятора, и тут понеслось. Реле или пускатель не проканает — сильно часто щёлкать будут. Пошарил в гугле — все делают на тиристорах Т142. И все используют импульсный запуск.
Вопрос в том, есть ли другие варианты — и если импульсный запуск всё-же предпочтителен — то что почитать посоветуете, дабы матчасть подтянуть?

Повторяем Китай (своя прошивка для релейного модуля STC15F104W + ESP8266)

Купил себе на поигратся релейный модулек на базе STC15F104W и ESP8266. Вот такой www.banggood.com/ESP8266-5V-WiFi-Relay-Module-Internet-Of-Things-Smart-Home-Phone-APP-Remote-Control-Switch-p-1126605.html? (это не реклама, я вообще его у себя в городе брал, а не в Китае)

Читать дальше
  • +2
  • 11 октября 2018, 15:48
  • Gnusmas
  • 2

Косячок FAT_FS

Здравствуй, мой ненаглядный бложек.

Пишу в тебя о том, что вчера делал f_findfirst и f_findnext файлов "*.txt".
Дык вот, если в заданной папке есть файл без расширения, например «readme», то f_findfirst возвращает 0 («ОК файлы есть») и пустое имя первого найденного файла (точнее, путь к заданной папке, без имени файла).
Ревизия бибы 63463, 2018й год.

ChaN — крут, низкий ему поклон.