Экспериментирую с SPI интерфейсом для управления модулем DDS на AD9850
Задача - из PHP через spidev управлять этой микрухой.
Сразу столкнулся с несколькими проблемами:
1. Не понятно каким образом spidev драйвер передает данные. Привожу пример:
из консоли пишу:
- Код: Выделить всё
echo '\x0' >> /dev/spidev0.1
получаю следующую асциллограмму
далее
- Код: Выделить всё
echo '\x1' >> /dev/spidev0.1
асциллограмма идентична и вплоть до \xf
Потом пишу
- Код: Выделить всё
echo '\x10' >> /dev/spidev0.1
Получаю
и идентично до \x1f. Соответственно то-же самое с \x2f...\xff. на выходе появляются только старшие пол байта.
Далее интереснее:
- Код: Выделить всё
echo '\x111' >> /dev/spidev0.1
до
- Код: Выделить всё
echo '\x119' >> /dev/spidev0.1
а с \x11a до \x11f
если же написать
- Код: Выделить всё
echo '\x11\x0' >> /dev/spidev0.1
вплоть до \x11\xf будет такая осциллограмма
зато при \x11\xa я получаю на выходе только 4 первых бита.
В общем - голову свернуть можно...
2. Можно ли настроить драйвер таким образом чтобы он тикал "чип селект" как до передачи данных так и после?
Заранее благодарю за помощь.