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

MementoMori

Свой
  • Постов

    1 340
  • Зарегистрирован

  • Посещение

Весь контент MementoMori


  1. Вы, похоже, невнимательно читали. Выход живой, он на RESET реагирует изменением режима работы, не реагирует на CS. А к разборкам с выходом я пришел после того, как у меня не получилось с предлагаемым вами этапом. И тогда я начал копать и начал с элементарного - с эха.
  2. Ах вот как. Пардон, источник у меня один, просто на плате 2 преобразователя импульсных.
  3. Так и есть. И паразитное питание имеет место быть. У меня на 5 вольтовой линии есть потребитель, питание которого индицируется светодиодом (так надо), так вот если я подключаю SWD разъем к контроллеру, запитывая 3.3вольтовую линию, то этот светодиод слабенько светится. Но допустим есть проблема включения в разное время. Повторюсь - спустя время, необходимое на инициализацию периферии МК (не измерял, но явно десятки микросекунд), контроллер перезагружает драйвер. И лишь потом начинаются проверки SO и обмен данными. Ресет в этом случае должен решать проблему? Вот и у меня ощущение, что вход спален. Как защититься от паразитного питания?
  4. Намек на то, что в драйвере есть внутренняя подтяжка этих линий к нулю?
  5. Прошу прощения, что упираюсь рогом, вы ведете речь о протоколе, о сложных условиях спецификации. Я же хочу еще раз акцентировать внимание - микросхема не выполняет элементарную, прописанную в даташите вещь - не меняет состояние SO из Z и обратно по изменению сигнала на CS. Но делает это при манипуляциях с RESET. Как мне кажется, многоканальный логический анализатор тут никакой информации не даст. В контроллере много периферии инициализируется, так что дарйвер даже ждет какое-то время. После CS ставил паузу в 1 мсек. Фазы клока менял - посмотрите на предыдущей странице осциллограммы.
  6. Погодите... Включается питание, драйвер готов к работе и испытывает влияние болтающихся в воздухе ног. Но вот готов к работе МК, он передергивает RESET. Я ставил брейкпоинты и наблюдал - тяну RESET вниз, SO начинает болтаться в воздухе, отпускаю - SO переходит в лог.0. А дальше все под строгим контролем МК. RESET драйвера имеет внутреннюю подтяжку к питанию. Учитывая это, учитывая, что когда МК готов к управлению, он передергивает RESET, мне эта идея кажется сомнительной, но я попробую. Разные ларьки были. Один ларек - это алиэкспресс) Второй - наш отечественный барыга из Чебоксар) У меня такой вопрос.. Схемотехнику и плату я уже 10 раз проверил, но вдруг.... хочу без платы подпаяться к микросхеме, может быть даже к следующей, которую достану. Тупо подать питание, подергать CS и посмотреть, что творится на SO в плане переключения в Z-состояние и в логический режим. Можно ли для такой простой задачи пренебречь принципами топологии и трассировки, то бишь проверить микросхему в условиях навесного монтажа? Если я минус питания подпаяю к брюху микросхемы, а 4 GND по углам проигнорирую, микросхема не обидится?
  7. Контроллер - китайский модуль. Там все в порядке с обвязкой. ЧТо качается драйвера - резистор там нужен для подтяжки открытого стока выхода FAULT, на работу микросхемы его наличие или отсутствие не влияет. КОнденсатор есть, правда он не 47 nF, а 470 nF, но я не думаю, что это критично, припаян очень близко к микросхеме. Я сейчас даже померял напряжение именно на его контактах, все нормально, он на питании сидит.
  8. Сделал и так, как вы сказали, и по другому - тупо подключал CS к земле и к +3 вольт, +5 вольт. Ни 5, ни 3 вольт на CS не переводят SO в Z состояние. Зато подключение RESET к GND - переводит. Но, допустим, предположим, что раз SO у нас не в Z, то CS каким-то образом, внутри микросхемы, притянуто к земле, то есть микросхема выбрана. Почему не идет эхо? Купить, что ли, для верности, еще одну микросхему и попробовать....
  9. Тот факт, что МК, тем не менее, притягивает CS к нулю, что-нибудь значит?
  10. В общем, выяснилась странная вещь. - У меня SO в логическом 0 независимо от CS. Была первая мысль, что сгорел какой-нибудь выходной транзистор, создав замыкание на массу. Но если на RESET подать 0, то SO переводится в Z-состояние. То есть нет реакции на изменение CS. Я проверял напряжение непосредственно на CS пине - оно меняется, но SO в Z не переходит. Как думаете, неисправность микросхемы? Тут ведь уже не скажешь, что я как-то неправильно SPI настроил, базовая штука не работает - перевод SO в Z при снятии выбора микросхемы. При этом сама функция перевода в Z, как таковая работает, при других условиях. Вывод - микросхема невосприимчива к CS? Ошибки монтажа тоже исключены -SO к земле ничто принудительно не тянет, проверено, до CS сигнал доходит, тоже проверено....
  11. Вот: 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 притянуто к нулю, причем драйвером притянуто (на входе контроллера честное болтание ноги в воздухе)
  12. Друзья, есть еще идеи? Ума не приложу, в чем дело. две микросхемы пробовал (предполагая, что первая неисправна) - бестолку.
  13. Одну ошибку нашел - у меня на RESET после старта ноль подавался, а надо единицу. Исправил - больше нет висящей в воздухе линии, драйвер держит ее в нуле. Питание подается, мерял на на ноге микросхемы. PRG не имеет отношения к обмену по SPI.
  14. Я счел включение эха более прогнозируемым по результату действием. А режим диагностики включал - тоже нули. Но вот что интересно. Настроил я SPI на Only master. То есть, перевел SI контроллера в высокоомный режим. И вот что получил Синяя -это SO драйвера. Если коснуться пальцем щупа, то оциллограмма прыгает. То есть линия SO в воздухе. Видно что внутри контроллера что-то происходит, какие-то переключения синхронно с клоком, причем возмущения на линии зависят от того, что на входе (1 или 0) но на линию SO они сильно не влияют. Как будто эта линия в высокоомном состоянии.
  15. поменял: Получил следующую осциллограмму На SO драйвера все та же тишина. Проверил так, на всякий случай, не тянет ли эту линию к нулю контроллер или еще что-то - не подтвердилось, при подаче 1 на RESET драйвера SO перешел в высокоомное состояние. Что-то я не пойму.... Режим эха должен включаться в следующем CS-периоде. То есть, нужно подать команду, передернуть CS и получим эхо. Вместе с тем написано, что CS сбрасывает регистры. Так как получить это эхо?
  16. Запоздалое спасибо за советы. Сделал плату, спаял.... никак микросхема не хочет отзываться на команды от SPI. Есть такая команда там (страница 23 даташита, ссылка на который в первом посте) То есть нужно отправить 16 бит - два байта 0xA000 и на SO получим эхо. У меня эха нет - выход в лог.0. Схема вот Код вот: static void MX_SPI1_Init(void) { /* SPI1 parameter configuration*/ hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_16BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } -------------------------------------- HAL_GPIO_WritePin(GLOBAL_RESET_GPIO_Port, GLOBAL_RESET_Pin, GPIO_PIN_RESET); HAL_Delay(50); HAL_GPIO_WritePin(GLOBAL_RESET_GPIO_Port, GLOBAL_RESET_Pin, GPIO_PIN_SET); // СБРАСЫВАЕМ ДРАЙВЕР HAL_GPIO_WritePin(TLE_CS_GPIO_Port, TLE_CS_Pin, GPIO_PIN_RESET); //CS вниз HAL_Delay(10); rg=0xA0; // ЗАДАЕМ КОМАНДУ ПЕРЕКЛЮЧЕНИЯ В РЕЖИМ SPI - эха dt=0x00; // ПО БАРАБАНУ, ЧТО ЗДЕСЬ БУДЕТ while(1) { dtt=(uint16_t)rg<<8| dt; // это чтоб на ходу, через отладчик менять SPI посылку HAL_SPI_Transmit(&hspi1, (uint8_t*)&dtt, 1, 5000); HAL_Delay(1); } В результате на линии, по которой в контроллер идут данные от драйвера постоянный ноль. Если абстрагироваться от кода, вот осцилллограмма с SCK линией, вроде все синхронно: Питание на микросхеме есть, сигналы проходят (щупал осциллографом на пинах микросхемы). Что не так?
  17. Нужно согласовать по SPI контроллер STM32 (3.3 вольт) и TLE6240 (5 вольт). CS, SCK и SO, то есть 3 линий мне хватит. 5-вольтовый ответ от TLE6240 STMка стерпит. Посоветуйте что-нибудь доступное в современных условиях. Желательно в корпусе с шагом 1.27 P.S. Я ведь правильно понял, что без согласования это https://www.infineon.com/dgdl/TLE6240GP_V3_1_1.pdf?fileId=db3a304412b407950112b426974b39f1 не будет работать с STM32?
  18. Это не всегда работает Это пока в поле зрения наблюдателя только Земля и Солнце. Стоит только найти третье, независимое от Земли и Солнца тело, сразу станет ясно что и вокруг чего вращается. Если бы днем на фоне Солнца были видны звезды и другие планеты, геоцентрическая теория рухнула бы намного раньше.
  19. Ваша же ссылка на вики P.S. Я, если что, не спорю и не настаиваю - просто констатирую неоднозначность понятий)
  20. То есть, вес = m*а А чего тогда интересного происходит на орбите или в свободном падении, что 100кг*9.8 м/с.кв. вдруг становится равным нулю? То что вы привели - это сила притяжения. Она не меняется под возддействием силы Архимеда. А вот на опору действует результирующая, то есть сила притяжения за вычетом силы Архимеда - и есть вес согласно самым первым строкам по вашей ссылке. Об этом еще Джеймс Кэмерон предупреждал в 1984 году)
  21. Это означает лишь то, что нет оснований считать ответ правильным. Не "ответ неправильный", а нет оснований считать правильным, это как "виновен", "невиновен" и "вина недоказана". Хехе) Я задал этот вопрос чату жопэтэ. Получилась дискуссия
  22. Давайте пофилософствуем, даже не вдаваясь в детали того, какое из определений верно и почему. Если существует два определения, то нельзя говорить, что ответ, основанный на одном из них неправильный. Он равнозначен альтернативному, как минимум. Если же вы считаете, что правильным является то определение веса, используя которое Архимедова сила окажется за кадром, то скажите, чем оно будет отличаться от массы и как с позиции и этого определения объяснить невесомость? НА мой взгляд правильно определение, согласно которому вес - это сила, которая действует на опору, препятствующую падению. Второе определение, на которое вы намекаете - это сила тяжести. Хотя это и считается синонимом веса, но все же это разные вещи. Чтобы было понятнее - в состоянии невесомости вес становится равен нулю, а сила тяжести не меняется.
  23. Все могло быть. Я врач, в 2000 году готовился к экзамену по патологической физиологии. Билет №1, вопрос №1 - "Понятие болезни. Причины болезней". Открываю учебник 1987 года, читаю: "Причиной болезней в империалистических странах является капитализм".
  24. Говорят, что у Ванги сбывалось около 68 процентов предсказаний) Нет, не шлагбаум) Автоматическая поливалка для дачи. Протокол связи - чтоб можно было расписание менять и включать полив при желании вне очереди. Ну и некая телеметрия, чтоб понимать - сработал ли клапан, заработал ли насос, не пуст ли накопительный бак. Так что никому не прилетит по машине.
×
×
  • Создать...