Помогите подключить счетчик LS7366R .
- Войдите на сайт для отправки комментариев
Сб, 21/11/2020 - 14:04
Здравствуйте , Не считает квадратурный счетчик LS7366R , подключенный по SPI . Пробовал несколько библиотек .Монитор порта присылает либо 0 , -1 либо FFFFFFFF ... Обвязка минимальная , спаяно и подключено корректно , кварц генерит , Пробовал несколько библиотек с GitHub .( LS7366-master , Arduino LS7366R - master , Encoder-Buffer-library-master ... ) Кто-то знаком с LS7366 ?
Какое напряжение питания и на какую частоту кварц? Если кварц на 40 мГц, а питание 3,3в, будут проблемы.
На кварце осциллограмма такая же как на таком же кварце , работающего частотомера . Оба 20 МГц .
Кажется , у меня нет связи по SPI . В скетче , опрашивающем 2 счетчика приходит одинаковый результат- нули , хотя одна микросхема не подключена . И , вспомнил , отсутствие провода SS - выбор кристалла - не влияет на работу ...
Есть кто - нибудь ближе к Ярославлю ?
Тысяча извинений ! Конечно же ! Перепутаны MOSI и MISO ! Всем спасибо !
Здравствуйте
кто ни то использовал квадратурный счетчик на микросхеме LS7366R?
у меня пока что то не считает.
Скетч использовал вот отсюда: https://github.com/davidjabon/LS7366
схему перепроверил, вроде все так. энкодер импульсы выдает
кварц исмользовал на 16МГц, вот тут не совсем понял, или минимум 20 МГц надо использовать?
кварц генерирует сигнал на 1 ногу микросхемы.
в остальном не знаю как еще проверять.
А у меня работал.
На какую частоту ставили кварц?
обвязку делал по такой схеме:
Скетч использовал из библиотеки
01
#include <LS7366.h>
02
#include <SPI.h>
03
04
LS7366 myLS7366(9);
//8 is the chip select pin.
05
06
void
setup
() {
07
Serial
.begin(115200);
08
myLS7366.write_mode_register_0(FILTER_1 | DISABLE_INDX | FREE_RUN | QUADRX4);
09
myLS7366.write_mode_register_1(NO_FLAGS | EN_CNTR | BYTE_4 );
10
myLS7366.clear_counter();
11
myLS7366.clear_status_register();
12
myLS7366.write_data_register(4);
13
}
14
15
void
loop
() {
16
unsigned
long
count = myLS7366.read_counter();
17
Serial
.print(
"Count: "
);
18
Serial
.print(count, DEC);
19
Serial
.print(
" Status: "
);
20
print_binary(myLS7366.read_status_register());
21
Serial
.print(
"\n"
);
22
delay(1000);
23
}
24
25
//Function to print out one byte in a readable, left-padded binary format
26
27
void
print_binary(
byte
val)
28
{
29
byte
i=0;
30
for
(i=0;i<8;i++)
31
{
32
if
(val & (0x01 << (7-i)))
33
{
34
Serial
.print(
"1"
);
35
}
36
else
37
{
38
Serial
.print(
"0"
);
39
}
40
if
(i==3)
Serial
.print(
"_"
);
41
}
42
}
Так без кварца и у меня не работал. Его и конденсаторы надо ставить как можно ближе к мелкосхеме. Первый раз соединил проводами по 3 см. Не работало.
у меня кварц стоит на 16МГц с конденсаторами на 20пФ, на плате, довольно близко к микросхеме
А у меня работал.
А саму микросхему где покупали?
3 раза заказывал на Али - работают .
обнаружил такую штуку, сигнал с кварца приходит на первый вывод, а судя по даташиту должен на второй вывод микросхемы приходить. так ли это?
контроллер шлет вот таки значения
Вроде как заработало! Выбрал не тот вывод SS.
Теперь надо разбираться с настройками, а то считает в 4 раза больше нужного)))
Всем спасибо!