Помогите подключить счетчик LS7366R .

Ardjuno
Offline
Зарегистрирован: 21.11.2020

       Здравствуйте ,  Не считает квадратурный счетчик LS7366R , подключенный по SPI . Пробовал несколько библиотек .Монитор порта присылает либо 0  ,  -1  либо FFFFFFFF  ...  Обвязка минимальная , спаяно и подключено корректно , кварц генерит ,  Пробовал несколько библиотек с GitHub .(  LS7366-master ,  Arduino LS7366R - master , Encoder-Buffer-library-master ... )      Кто-то  знаком с LS7366 ? 

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Какое напряжение питания и на какую частоту кварц? Если кварц на 40 мГц, а питание 3,3в, будут проблемы. 

Ardjuno
Offline
Зарегистрирован: 21.11.2020

     На кварце осциллограмма такая же  как на таком же кварце , работающего частотомера .  Оба 20 МГц . 

Ardjuno
Offline
Зарегистрирован: 21.11.2020

    Кажется , у меня нет связи по SPI .     В скетче , опрашивающем  2 счетчика приходит одинаковый результат- нули  , хотя одна микросхема не подключена .  И , вспомнил ,  отсутствие провода  SS -  выбор кристалла -  не влияет на работу  ...  

 Есть кто - нибудь ближе к Ярославлю ? 

Ardjuno
Offline
Зарегистрирован: 21.11.2020

         Тысяча извинений !   Конечно же !  Перепутаны MOSI и MISO  !  Всем спасибо ! 

CybSys
Offline
Зарегистрирован: 05.08.2019

Здравствуйте

кто ни то использовал квадратурный счетчик на микросхеме LS7366R?

у меня пока что то не считает.

Скетч использовал вот отсюда: https://github.com/davidjabon/LS7366 

схему перепроверил, вроде все так. энкодер импульсы выдает

кварц исмользовал на 16МГц, вот тут не совсем понял, или минимум 20 МГц надо использовать?

кварц генерирует сигнал на 1 ногу микросхемы.

в остальном не знаю как еще проверять.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

А у меня работал.

CybSys
Offline
Зарегистрирован: 05.08.2019

На какую частоту ставили кварц?

обвязку делал по такой схеме:

Скетч использовал из библиотеки

#include <LS7366.h>
#include <SPI.h>

LS7366 myLS7366(9);  //8 is the chip select pin.

void setup() {
  Serial.begin(115200);
  myLS7366.write_mode_register_0(FILTER_1 | DISABLE_INDX | FREE_RUN | QUADRX4);
  myLS7366.write_mode_register_1(NO_FLAGS | EN_CNTR | BYTE_4 );
  myLS7366.clear_counter();
  myLS7366.clear_status_register();
  myLS7366.write_data_register(4);
}

void loop() {
  unsigned long count = myLS7366.read_counter();
  Serial.print("Count: ");
  Serial.print(count, DEC);
  Serial.print(" Status: ");
  print_binary(myLS7366.read_status_register());
  Serial.print("\n");
  delay(1000);
}

//Function to print out one byte in a readable, left-padded binary format

void print_binary(byte val)
{
byte i=0;
for (i=0;i<8;i++)
    {
        if (val & (0x01 << (7-i)))
        {
             Serial.print("1");
        }
        else
        {
             Serial.print("0");
        }
        if (i==3) Serial.print("_");
    }
}

 

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Так без кварца и у меня не работал. Его и конденсаторы надо ставить как можно ближе к мелкосхеме. Первый раз соединил проводами по 3 см. Не работало. 

CybSys
Offline
Зарегистрирован: 05.08.2019

у меня кварц стоит на 16МГц с конденсаторами на 20пФ, на плате, довольно близко к микросхеме

CybSys
Offline
Зарегистрирован: 05.08.2019

Бармалей пишет:

А у меня работал.

А саму микросхему где покупали?

Ardjuno
Offline
Зарегистрирован: 21.11.2020

3 раза заказывал на Али - работают .

CybSys
Offline
Зарегистрирован: 05.08.2019

обнаружил такую штуку, сигнал с кварца приходит на первый вывод, а судя по даташиту должен на второй вывод микросхемы приходить. так  ли это?

 

CybSys
Offline
Зарегистрирован: 05.08.2019

контроллер шлет вот таки значения

CybSys
Offline
Зарегистрирован: 05.08.2019

Вроде как заработало! Выбрал не тот вывод SS.

Теперь надо разбираться с настройками, а то считает в 4 раза больше нужного)))

Всем спасибо!