Перейти к содержанию
    

Посоветуйте доступный согласователь уровней

20 hours ago, MementoMori said:

То есть нужно отправить 16 бит - два байта  0xA000 и на SO получим эхо. 

Отправить 16 бит и на следующем цикле CS получить эхо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, aaarrr said:

Отправить 16 бит и на следующем цикле CS получить эхо.

Вот:

rg=0xA0;
dt=0x00;
while(1)
{
dtt=(uint16_t)rg<<8| dt;	
HAL_GPIO_WritePin(TLE_CS_GPIO_Port, TLE_CS_Pin, GPIO_PIN_RESET);
 HAL_SPI_Transmit(&hspi1, (uint8_t*)&dtt, 1, 5000);
HAL_GPIO_WritePin(TLE_CS_GPIO_Port, TLE_CS_Pin, GPIO_PIN_SET);


}	

Не получается эхо, SO притянуто к нулю, причем драйвером притянуто (на входе контроллера честное болтание ноги в воздухе)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/4/2023 at 12:10 AM, vov4ick said:

В паспорте пишут что SO в Z-состоянии только когда CS=1.

В общем, выяснилась странная вещь. - У меня SO в логическом 0 независимо от CS. Была первая мысль, что сгорел какой-нибудь выходной транзистор, создав замыкание на массу.  Но если на RESET подать 0, то SO переводится в Z-состояние.

То есть нет реакции на изменение CS. Я проверял напряжение непосредственно на CS пине - оно меняется, но SO в Z не переходит.

Как думаете, неисправность микросхемы?  Тут ведь уже не скажешь, что я как-то неправильно SPI настроил, базовая штука не работает - перевод SO в Z при снятии выбора микросхемы. При этом сама функция перевода в Z, как таковая работает, при других условиях.  Вывод - микросхема невосприимчива к CS?

Ошибки монтажа тоже исключены -SO к земле ничто принудительно не тянет, проверено, до CS сигнал доходит, тоже проверено....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно, дело в 3-вольтовом питании МК, хотя в паспорте про это не пишут, там пишут только что CS со слабой внутренней подтяжкой (10-50 мкА), то есть его пороги могут быть другими.

Попробуйте этот выход МК переключить на открытый сток, на всякий случай проверить что он держит 5В. Может быть понадобится подтягивающий резистор к +5В.

Изменено пользователем vov4ick

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, vov4ick said:

Возможно, дело в 3-вольтовом питании МК, хотя в паспорте про это не пишут, там пишут только что CS со слабой внутренней подтяжкой (10-50 мкА), то есть его пороги могут быть другими.

Тот факт, что МК, тем не менее, притягивает CS к нулю, что-нибудь значит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, MementoMori сказал:

Тот факт, что МК, тем не менее, притягивает CS к нулю, что-нибудь значит?

Возможно, чтобы отпустило CS, оно должно подняться выше +3,3В. Кто его знает, почему. Может, если вход инверсный, они и пороги с другой стороны считают 😄 Других мыслей пока нет.

Изменено пользователем vov4ick

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 minutes ago, vov4ick said:

Попробуйте этот выход МК переключить на открытый сток, на всякий случай проверить что он держит 5В.

Сделал и так, как вы сказали, и по другому - тупо подключал CS к земле и к +3 вольт, +5 вольт.   Ни 5, ни 3 вольт на CS не переводят SO в Z состояние.  Зато подключение RESET к GND - переводит.

 

Но, допустим, предположим, что раз SO у нас не в Z, то CS каким-то образом, внутри микросхемы, притянуто к земле, то есть микросхема выбрана. Почему не идет эхо?

Купить, что ли, для верности, еще одну микросхему и попробовать....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, MementoMori сказал:

Но, допустим, предположим, что раз SO у нас не в Z, то CS каким-то образом, внутри микросхемы, притянуто к земле, то есть микросхема выбрана. Почему не идет эхо?

По отпусканию CS идёт исполнение команды. Если CS не отпускается, то и команды не исполняются.

Микросхема могла быть уже подгоревшей. Можно измерить, есть ли подтяжка внутри на CS как написано в паспорте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В вашей схеме ни какая "обвеска" обеих м/c не нарисована. В том числе, рекомендованная в ДШ  - конденсаторы, подтягивающие резисторы. Они, вообще, есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, quark said:

В вашей схеме ни какая "обвеска" обеих м/c не нарисована. В том числе, рекомендованная в ДШ  - конденсаторы, подтягивающие резисторы. Они, вообще, есть?

