simark1979 0 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба Здравствуйте, подключен датчик температуры 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, покажите как. Просидел два дня( Изменено 31 января, 2018 пользователем simark1979 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sadat 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба На этом форуме люди ценят своё время - поэтому ожидать готовых исходников не стоит. Надо смотреть в примерах от St варианты использования i2c шины (не могу подсказать точно, т.к. не знаю тип исп. процессора) Я использую программный обработчик i2c при работе с мелкими порциями данных. В идеале - свой собственный обработчик 1Wire, чем мост в виде ds2482. Искать гуглем "i2c stm32 hal" и смотреть чужой код. Думать. Как будут более конкретные вопросы - будут более конкретные ответы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
let's see 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Забыть про Куб, выучить матчасть. Примеры работы с периферией для STM32 без Cube/SPL в сети имеются в достаточном количестве - было бы желание... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба без осциллографа пытаться скрестить слона и носорога? это фантастика Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Просидел два дня( Мало! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
simark1979 0 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба На этом форуме люди ценят своё время - поэтому ожидать готовых исходников не стоит. Надо смотреть в примерах от St варианты использования i2c шины (не могу подсказать точно, т.к. не знаю тип исп. процессора) Я использую программный обработчик i2c при работе с мелкими порциями данных. В идеале - свой собственный обработчик 1Wire, чем мост в виде ds2482. Искать гуглем "i2c stm32 hal" и смотреть чужой код. Думать. Как будут более конкретные вопросы - будут более конкретные ответы. Естественно, я не просто сидел два дня, конечно же я смотрел примеры и гуглил. Примеры с вышемупомянутыми функциями нашлись только у куба и не совсем, то, что нужно. А гугл ничего полезного не выдает. Сегодня, забрал лог анализатор у товарища. Буду с ним сегодня смотреть. Что касается своего обработчика 1-w вместо моста, я бы с этим согласился, но в свое время на нём настоял один из сотрудников, продукция находится уже в продаже, выкинуть невозможно. Извините, что спросил без конкретики. Я просто думал, у кого-то есть опыт, он бы понял в чем проблема. без осциллографа пытаться скрестить слона и носорога? это фантастика Осцилограф-то есть, но декодировать цифру на нём - это садомазо Забыть про Куб, выучить матчасть. Примеры работы с периферией для STM32 без Cube/SPL в сети имеются в достаточном количестве - было бы желание... Извините, как было раньше, я не знаю, но на сегодняшний момент Cube + HAL работают вполне хорошо (по крайней мере с обратным я не сталкивался) Что касается низкоуровнего программирования - я его противник. Низкий уровень считаю оправдан - только там где без него не обойтись. В своё время у меня был сотрудник, который рассуждал подобным образом и любитель писать собственную ось. Мы с ним постоянно ругались, потому что все делал в разы дольше и менее качественно, чем это можно было делать. В общем кому как, но я считаю это не конкурентный подход. Изменено 31 января, 2018 пользователем simark1979 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Осцилограф-то есть, но декодировать цифру на нём - это садомазо Что там декодировать то? Пару байт? Ваша задача правильно написать принцип записи байта и чтения байта. На этом все Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
simark1979 0 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба Что там декодировать то? Пару байт? Ваша задача правильно написать принцип записи байта и чтения байта. На этом все Если бы пару байт..... Я тут с анализатором сижу, башка уже кипит..... У этой ds2482 протокол идиотский (нужны повторные стартовые посылки во время передачи), а не просто послать или принять байт (с этим я бы я сюда не писал ) Вопрос в том, как этого добиться от стандартного драйвера Изменено 31 января, 2018 пользователем simark1979 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба Если бы пару байт..... Я тут с анализатором сижу, башка уже кипит..... У этой ds2482 протокол идиотский (нужны повторные стартовые посылки во время передачи), а не просто послать или принять байт (с этим я бы я сюда не писал ) Вопрос в том, как этого добиться от стандартного драйвера под повторными вы подразумеваете 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 отдельные посылки Изменено 31 января, 2018 пользователем 0men Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Мы с ним постоянно ругались .... В общем кому как, но я считаю это не конкурентный подход. А ставить мост 1Wire-I2C, где скорее всего прекрасно можно было вообще обойтись без него, по-вашему это - "конкурентный подход"? Глядите, сколько гемора он принес, и это помимо занимаемого места на плате и доп. цены. Если изделий изготовлено несколько штук, то я бы нафик выпаял из них всех эти чудо-мосты и аккуратно закоротил бы одну из ног I2C и 1Wire (опытные монтажницы сделают так, что и не заметите этого). А уже софтовый 1Wire поднимается с полпинка (дергаем программно ногой, где раньше был аппаратный I2C). С другой стороны под эту чудо микрульку есть готовые исходники и примеры. Тут делов-то на один вечер, чтобы отладить и еще на один вечер чтобы все причесать к культурном виду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
simark1979 0 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба под повторными вы подразумеваете 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 не указано, что СТОП не мешает. Просто красавцы! А ставить мост 1Wire-I2C, где скорее всего прекрасно можно было вообще обойтись без него, по-вашему это - "конкурентный подход"? А ds2482 поставил как раз поставил, товарищ о котором я упоминал выше Когда он обновлял ПО у него начались сбои с эмуляцией 1-w через уарт (хотя до этого работало) Он начал наставивать на этом мосту, я сильно ругался с ним, т.к. платы уже были разведены под uart (нужно было вешать сопли) Но любил заниматься шантажом и уперся..... Вот такая вот история... А теперь, я взял Cube + Hal + FreeRTOS и получается все ГОРАЗДО быстрей! Изменено 31 января, 2018 пользователем simark1979 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Когда он обновлял ПО у него начались сбои... ... А теперь, я взял Cube + Hal + FreeRTOS и получается все ГОРАЗДО быстрей! Чего-то я не понял - два программиста для одной железки? :cranky: Вот такая вот история...Грустная история :( Обычно в конторах двух конфликтующих разрабов "разносят" по разным проектам и кабинетам. А тут - судя по всему, все наоборот ... Если не секрет, то просветите. А то вдруг пригодится на будущее ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
simark1979 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Чего-то я не понял - два программиста для одной железки? :cranky: Грустная история :( Обычно в конторах двух конфликтующих разрабов "разносят" по разным проектам и кабинетам. А тут - судя по всему, все наоборот ... Если не секрет, то просветите. А то вдруг пригодится на будущее ;) Немного не так было) Я хозяин конторы, программировать умел на начальном уровне, но из-за нехватки времени нанял программиста, ПО писал он. У меня были другие задачи. Но товарищ затащил проект в болото (по причине изобретений велосипедов) и ввиду болезненного самолюбия любил заниматься шантажом. Вот и расстались. Теперь занимаюсь этими вопросами я. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба по причине изобретений велосипедов .... Ваши слова сильно напомнили мне одну тему в этой ветке: https://electronix.ru/forum/index.php?showtopic=144401 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
simark1979 0 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба Сильно напомнило мне эту тему: https://electronix.ru/forum/index.php?showtopic=144401 Щас будете еще больше смеяться :rolleyes: Когда я взял его исходники и начал разбираться что и как, я лазил в инете и наткнулся на это https://geektimes.ru/post/293505/ Когда читал, удивлялся, что очень всё похоже на наше :blink: А когда прочитал до конца, обнаружил, что автор ОН самый. :maniac: Если цензура не зарубит) я это классифицирую как "промышленный онанизм" Изменено 31 января, 2018 пользователем simark1979 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться