Size: a a a

2021 February 11

AI

Andrey Io in Embedded Group
Maxim Khodnenko
А вы пробовали пошагово в отладчике этот момент посмотреть? В регистре сразу после исполнения команды скидывается бит? Возможно условие для его взведения сохраняется и поэтому он возвращается в 1
И да, там условия два, по даташиту: пойман стоп извне, попытка поднять sda не удалась. Линия висит в воздухе, на осциллографе оба sda, scl наверху
источник

MK

Maxim Khodnenko in Embedded Group
Andrey Io
И да, там условия два, по даташиту: пойман стоп извне, попытка поднять sda не удалась. Линия висит в воздухе, на осциллографе оба sda, scl наверху
Из условий при которых возникает потеря арбитража, оба выглядят как-то слабо правдоподобно. Sda подтянута к питанию резисторами (ну не могли же ее случайно к земле притянуть), а стоп условие создать некому
источник

AI

Andrey Io in Embedded Group
Maxim Khodnenko
Это вразрез с даташитом идёт. Что-то не так, 1 это занятое состояние шины
В смысле, я становлюсь отладчиком, там busy=1. Отсоединяю слейв, на осцилле линия вверху. Записываю отладчиком , пардон ошибся, нолик в этот бит, он сбрасывается. С lost arb такое не прокатывает, хотя казалось бы
источник

AI

Andrey Io in Embedded Group
Maxim Khodnenko
Из условий при которых возникает потеря арбитража, оба выглядят как-то слабо правдоподобно. Sda подтянута к питанию резисторами (ну не могли же ее случайно к земле притянуть), а стоп условие создать некому
Если только слейв не пытается стать мастером. Допускаю, что он пытается
источник

AI

Andrey Io in Embedded Group
источник

MK

Maxim Khodnenko in Embedded Group
Andrey Io
В смысле, я становлюсь отладчиком, там busy=1. Отсоединяю слейв, на осцилле линия вверху. Записываю отладчиком , пардон ошибся, нолик в этот бит, он сбрасывается. С lost arb такое не прокатывает, хотя казалось бы
То есть если в программе будет строка MDR_I2C->STA &= ~(1<<5); и в отладчике выполнить шаг и выполнить эту инструкцию, то даже так не скинется?
источник

AI

Andrey Io in Embedded Group
Перед отвалом линию здорово колбасит. Но тут вопрос в другом. Предположим, по каким-то не зависящим от нас причинам потерялся арбитраж. Что делать?
источник

AI

Andrey Io in Embedded Group
Maxim Khodnenko
То есть если в программе будет строка MDR_I2C->STA &= ~(1<<5); и в отладчике выполнить шаг и выполнить эту инструкцию, то даже так не скинется?
Момент, попробую
источник

MK

Maxim Khodnenko in Embedded Group
Andrey Io
Перед отвалом линию здорово колбасит. Но тут вопрос в другом. Предположим, по каким-то не зависящим от нас причинам потерялся арбитраж. Что делать?
Уйти в прерывание, отключить i2c, заново настроить параметры или пробежаться по ним и проверить что все ок, заново включить i2c и работать дальше? Ну я так думаю. Ещё можно какую нибудь запись в отладочный выход скинуть или в лог записать что произошел отвал, но я тупенький и пока не знаю как принято
источник

MK

Maxim Khodnenko in Embedded Group
Прерывание на потерю арбитража там кстати есть
источник

MK

Maxim Khodnenko in Embedded Group
Можно вот в нем проверять статус и дальше либо махать флажком что все ок, либо бить в бубен и орать что отвалился слейв
источник

AI

Andrey Io in Embedded Group
Maxim Khodnenko
Уйти в прерывание, отключить i2c, заново настроить параметры или пробежаться по ним и проверить что все ок, заново включить i2c и работать дальше? Ну я так думаю. Ещё можно какую нибудь запись в отладочный выход скинуть или в лог записать что произошел отвал, но я тупенький и пока не знаю как принято
Не сработало. Я, в общем, уже пытался раньше, сейчас еще раз убедился. И в основном коде и в прерывании, бит не сбрасывается. Состояние MDR_I2C:CTR:EN_I2C не влияет.  При отключенном тактировании все регистры модуля считываются как 0, логично. Но при возврате тактирования все значения регистров возвращаются в том же виде, что и до отключения.
источник

MK

Maxim Khodnenko in Embedded Group
Andrey Io
Не сработало. Я, в общем, уже пытался раньше, сейчас еще раз убедился. И в основном коде и в прерывании, бит не сбрасывается. Состояние MDR_I2C:CTR:EN_I2C не влияет.  При отключенном тактировании все регистры модуля считываются как 0, логично. Но при возврате тактирования все значения регистров возвращаются в том же виде, что и до отключения.
Отлаживаете в кейле?
источник

