1- проверить анализатором правильность инвертирования сигнала CS (на сколько он смещен относительно реального).
2- не справляется ардуина по скорости, я когда у себя делал - менял кварц.
3- на некоторых устройствах пакеты передаются в разнобой (поэтому каждый пакет пронумерован в последних 2 битах последнего байта), по хорошему надо 4 буфера. Или проверять анализатором инкримент пакетов всегда ли они по порядку.
В итоге работало нормально но только на чтение. Мне же надо было еще и передавать данные по этому протоколу, пришлось ставить Teensy3(96MHz) и работать по прерыванию с CLK, был написан эмулятор протокола CCB. В обед выложу рабочие куски кода с обоих устройств (arduino и teensy).
А по хорошему переходите на Stm и будет вам счастье!
не понял, а почему ардуино не справлятся по скорости? Частото тактового импульса всего 3 MHz
"всего 3 МГц" ?! - это не "всего", это дофига.
У ардуины 16 МГц - и вот тут действительно, "всего". То есть у вас частота ардуины ВСЕГО в 5 раз больше частоты шины. А теперь посмотрите, сколько инструкций у вас в обработчике прерываний. Сильно сомневаюсь, что у ардуины есть хоть малейший шанс успеть, если значения по шине идут с минимальной задержкой.
Да это товарищ не въехал, что первому сообщению несколько лет :)
Кодировку символов в сообщ #14 уже переписали покороче. Но резерв сокращения еще большой.
Я уже понял. Можно я завтра сброшу скрин с логического анализатора. Или сам файл . Может там что не так. На мой взгляд вроде все путем.
Юлиан все в том же стиле :)
Вы тоже в своем духе.
С годом конечно лажанул.)
Может пригодится кому.
Мой вариант против кода из поста #14 занимает на 1096 байт (почти 8%) меньше 13024 байт против 14120 байт
У человека проблема не с кодом, а с железом 100%.
1- проверить анализатором правильность инвертирования сигнала CS (на сколько он смещен относительно реального).
2- не справляется ардуина по скорости, я когда у себя делал - менял кварц.
3- на некоторых устройствах пакеты передаются в разнобой (поэтому каждый пакет пронумерован в последних 2 битах последнего байта), по хорошему надо 4 буфера. Или проверять анализатором инкримент пакетов всегда ли они по порядку.
В итоге работало нормально но только на чтение. Мне же надо было еще и передавать данные по этому протоколу, пришлось ставить Teensy3(96MHz) и работать по прерыванию с CLK, был написан эмулятор протокола CCB. В обед выложу рабочие куски кода с обоих устройств (arduino и teensy).
А по хорошему переходите на Stm и будет вам счастье!
не понял, а почему ардуино не справлятся по скорости? Частото тактового импульса всего 3 MHz
не понял, а почему ардуино не справлятся по скорости? Частото тактового импульса всего 3 MHz
"всего 3 МГц" ?! - это не "всего", это дофига.
У ардуины 16 МГц - и вот тут действительно, "всего". То есть у вас частота ардуины ВСЕГО в 5 раз больше частоты шины. А теперь посмотрите, сколько инструкций у вас в обработчике прерываний. Сильно сомневаюсь, что у ардуины есть хоть малейший шанс успеть, если значения по шине идут с минимальной задержкой.
Теперь понимаю. Если такую вещь использовать STM32F103C8T6. Я думаю должно хватить. Или может, что еще посоветуете из готовых плат.
хватит с головой
вот этот код работал на uno 100%, но я еще в него подмешивал данные
а вот с teensy
сейчас попробую. Спасибо
Посмотрел код. Если убрать пока всё лишнее, получается то что и у меня сейчас
Буду разбираться дальше.
на teensy без инверсии cs