STM32 Интерактивная шахматная доска.

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
85
2
Воронеж
Посоветуйте, как и где можно заказать плату, исходя из сегодняшних реалий.
 

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
85
2
Воронеж
Есть ветка посвящённая этому
Да, я видел. Но не подхожу под условия заявленные там.
Плату заказал в Китае. Жду. Кому интересно могут продать излишки.
Там минимальный заказ 5 шт
Как бонус обсудим программные и производственные вопросы.
Мне бы хотелось найти единомышленника, довести до готового решения.
 

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
85
2
Воронеж
C Attiny работает не стабильно, stm через раз читает правильно
Вопрос закрыл.
У меня же на STM UART настроен - parity even.
C:
Control register 1 (USART_CR1)
Bit 10 PCE: Parity control   
0: Parity control disabled
1: Parity control enabled
Bit 9 PS: Parity selection
This bit selects the odd or even parity when the parity generation/detection is enabled (PCE
bit set). It is set and cleared by software. The parity will be selected after the current byte.
0: Even parity
1: Odd parity   

        USART1->CR1 |= USART_CR1_PCE;
        USART1->CR1 &=~ USART_CR1_PS;
Включил parity even на Attiny, и все заработало как по маслу.

C++:
Биты UPM1 и UPM0 (USART Parity Mode) в регистре UCSRC отвечают за включение и тип контроля чётности:
C:
//Если бит UMSEL сброшен в 0, то модуль работает в асинхронном режиме
 //USBS Количество стопбитов. Если бит сброшен в 0, то передатчик посылает 1 стопбит,
 //если установлен в 1, то 2 стопбита.
 //UCPOL  При работе в асинхронном режиме он должен быть сброшен в 0. USART Mode: Asynchronous
 //UPM1 UPM0 - Управление схемой контроля четности - 0 0 Выключена
 UCSRC &= ~((1 << UMSEL) | (1 << USBS) | (1 << UCPOL) | (1 << UPM1) | (1 << UPM0)); // Clear bit
 // Настройка формата кадра:
 // - Even parity (UPM1=1, UPM0=0)
 // - 8 бит данных (UCSZ1=1, UCSZ0=1)
 // - 1 стоп‑бит (USBS=0)
 UCSRC |= (1 << UPM1); // Set bits
 //Определение размера слова данных - 8 бит
 UCSRC |= (1 << UCSZ1) | (1 << UCSZ0); // Set bits
 UCSRA &= ~(1 << UCSZ2); // Clear bit
А была даже мысль тактировать Attiny от кварца, но под рукой не было -затактировал от MCO
C:
    //enable clock access to GPIOA
    RCC->APB2ENR|=RCC_APB2ENR_IOPAEN;
    //Enable clock access to alternate function
    RCC->APB2ENR|=RCC_APB2ENR_AFIOEN;
   //Настраиваем порт в режим альтернативной функции
  GPIOA->CRH &= ~(GPIO_CRH_MODE8_Msk | GPIO_CRH_CNF8_Msk); //Сбрасываем биты в ноль
  GPIOA->CRH |= (0x03 << GPIO_CRH_MODE8_Pos) | (0x02 << GPIO_CRH_CNF8_Pos); //устанавливаем нужные биты 
  RCC->CFGR &= ~(RCC_CFGR_MCO_Msk); //Сначала устанавливаем все в ноль
 //Настройка вывода тактового сигнала
//через MCO-пин
//sourse - источник тактирования
// 0 - отключено
// 4 - SYSCLK
// 5 - HSI
// 6 - HSE
// 7 - PLL/2
  RCC->CFGR |= (6<<RCC_CFGR_MCO_Pos); //Устанавливаем источник тактирования
Но как писал выше - собака зарыта в parity even.
В общем сейчас работает стабильно)))