AI

Andrey Io in Embedded Group
Эклипс, jlink
источник

MK

Maxim Khodnenko in Embedded Group
Эээ нет, в это я не полезу)
источник

AI

Andrey Io in Embedded Group
Попробую вообще не обращать на него внимания. Может сам модуль не станет затыкаться. Как-нибудь сымитирую программно
источник

AI

Andrey Io in Embedded Group
Maxim Khodnenko
Эээ нет, в это я не полезу)
Да там все не так страшно, как рассказывают. Пойдем
источник

MK

Maxim Khodnenko in Embedded Group
Andrey Io
Да там все не так страшно, как рассказывают. Пойдем
Ненене, дяденька, меня из кейла вытащить нельзя, даже не старайтесь)
источник

NK

ID:0 in Embedded Group
Переслано от Ekaterina Pripoten
#job #вакансия #санкт-петербург #embedded #senior #fulltime

Кого ищем: Embedded SW Engineer
Локация: Санкт-Петербург
Занятость: full time, офис, возможна удаленная работа

Приветствую!
Ищутся Embedded SW Engineer в R&D центр компании ARRIVAL в Санкт-Петербурге, где разрабатывается электроника и софт для коммерческого электрического транспорта в соответствие со стандартами функциональной безопасности.

Направления, куда ищем:
☝️ System Software: разработка низкоуровневых библиотек и системного ПО под МК SPC58 (драйвера, протоколы, системы логирования, самодиагностики, загрузчики)
🤟 Human Machine Interface: разработка прошивок для контроллеров smart- экранов, различных touch points под МК STM32, SPC58, NXP

Кого ищем:
💪 Отличное знание языка C.
💪 Опыт и желание покрывать свой код unit-тестами.
💪 Опыт разработки встраиваемого ПО и отладки проектов на реальном железе с помощью аппаратных средств разработки (отладчики, осциллографы, логические анализаторы и т. д).
💪 Отличное знание периферийных модулей современных микроконтроллеров: DMA, UART, SPI, таймеры, PWM и т.д.
💪 Опыт работы с системами контроля версий.
💪 Знание цифровой и аналоговой схемотехники.
💪 Знание алгоритмов и структур данных.
💪 Знание английского языка на уровне чтения технической документации/ письменной коммуникации.
👏 Знание автомобильного интерфейса CAN как преимущество.
👏 Опыт разработки в соответствие с требованиями функциональной безопасности как преимущество.

Припотень Екатерина
Telegram: @Pripoten
e-mail: pripoten@arrival.com
источник

D

Dmitry Kazakov in Embedded Group
ID:0
Переслано от Ekaterina Pripoten
#job #вакансия #санкт-петербург #embedded #senior #fulltime

Кого ищем: Embedded SW Engineer
Локация: Санкт-Петербург
Занятость: full time, офис, возможна удаленная работа

Приветствую!
Ищутся Embedded SW Engineer в R&D центр компании ARRIVAL в Санкт-Петербурге, где разрабатывается электроника и софт для коммерческого электрического транспорта в соответствие со стандартами функциональной безопасности.

Направления, куда ищем:
☝️ System Software: разработка низкоуровневых библиотек и системного ПО под МК SPC58 (драйвера, протоколы, системы логирования, самодиагностики, загрузчики)
🤟 Human Machine Interface: разработка прошивок для контроллеров smart- экранов, различных touch points под МК STM32, SPC58, NXP

Кого ищем:
💪 Отличное знание языка C.
💪 Опыт и желание покрывать свой код unit-тестами.
💪 Опыт разработки встраиваемого ПО и отладки проектов на реальном железе с помощью аппаратных средств разработки (отладчики, осциллографы, логические анализаторы и т. д).
💪 Отличное знание периферийных модулей современных микроконтроллеров: DMA, UART, SPI, таймеры, PWM и т.д.
💪 Опыт работы с системами контроля версий.
💪 Знание цифровой и аналоговой схемотехники.
💪 Знание алгоритмов и структур данных.
💪 Знание английского языка на уровне чтения технической документации/ письменной коммуникации.
👏 Знание автомобильного интерфейса CAN как преимущество.
👏 Опыт разработки в соответствие с требованиями функциональной безопасности как преимущество.

Припотень Екатерина
Telegram: @Pripoten
e-mail: pripoten@arrival.com
По зарплатной ветке сориентируйте пожалуйста
источник