Идея в том, что и скратчпад (9 байтов), и id датчика (8 байтов) устроены так, что последний байт должен быть равен контрольной сумме предыдущих. Также это равносильно тому, что контрольная сумма всех байтов равна нулю.
Сейчас я для расчёта использую встроенную в avr-libc функцию, раньше использовал самописную. Может, пригодится.
Приветствую! прошу помочь выпросить у сей девайса хоть какие-нибудь данные. наблюдаю за шиной с помощью осциллографа, импульс присутствия имеется, байт кода команды так же вырисовывается.но в ответ тишина #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h>
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
внимательно изучите протокол обмена, а именно, тайм-слоты записи 1 и 0, а так же тайм-слоты чтения 1 и 0.
так-то я знаю, что проблема в тайм-слотах,задолбался втыкать в эти графики, от этого и пришел сюды. по счет чтения это отдельная тема! с записью что не так?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
вот, например, старенькая моя статеечка, не самый лучший образец, но для начала пойдет. смотрим на картинку и пробуем сопоставить с вашим кодом.
откуда вы взяли 75 мкс задержки при записи или чтении? приведите все задержки к нужным значениям, и все заработает. а не хотите - берите готовую библиотеку 1-wire и тупо пользуйтесь чужими наработками.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
вот, например, старенькая моя статеечка, не самый лучший образец, но для начала пойдет. смотрим на картинку и пробуем сопоставить с вашим кодом.
откуда вы взяли 75 мкс задержки при записи или чтении? приведите все задержки к нужным значениям, и все заработает. а не хотите - берите готовую библиотеку 1-wire и тупо пользуйтесь чужими наработками.
эту картинку уже до дыр насмотрел))) и статейку читал. парюсь я не над тем,чтоб разового попользоваться, а цель все досконально изучить и самому с нуля все написать....чужими наработками пользоваться неэффективно для обучения!
75 мкс это мой выбор в заданном интервале. даже на картинке написано что тайм-слот записи "0" от 60 мкс до 120 мкс вот мои 75 и находятся в заданном диапазоне или я не так чет понимаю?
вот с интернета еще нарыл Write 1. Master переводит шину в состояние лог. 0 на время от 1 до 15 мкс. Затем master отпускает шину на оставшееся время слота. Write 0. Этот сигнал показан на рис. 2. Master переводит шину в состояние лог. 0 на время как минимум 60 мкс, но не дольше 120 мкс.
1) датчик высылает один и то же код температуры при разрешении 9 бит и 12 бит. в чем существенный смысл разрешения,кто подскажет? 2) 5 старших битов старшего байта температуры они в любых случаях одинаковые? то есть разработчики по идее выделили на знак температуры 5 битов?
Последний раз редактировалось ROMan2947 Ср янв 11, 2017 18:57:35, всего редактировалось 1 раз.
1. Может конфигурацию неправильно задаете. Как выставляете 9-битный режим? Последовательность команд какая? Смысл в том, что при приемлемом разрешении в 0.5*С на конвертацию затрачивается почти на порядок меньше времени, чем в случае 12-битного режима.
2. Имеете в виду старшие 5 бит старшего байта температуры? Они всегда определяют знак температуры.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
1. Может конфигурацию неправильно задаете. Как выставляете 9-битный режим? Последовательность команд какая? Смысл в том, что при приемлемом разрешении в 0.5*С на конвертацию затрачивается почти на порядок меньше времени, чем в случае 12-битного режима.
2. Имеете в виду старшие 5 бит старшего байта температуры? Они всегда определяют знак температуры.
да их и имею, вопрос был для чего нужно 5 бит для знака???? когда можно было выделить один бит...разработчик так захотели или еще как то могут использоваться данные биты?
Последний раз редактировалось ROMan2947 Ср янв 11, 2017 18:56:25, всего редактировалось 1 раз.
[quote="Zhuk72"]1. У меня такая последовательность:
Код:
send_ds(0xCC); // Skip ROM send_ds(0x4E); // Write Scratchpad send_ds(0x00); // TH alarm send_ds(0x00); // TL alarm send_ds(0x1F); // Config. init_ds(); send_ds(0xCC); // Skip ROM send_ds(0x48); // Copy Scratchpad delay_ms(10); // Time required for writing to EEPROM.
по поводу пишется или нет, сомнений нет. так как данные всех байтов ROM я вывел на порт к которым подключил светодиоды, т. е. визуально вижу какой код записан в каждом байте. сравнил коды при разных режимах разрешения они оказались идентичными,вот мне и стало не понятно... он должен быть разным или нет?
Что вы выводите и как можете контролировать процессы ВНУТРИ датчика я не представляю. Я же не для красоты выложил свои команды. То, что вы делаете (в цитате выше) - неправильно. Посмотрите ДШ, там есть диаграмма, по которой и надо прошагать. Ну и читать описание работы внимательнее.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Что вы выводите и как можете контролировать процессы ВНУТРИ датчика я не представляю.
я считываю регистр конфигурации и вывожу код на порт МК и с помощью лампочек смотрю, что там хранится. при 9 битном режиме мне выводит 00011111, а при 12 01111111, что тут не понятного!?
Что вы выводите и как можете контролировать процессы ВНУТРИ датчика я не представляю. Я же не для красоты выложил свои команды. То, что вы делаете (в цитате выше) - неправильно. Посмотрите ДШ, там есть диаграмма, по которой и надо прошагать. Ну и читать описание работы внимательнее.
по счет команд и кто как командует датчиком это отдельная тема...главный вопрос остается в стороне... при одной и той же температуре меняется ли двоичный код температуры в зависимости от разрешения?
я считываю регистр конфигурации и вывожу код на порт МК и с помощью лампочек смотрю, что там хранится. при 9 битном режиме мне выводит 00011111, а при 12 01111111, что тут не понятного!?
Непонятно было первое описание процесса.
ROMan2947 писал(а):
...главный вопрос остается в стороне... при одной и той же температуре меняется ли двоичный код температуры в зависимости от разрешения?
Измеряйте, выводите сырые данные при разных режимах и сравнивайте. Можете и в Протеусе проверить, он эти датчики нормально симулирует.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
я считываю регистр конфигурации и вывожу код на порт МК и с помощью лампочек смотрю, что там хранится. при 9 битном режиме мне выводит 00011111, а при 12 01111111, что тут не понятного!?
Непонятно было первое описание процесса.
ROMan2947 писал(а):
...главный вопрос остается в стороне... при одной и той же температуре меняется ли двоичный код температуры в зависимости от разрешения?
Измеряйте, выводите сырые данные при разных режимах и сравнивайте. Можете и в Протеусе проверить, он эти датчики нормально симулирует.
придется экспериментировать....ну тем интереснее) спасибо!
Я уже проверил в Протеусе при шаге датчика 0.0625*С. При 9-битной конфигурации младшие 3 бита всегда в нуле. Выход изменяется (начиная с бита 3), когда прирост достигает 0.5*С, т.е. через каждые 8 шагов.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения