All streams
Search
Write a publication
Pull to refresh
178
99.9

Embedded SW/Firmware Engineer

Send message

"реализации сложных световых эффектов."

светопреставление

 Для распознавания движений добавим акселерометр

Я преглагаю Вам калибровать акселерометры вот по этому простому алгоритму

Калибровка MEMS Акселерометра [Часть 2]
https://habr.com/ru/articles/858874/

Геометрия Стенда для Калибровки MEMS Акселерометра
https://habr.com/ru/articles/858354/

Если проводить аналогии из фильмов, то теперь надо смастерить ромбообразный ключ для умного дома.

Как в фильме" Отроки во вселенной."

Привет, Крейл.

А как Вы калибруете акселерометры в мечах?

На Си это получится так

uint32_t int_pow_fast(const uint32_t base, 
                      const uint32_t exponenta) {
    uint32_t result = 0;
    uint32_t n = exponenta;
    if(0==n) {
        result =1;
    } else {
        result = 1;
        uint32_t current_product = base;
        /*run through all the exponenta bits*/
        while (0 < n) {
            if (1&n) {
              /* found a factor of 2 different from 1 in 
                 our exponenta decomposition*/
              result *= current_product;
            }
            current_product *= current_product;
            n = n >> 1;
        }
    }
    return result;
}

Kvaser и vector это отличный прибор и по. Я согласен. Тут и сомнений нет.

Но из -за санкций они даже сайты свои отключили для россиян. Не говоря уже о покупке самого прибора.

Вот и приходится искать альтернативы.

Да и самый дешёвый vector и в мирное время стоил больше 100к rur.

Там как будто специально только таких и набирают.

Когда я работал в АвтоВАЗе, то за чаепитием с российскими программистами МК там я с удивлением для себя обнаружил, что никто из них не знает, что такое CAN bus-off

При этом у каждого них по 10 -15+ лет российского embedded опыта.

Вот и решил написать небольшой ликбез по основам CAN classic.

Зачем в FC7300F8MDT нужен Matrix Access Monitor (MAM), если FC7300F8MDT это ARM Cortex-M7, а в ARM Cortex-M7 и так есть Memory Protection Unit (MPU)?

Вот еще пример на тему того, как наши люди "микроскопом гвозди забивают".

Аппаратный таймер в качестве датчика звука
https://habr.com/ru/articles/845330/

До такого могли додуматься только наши российские люди.

MS Visio платный. Скачивайте лучше бесплатный inkscape
https://inkscape.org/

 ведь надо успеть дать АСК проверив контрольную сумму битом ранее.

Можно какое-н фиктивное устройство на шину повесить, которое будет ACK ставить, так как это надо делать в real time.

 Но что может помешать реализовать програмно если аппаратной поддержки в требуемом контроллере нет?

Ничего не мешает написать код (FSM), который по массиву семплов от CAN-RX в post обработке распознает CAN пакет. Семплы можно читать либо GPIO либо ADC.

Через ADC(GPIO)+DMA записали c линии CAN_RX 0101010110000111 (однобитные семплы) за последние 1ms и положили в FIFO.
Только надо много RAM памяти, чтобы семплы эти где-то хранить.


Далее ЦОС обработка. Обсчитываем и извлекаем структуру пакета через конечные автоматы.

Условно записали через ADC+DMA 2....5 ms c линии CAN_RX и 10ms...100ms их обсчитываем.

Просто это будет работать не в real time.

+ надо какое-нибудь фиктивное устройство, которое будет ACK ставить, так как это надо делать в real time. Без этого на стой стороне начнется flude.

С отправкой всё много проще.
Сформировали массив семплов и отправили по GPIO(DAC) через DMA в CAN_TX.

а это стандартизованный термин?

Скорее нет чем да. Но у нас на прошлой работе так часто менеджеры говорили c поставщиками ECU.
"Дайте нам CAN-матрицу."

Но что может помешать реализовать програмно если аппаратной поддержки в требуемом контроллере нет?

Тогда уж на Verilog HDL.

Есть переходники с SPI на CAN в ASIC исполнении.
И им нужно отдельное тактирование (TCAN4550-Q1, TJA1145T/FD, MCP2515).

Но что может помешать реализовать програмно если аппаратной поддержки в требуемом контроллере нет?

Если MCU не поддерживает CAN (например MIK32), то можно пристегнуть ASIC трансиверы переходники с SPI на CAN. Например
TJA1145T/FD

MCP2515
TCAN4550RGYRQ1
TCAN4550-Q


Information

Rating
71-st
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Embedded Software Engineer, DevOps
Senior
Git
Bash
CI/CD
C
Embedded system
Programming microcontrollers
Software development
Algorithms and data structures
System Programming
Development of drivers