Перейти к содержанию
    

maxgora

Участник
  • Постов

    10
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Посетители профиля

710 просмотров профиля
  1. Разобрался. Была ошибка в обмене по spi.
  2. Работаю с модулем Wiz850io (W5500 на борту). Заметил особенность, нигде не описанную. При отключенном кабеле опрашиваю PHYCFGR. Примерно на каждые 1300 правильных ответов (Link=0) возвращается 1 кривой (Link=1). При подключенном кабеле все нормально. Есть ли возможность у кого-нибудь это подтвердить или опровергнуть ?
  3. Большое спасибо за обсуждение и за ссылку на ECSS-Q-ST-70-08C.
  4. Любопытный монтаж обнаружился в каротажном приборе. Есть у кого-нибудь соображения зачем нужно было так заморочиться? Это кустарщина или особая фишка для супер надежности в понимании автора?
  5. Спасибо, заказал. Вчера не было этого предложения у них , или не заметил.
  6. Коллеги, срочно понадобились FPGA для ремонта, может у кого-нибудь завалялись 1-3штуки. А то у поставщиков сроки 10-13недель.
  7. Хотели удивить ? :) В МК stm32l053 есть аппаратный блок подсчета CRC. Речь как раз про его использование ч/з библиотеки HAL.
  8. Столкнулся с некорректной реализацией подсчета CRC в stm32l0xx_hal_crc.c Пришлось копнуть поглубже. Кому интересно моё решение, спрашивайте, напишу подробнее. Вот что в итоге получилось для CRC16 с полиномом 0xA001 (для CRC32 придется слегка подправить): #include <stdint.h> #include "stm32l0xx.h" #include "core_cm0plus.h" #include "stm32l0xx_hal.h" extern CRC_HandleTypeDef hcrc; void MB_CRC_Init(void) { hcrc.Instance = CRC; hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_DISABLE; hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_ENABLE; hcrc.Init.GeneratingPolynomial = 0x8005; hcrc.Init.CRCLength = CRC_POLYLENGTH_16B; hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_WORD; hcrc.Init.OutputDataInversionMode = CRC_OUTPUTDATA_INVERSION_ENABLED; hcrc.InputDataFormat = CRC_INPUTDATA_FORMAT_BYTES; HAL_CRC_Init(&hcrc); } uint16_t usMBCRC16(uint8_t* pBuffer, uint32_t size) { hcrc.Instance->CR |= CRC_CR_RESET; while (size > 3) { *(uint32_t volatile*) (&hcrc.Instance->DR) = *(uint32_t*)pBuffer; pBuffer += 4; size -= 4; } if (size != 0) { if (size == 1) { *(uint8_t volatile*) (&hcrc.Instance->DR) = *pBuffer; } else if (size == 2) { *(uint16_t volatile*) (&hcrc.Instance->DR) = *(uint16_t*)pBuffer; } else if (size == 3) { *(uint16_t volatile*) (&hcrc.Instance->DR) = *(uint16_t*)pBuffer; pBuffer += 2; *(uint8_t volatile*) (&hcrc.Instance->DR) = *pBuffer; } } return (*(uint16_t volatile*) (&hcrc.Instance->DR)); }
  9. Помогите найти исходники от апп ноут XAPP1071. Очень нужно. Спасибо.
×
×
  • Создать...