Контроллер - китайский модуль. Там все в порядке с обвязкой. ЧТо качается драйвера - резистор там нужен для подтяжки открытого стока выхода FAULT, на работу микросхемы его наличие или отсутствие не влияет. КОнденсатор есть, правда он не 47 nF, а 470 nF, но я не думаю, что  это критично, припаян очень близко к микросхеме. Я сейчас даже померял напряжение именно на его контактах, все нормально, он на питании сидит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После включения питания обеих м/с, драйвер обычно раньше готов к работе, чем МК. Какое-то время, пока МК не возьмет на себя управление, входы драйвера болтаются в воздухе. Как драйвер отработает эту ситуацию - неизвестно. Рекомендую установить внешние подтягивающие резисторы 10К (к земле или к питанию драйвера) на все линии SPI и RESET. Чтобы сразу зафиксировать на них нужные начальные уровни сигнала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 04.07.2023 в 18:21, MementoMori сказал:

две микросхемы пробовал (предполагая, что первая неисправна)

Логично предполагать, что из одного ларька будет одинаково неисправно всё, или же оно просто не то, но исправно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, quark said:

входы драйвера болтаются в воздухе. Как драйвер отработает эту ситуацию - неизвестно.

Погодите...

Включается питание, драйвер готов к работе и испытывает влияние болтающихся в воздухе ног.

Но  вот готов к работе МК, он передергивает RESET. Я ставил брейкпоинты и наблюдал - тяну RESET вниз, SO начинает болтаться в воздухе, отпускаю - SO переходит в лог.0.

А дальше все под строгим контролем МК.

8 hours ago, quark said:

екомендую установить внешние подтягивающие резисторы 10К (к земле или к питанию драйвера) на все линии SPI и RESET.

RESET драйвера имеет внутреннюю подтяжку к питанию.  Учитывая это, учитывая, что когда МК готов к управлению, он передергивает RESET, мне эта идея кажется сомнительной, но я попробую.

 

1 hour ago, Plain said:

Логично предполагать, что из одного ларька будет одинаково неисправно всё, или же оно просто не то, но исправно.

Разные ларьки были. Один ларек - это алиэкспресс) Второй - наш отечественный барыга из Чебоксар)

У меня такой вопрос.. 

Схемотехнику и плату я уже 10 раз проверил, но вдруг.... хочу без платы подпаяться к микросхеме, может быть даже к следующей, которую достану. Тупо подать питание, подергать CS и посмотреть, что творится на SO в плане переключения в Z-состояние и в логический режим.  

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

Если я минус питания подпаяю к брюху микросхемы, а 4 GND по углам проигнорирую, микросхема не обидится? 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все-таки подключите многканальный логический анализатор (тот же Saleae), и запишите всю процедуру, от включения и инициализации микросхемы до неполучения от нее ответа. Тут все очень просто: при соблюдении спецификации микросхема должна ответить. Если не отвечает- то проблемы в железе.

Под набором сигналов я имею в виду все управляемые пины: SPI, CS, Reset, +5V. Кстати, непонятно в какой момент там питание +5V берется, и как его подача синхронизирована с запиткой МК (3.3V) и стартом коммуникации.

Может просто времянку не выдерживаете (задержки между CS и клоком, например, идли между +5V и Reset, или Reset и началом общения), или фаза клока не та. Или микросхема отвечает, но Вы ее ответ не принимаете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, Ruslan1 said:

Все-таки подключите многканальный логический анализатор (тот же Saleae), и запишите всю процедуру, от включения и инициализации микросхемы до неполучения от нее ответа. Тут все очень просто: при соблюдении спецификации микросхема должна ответить. Если не отвечает- то проблемы в железе.

Прошу прощения, что упираюсь рогом, вы ведете речь о протоколе, о сложных условиях спецификации.

Я же хочу еще раз акцентировать внимание - микросхема не выполняет элементарную, прописанную в даташите вещь -  не меняет состояние SO из Z и обратно по изменению сигнала на CS.  Но делает это при манипуляциях с RESET.  Как мне кажется, многоканальный логический анализатор тут никакой информации не даст.

13 minutes ago, Ruslan1 said:

Может просто времянку не выдерживаете (задержки между CS и клоком, например, идли между +5V и Reset, или Reset и началом общения

В контроллере много периферии инициализируется, так что дарйвер даже ждет какое-то время.  После CS ставил паузу в 1 мсек.  

Фазы клока менял - посмотрите на предыдущей странице осциллограммы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...