реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> I2C HAL DS2482, Работа с ds2482 средствами HAL STM
simark1979
сообщение Jan 31 2018, 06:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Здравствуйте, подключен датчик температуры ds1820 через ds2482

Кому нибудь удавалось работать с ds2482 средствами Stm32 HAL драйверов?

Подскажите плиз, никак не могу дать ума. Протоколом ds2482 предусмотрены повторные старты/побайтное чтение чтение

Судя по всему нужно использовать функции:
HAL_I2C_Master_Sequential_Transmit_IT(...)
HAL_I2C_Master_Sequential_Receive_IT(...)

Но документации на эти функции толком нет.
Инструментально отдебажить шину нечем, исходники драйверов смотрел, но там возможны неявные генерации start/stop на аппаратном уровне (толком непонятно).

Если есть инфа, по работе этих функций (интересует что конкретно происходит на шине, если эти функции вызывать в разных режимах:
- I2C_FIRST_FRAME
- I2C_NEXT_FRAME
- I2C_FIRST_AND_LAST_FRAME
- I2C_LAST_FRAME

Или если есть опыт работы с ds2482 через HAL, покажите как.

Просидел два дня(

Сообщение отредактировал simark1979 - Jan 31 2018, 06:50
Go to the top of the page
 
+Quote Post
sadat
сообщение Jan 31 2018, 10:37
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



На этом форуме люди ценят своё время - поэтому ожидать готовых исходников не стоит.

Надо смотреть в примерах от St варианты использования i2c шины (не могу подсказать точно, т.к. не знаю тип исп. процессора)

Я использую программный обработчик i2c при работе с мелкими порциями данных.
В идеале - свой собственный обработчик 1Wire, чем мост в виде ds2482.

Искать гуглем "i2c stm32 hal" и смотреть чужой код. Думать.

Как будут более конкретные вопросы - будут более конкретные ответы.
Go to the top of the page
 
+Quote Post
pitt
сообщение Jan 31 2018, 12:52
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Забыть про Куб, выучить матчасть. Примеры работы с периферией для STM32 без Cube/SPL в сети имеются в достаточном количестве - было бы желание...


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
0men
сообщение Jan 31 2018, 13:14
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 7-05-05
Пользователь №: 4 819



без осциллографа пытаться скрестить слона и носорога? это фантастика
Go to the top of the page
 
+Quote Post
Forger
сообщение Jan 31 2018, 13:17
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 146
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(simark1979 @ Jan 31 2018, 09:50) *
Просидел два дня(

Мало! biggrin.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
simark1979
сообщение Jan 31 2018, 16:38
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Цитата(sadat @ Jan 31 2018, 13:37) *
На этом форуме люди ценят своё время - поэтому ожидать готовых исходников не стоит.

Надо смотреть в примерах от St варианты использования i2c шины (не могу подсказать точно, т.к. не знаю тип исп. процессора)

Я использую программный обработчик i2c при работе с мелкими порциями данных.
В идеале - свой собственный обработчик 1Wire, чем мост в виде ds2482.

Искать гуглем "i2c stm32 hal" и смотреть чужой код. Думать.

Как будут более конкретные вопросы - будут более конкретные ответы.


Естественно, я не просто сидел два дня, конечно же я смотрел примеры и гуглил.
Примеры с вышемупомянутыми функциями нашлись только у куба и не совсем, то, что нужно.
А гугл ничего полезного не выдает.
Сегодня, забрал лог анализатор у товарища. Буду с ним сегодня смотреть.

Что касается своего обработчика 1-w вместо моста, я бы с этим согласился, но в свое время на нём настоял один из сотрудников, продукция находится уже в продаже, выкинуть невозможно.

Извините, что спросил без конкретики.
Я просто думал, у кого-то есть опыт, он бы понял в чем проблема.

Цитата(0men @ Jan 31 2018, 16:14) *
без осциллографа пытаться скрестить слона и носорога? это фантастика



Осцилограф-то есть, но декодировать цифру на нём - это садомазо

Цитата(pitt @ Jan 31 2018, 15:52) *
Забыть про Куб, выучить матчасть. Примеры работы с периферией для STM32 без Cube/SPL в сети имеются в достаточном количестве - было бы желание...


Извините, как было раньше, я не знаю, но на сегодняшний момент Cube + HAL работают вполне хорошо (по крайней мере с обратным я не сталкивался)
Что касается низкоуровнего программирования - я его противник. Низкий уровень считаю оправдан - только там где без него не обойтись.
В своё время у меня был сотрудник, который рассуждал подобным образом и любитель писать собственную ось.
Мы с ним постоянно ругались, потому что все делал в разы дольше и менее качественно, чем это можно было делать.
В общем кому как, но я считаю это не конкурентный подход.

Сообщение отредактировал simark1979 - Jan 31 2018, 16:50
Go to the top of the page
 
+Quote Post
0men
сообщение Jan 31 2018, 16:52
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(simark1979 @ Jan 31 2018, 19:38) *
Осцилограф-то есть, но декодировать цифру на нём - это садомазо


Что там декодировать то? Пару байт? Ваша задача правильно написать принцип записи байта и чтения байта. На этом все
Go to the top of the page
 
+Quote Post
simark1979
сообщение Jan 31 2018, 17:06
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Цитата(0men @ Jan 31 2018, 19:52) *
Что там декодировать то? Пару байт? Ваша задача правильно написать принцип записи байта и чтения байта. На этом все


Если бы пару байт.....
Я тут с анализатором сижу, башка уже кипит..... wacko.gif
У этой ds2482 протокол идиотский (нужны повторные стартовые посылки во время передачи), а не просто послать или принять байт (с этим я бы я сюда не писал biggrin.gif )
Вопрос в том, как этого добиться от стандартного драйвера

Сообщение отредактировал simark1979 - Jan 31 2018, 17:16
Go to the top of the page
 
+Quote Post
0men
сообщение Jan 31 2018, 17:28
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(simark1979 @ Jan 31 2018, 20:06) *
Если бы пару байт.....
Я тут с анализатором сижу, башка уже кипит..... wacko.gif
У этой ds2482 протокол идиотский (нужны повторные стартовые посылки во время передачи), а не просто послать или принять байт (с этим я бы я сюда не писал biggrin.gif )
Вопрос в том, как этого добиться от стандартного драйвера


под повторными вы подразумеваете Repeated START Condition?

// Write both Design Capacity bytes starting at 0x4A
data[1] = 0x46;
data[2] = 0x11;
while(HAL_I2C_Master_Transmit(&I2cHandle, (uint16_t)0xaa, &data[1], 2, 100)!= HAL_OK);
data[1] = 0x47;
data[2] = 0x30;
while(HAL_I2C_Master_Transmit(&I2cHandle, (uint16_t)0xaa, &data[1], 2, 100)!= HAL_OK);

исправлено: Repeated здесь не будет, но скажите страницу в доке где он так необходим? Строку с Repeated можно разбить на 2 отдельные посылки

Сообщение отредактировал 0men - Jan 31 2018, 17:33
Go to the top of the page
 
+Quote Post
Forger
сообщение Jan 31 2018, 17:59
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 146
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(simark1979 @ Jan 31 2018, 19:38) *
Мы с ним постоянно ругались .... В общем кому как, но я считаю это не конкурентный подход.

А ставить мост 1Wire-I2C, где скорее всего прекрасно можно было вообще обойтись без него, по-вашему это - "конкурентный подход"?
Глядите, сколько гемора он принес, и это помимо занимаемого места на плате и доп. цены.
Если изделий изготовлено несколько штук, то я бы нафик выпаял из них всех эти чудо-мосты и аккуратно закоротил бы одну из ног I2C и 1Wire (опытные монтажницы сделают так, что и не заметите этого).
А уже софтовый 1Wire поднимается с полпинка (дергаем программно ногой, где раньше был аппаратный I2C).

С другой стороны под эту чудо микрульку есть готовые исходники и примеры.
Тут делов-то на один вечер, чтобы отладить и еще на один вечер чтобы все причесать к культурном виду.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
simark1979
сообщение Jan 31 2018, 18:41
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Цитата(0men @ Jan 31 2018, 20:28) *
под повторными вы подразумеваете Repeated START Condition?

// Write both Design Capacity bytes starting at 0x4A
data[1] = 0x46;
data[2] = 0x11;
while(HAL_I2C_Master_Transmit(&I2cHandle, (uint16_t)0xaa, &data[1], 2, 100)!= HAL_OK);
data[1] = 0x47;
data[2] = 0x30;
while(HAL_I2C_Master_Transmit(&I2cHandle, (uint16_t)0xaa, &data[1], 2, 100)!= HAL_OK);

исправлено: Repeated здесь не будет, но скажите страницу в доке где он так необходим? Строку с Repeated можно разбить на 2 отдельные посылки



Да, имеется ввиду Repeated START Condition.
Только HAL_I2C_Master_Transmit кроме старта и отправки данных генерит STOP в конце). А он протоколом не предусмотрен

вот код:
while(HAL_I2C_Master_Transmit(&hi2c1, 0x30, out_buff, 1, 10)!= HAL_OK);
while(HAL_I2C_Master_Transmit(&hi2c1, 0x30, out_buff, 1, 10)!= HAL_OK);

А это поймал анализатор)



Впрочем, сейчас выясняется, что в документации на ds2482 не указано, что СТОП не мешает. Просто красавцы!

Цитата(Forger @ Jan 31 2018, 20:59) *
А ставить мост 1Wire-I2C, где скорее всего прекрасно можно было вообще обойтись без него, по-вашему это - "конкурентный подход"?



А ds2482 поставил как раз поставил, товарищ о котором я упоминал выше
Когда он обновлял ПО у него начались сбои с эмуляцией 1-w через уарт (хотя до этого работало)
Он начал наставивать на этом мосту, я сильно ругался с ним, т.к. платы уже были разведены под uart (нужно было вешать сопли)
Но любил заниматься шантажом и уперся.....
Вот такая вот история...
А теперь, я взял Cube + Hal + FreeRTOS и получается все ГОРАЗДО быстрей!

Сообщение отредактировал simark1979 - Jan 31 2018, 18:44
Go to the top of the page
 
+Quote Post
Forger
сообщение Jan 31 2018, 18:55
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 146
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(simark1979 @ Jan 31 2018, 21:41) *
Когда он обновлял ПО у него начались сбои...
... А теперь, я взял Cube + Hal + FreeRTOS и получается все ГОРАЗДО быстрей!
Чего-то я не понял - два программиста для одной железки? cranky.gif

Цитата
Вот такая вот история...
Грустная история sad.gif
Обычно в конторах двух конфликтующих разрабов "разносят" по разным проектам и кабинетам.
А тут - судя по всему, все наоборот ...
Если не секрет, то просветите. А то вдруг пригодится на будущее wink.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
simark1979
сообщение Jan 31 2018, 19:06
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Цитата(Forger @ Jan 31 2018, 21:55) *
Чего-то я не понял - два программиста для одной железки? cranky.gif

Грустная история sad.gif
Обычно в конторах двух конфликтующих разрабов "разносят" по разным проектам и кабинетам.
А тут - судя по всему, все наоборот ...
Если не секрет, то просветите. А то вдруг пригодится на будущее wink.gif



Немного не так было)
Я хозяин конторы, программировать умел на начальном уровне, но из-за нехватки времени нанял программиста, ПО писал он. У меня были другие задачи.
Но товарищ затащил проект в болото (по причине изобретений велосипедов) и ввиду болезненного самолюбия любил заниматься шантажом.
Вот и расстались. Теперь занимаюсь этими вопросами я.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jan 31 2018, 19:13
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 146
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(simark1979 @ Jan 31 2018, 22:06) *
по причине изобретений велосипедов ....

Ваши слова сильно напомнили мне одну тему в этой ветке: https://electronix.ru/forum/index.php?showtopic=144401 biggrin.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
simark1979
сообщение Jan 31 2018, 19:23
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 14-03-09
Из: Краснодарский край
Пользователь №: 46 094



Цитата(Forger @ Jan 31 2018, 22:13) *
Сильно напомнило мне эту тему: https://electronix.ru/forum/index.php?showtopic=144401 biggrin.gif


Щас будете еще больше смеяться rolleyes.gif

Когда я взял его исходники и начал разбираться что и как, я лазил в инете и наткнулся на это https://geektimes.ru/post/293505/
Когда читал, удивлялся, что очень всё похоже на наше blink.gif
А когда прочитал до конца, обнаружил, что автор ОН самый. maniac.gif
Если цензура не зарубит) я это классифицирую как "промышленный онанизм"

Сообщение отредактировал simark1979 - Jan 31 2018, 19:31
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2018 - 03:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.152 секунд с 7
ELECTRONIX ©2004-2016