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

Подскажите по HAL stm32 и I2C

Ого тут страсти разгорелись )

У меня тоже всю страницу можно было залить одни потоком по автоинкременту, но так как 

это было без dma хотя и по прерываниям, пришлось менять только изменяемые цифры, что существенно сократило обьем передаваемый информации.

И на HAL я не прогаю, на С или асм, просто халявная прога под гироскуреную плату забугорные деятели написали на HAL и пришлось в нем копаться.

Также spi тоже по моему нет в моем дисплеее или он очень далеко закопан.

В догонку если передавать быстро по i2c то виснет сам дисплей.

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

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


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

HAL - это не язык программирования, а в данном случае название библиотеки. А вообще, HAL = Hardware Abstraction Level.

SPI в дисплее есть на шлейфе FPC, там все три интерфейса присутствуют. ЧИТАЙТЕ МАНУАЛЫ! 
Однако, на плате, на которую приклеен дисплей и распаян шлейф, как правило выводится на внешние штыревые контакты только один из трех интерфейсов. Тип интерфейса переключается перемычками, а недостающие линии можно подпаять прямо к шлейфу.

По прерываниям можно тоже прекрасно работать, фон прерываний не такой уж и высокий. Частоты I2C в 100 кГц для 128х64 хватит, чтобы обеспечить более-менее норм FPS.

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


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

2 hours ago, EdgeAligned said:

Частоты I2C в 100 кГц для 128х64 хватит, чтобы обеспечить более-менее норм FPS.

Дело не в fps а в том что мк еще управляет мотором, формирует на нем синусоиду и следит за током.

То что hal это язык я не говорил читайте внимательнее.

Ну и нет ту никакаго spi на шлейфе, разведен только i2c а под каплю лезть никто не будет.

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


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

2 часа назад, whale сказал:

Дело не в fps а в том что мк еще управляет мотором, формирует на нем синусоиду и следит за током.

Если что - с 99.9% вероятностью ваш МК не формирует никакой "синусоиды на моторе". Почти 100% там - векторное управление. Не формирующее никаких "синусоид".

2 часа назад, whale сказал:

Ну и нет ту никакаго spi на шлейфе, разведен только i2c а под каплю лезть никто не будет.

Тогда по-крайней мере, для повышения помехоустойчивости, лучше сделать SCL = push-pull. Хотя это и не совсем честно. Но если ваш SSD не использует clock stretching, то работать будет. И работать - помехоустойчивее.

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


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

20 minutes ago, jcxz said:

Почти 100% там

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

 

20 minutes ago, jcxz said:

И работать - помехоустойчивее.

А аск  как получать ?

 

Кстати сомневаюсь что  spi помехоустойчивее i2c, в i2c хотя бы есть какие то фильтры, проверки сбоев итд, в spi это ничего нет и если тупо гнать поток в дисплей неизвестно что он будет делать при помехах а насчет

сопротивления линии то можно уменьшить резисторы подтяжки до 500ом например.

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

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


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

2 hours ago, whale said:

Дело не в fps а в том что мк еще управляет мотором, формирует на нем синусоиду и следит за током.

То что hal это язык я не говорил читайте внимательнее.

Ну и нет ту никакаго spi на шлейфе, разведен только i2c а под каплю лезть никто не будет.

Суть проблемы уже утеряна. Надо начинать сначала.

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

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


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

14 минут назад, whale сказал:

Я сам формирую синусоиду по таблице.

Зачем???  :shok:

14 минут назад, whale сказал:

А аск  как получать ?

А какое отношение ACK имеет к SCL???  :shok:   Вы точно знаете - что такое I2C?

14 минут назад, whale сказал:

Кстати сомневаюсь что  spi помехоустойчивее i2c, в i2c хотя бы есть какие то фильтры

Какие такие фильтры? Пруфы можно?

Вы хотя бы сперва узнайте - что такое I2C, где там ACK и для чего он нужен. Как осуществляется приём-передача на I2C. Прочитайте учебники по теме: "Что такое push-pull вывод?" "Что такое OK вывод?"

Когда сможете более-менее внятно всё это понимать, тогда будете пытаться судить о помеухоустойчивости.

14 минут назад, whale сказал:

сопротивления линии то можно уменьшить резисторы подтяжки до 500ом например.

и не надо повторять чужой вздор. До кучи ещё почитайте про "Закон Ома".

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


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

10 minutes ago, jcxz said:

А какое отношение ACK имеет к SCL

АСК по дата точно но дисплей может прижимать scl в некоторых случаях.

Фильтры встроены в блок i2c мк читайте мануалы.

10 minutes ago, jcxz said:

До кучи ещё почитайте про "Закон Ома"

До кучи вы общаться не умеете походу, с таким гонором очень быстро окажетесь в бане.

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

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


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

28 минут назад, whale сказал:

АСК по дата точно но дисплей может прижимать scl в некоторых случаях.

Внимательнее читайте то, на что отвечаете:

1 час назад, jcxz сказал:

Тогда по-крайней мере, для повышения помехоустойчивости, лучше сделать SCL = push-pull. Хотя это и не совсем честно. Но если ваш SSD не использует clock stretching, то работать будет. И работать - помехоустойчивее.

И ещё раз - прочитайте учебник по I2C. Чтобы хотя бы основные понятия понимать.

28 минут назад, whale сказал:

Фильтры встроены в блок i2c мк читайте мануалы.

Очевидно вы не знаете о чём говорите. Могу сказать, что точно так же фильтры встроены в сигналы SPI и в любые другие сигналы. И даже пруфы могу привести, в отличие от вас.

Читайте мануалы, очевидно что вы их даже не открывали.

28 минут назад, whale сказал:

До кучи вы общаться не умеете походу

Здесь техническй форум. А не форум домохозяек. Здесь не надо нести галиматью, и утверждать что-то, совершенно не разбираясь в вопросе.

 

PS: Для не знающих Закон Ома, могу только сказать, что сопротивление push-pull-выхода обычной ноги такого МК как STM32F4, составляет примерно 50 Ом или менее. Чтобы ОК выход мог обеспечить такое же подавление помехового импульса, сопротивление подтяжки должно быть примерно такой же величины. Что практически невозможно. Отсюда вытекает невозможность обеспечить на I2C помехоустойчивость, сравнимую с помехоустойчивостью однонаправленного SPI.

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


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

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

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

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

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

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

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

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

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

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