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

купили кит с этой МС, подключили к МК и начали ее мучать.

 

Почти сразу вылез первый баг.

При циклическом чтении регистров IRMS VRMS одного канала, их значение читается не правильно (скачет на порядки), изменение задержек и частоты обмена, не привели к положительному результату, при этом регистр температуры читался нормально. Было применено двойное чтение регистров, т.е. два раза подряд читался один и тот же регистр, в результате брался второй результат чтения, который всегда был стабилен.

 

Второй баг вылез чуть позже.

Подключил я активную нагрузку к киту, и давай подбирать PHCAL приводя реактивную энергию к нулю, и вот тут началось самое интересное, да, читаю регистры энергии в режиме со сбросом 2-3 раза в секунду,

регистр реактивной энергии постоял около нуля и вдруг началось 0 -> 255 -> -256 -> 0 -> 255 -> -256 .....

естественно накопленная реактивная энергия тутже скакать начала.

Увожу в любую сторону выравнивание фаз тока и напряжения, как тут же эти скачки пропадают и колебания регистра сводятся к амплитуде 1-2 единицы.

 

Кто с подобным сталкивался.

В AD написал, пока до них еще не дошло, вопросы наводящие задают, типа где купил, что купил итд, пытаются понять не китайское ли :)

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


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

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

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


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

проверял и не раз, паузы не ставил разве что между битами, т.к. SPI аппаратный. Скорость менял, фронты крутил, связь только пропадала.

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

Это говорит о глюке именно AD.

Кстати, этот глюк вылез и в ADE7753.

 

А вот с энергиями глюк ни чем не объяснить, кроме как глюком AD.

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


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

Использовали ADE7758, никаких глюков в чтении/записи не замечено.

Если с чем и пришлось немного повозиться то это с вычислением/пониманием масштабных коэффициентов на путях_следования_сиглалов. :)

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


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

Alex03 т.е. если читать регистры IRMS VRMS одного канала поочереди, то глюков не наблюдается с непонятными скачками их значений от выборки к выборке ? Или вы их не используете ?

Мне например надо выводить на дисплей текущее значение тока и напряжения, а не только энергию считать.

А вот если читать регистры каналов вперемешку, то проблемы нет.

 

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

 

Кстати, а Вы калибровали МС, например PHCAL ? и каким образом ? я контролировал реактивку в режиме чтения со сбросом, о результате сообщил в начале темы.

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


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

При отладке я одни и теже регистры не читал по очереди, читал скопом несколько. :)

потом в штатном режиме читались активные мощности и ещё читалось/писалось только то, что запрошено извне (отладочно настроечный УАРТ). Задача была упрощённая - только активная мощность, небольшой разбег фаз был не критичен. Калибровали только напряжение и токи отдельно по фазам, т.е. приводили их к какимто попугаям Вольт и Ампер на ед. младшего разряда. Ну а масштаб мощности по документации - как произведение этих попугаев на масштабные коэффициенты цепочек блоков микросхемы - цифра она и есть цифра.

 

Вопрос: а Вы минимум 1.1мкс между посылкой байта команды и чтением данных выдерживаете (t9 с figure 4)?

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


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

я пробовал задержки между байтами вставлять, и между посылками.

Толку ноль, ошибка повторяется.

Вот осциллограмма обмена с счетчиком, если что разглядите :)

наглядно видно что второе и третье чтение отличаются, хотя читается один и тот же регистр практически без задержек.

суть такая 1(чтение)=ошибка, 2(чтение и последующие)=норм

post-141-1200479747_thumb.jpg

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


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

Да в принципе видно, сначала читаеца AIRMS потом 2 раза AVRMS.

 

Времена какие не этом рисунке? Или хотябы какая частота SPI?

Что на входе напряжения фазы А? Напряжение и частота.

Какие конфигурационные регистры?

Мож переполнение гденить?

 

 

 

да и полярность клока в неактивном состоянии я бы сделал как в датише

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


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

какие напряжение, ток и частота, уже не помню, т.к. это с кита снималось, и уже давно. Ток снимали через трансформатор 1:1000 и был он около 0.47А, резистор шутна 24Ом, напряжение было 6В, но делитель доработан, вместо 1К стоял 24Ом, а вместо 499к было вроде 1К. Могу ошибаться.

 

Частота клоков, была вроде 1мбит. в принципе время реальное на диаграмме. Можно посчитать.

 

Этот же глюк с чтением проявился и на 7753.

В результате читаю первый раз в мусор значение, второй и последующие суммирую и считаю среднее арифметическое. Читаю регистры при переходе через ноль 50раз/сек, и раз в секунду обсчитываю результирующее значение.

Если при таком раскладе не выкидывать первый отсчет при каждом чтении регистра, то ошибка накапливается и потом на выходе получаю левый ошибочный рез-тат. Долго не мог понять почему I/VRMSOS-ом не могу занулить значения.

 

Самое интересное, что если читать так AIRMS - BIRMS - AVRMS - BVRMS то ошибки не наблюдается, но т.к. мне нужен был только один канал, то пришлось городить огород.

 

вот такие у меня регистры

cmd_adc(0x93, 0x00, 1); // ADE7758 (0x13) OPMODE

cmd_adc(0x94, 0x24, 1); // ADE7758 (0x14) MMODE

cmd_adc(0x95, 0x00, 1); // ADE7758 (0x15) WAVMODE

cmd_adc(0x96, 0x04, 1); // ADE7758 (0x16) COMPMODE

cmd_adc(0x97, 0x48, 1); // ADE7758 (0x17) LCYCMODE

cmd_adc(0x98, 0x00, 3); // ADE7758 (0x18) IMR

cmd_adc(0xA3, 0x00, 1); // ADE7758 (0x23) GAIN

 

другие по дефолту, не трогал.

 

Alex03 у меня к вам вопрос, могли бы вы проверить данный глюк у себя в железке, почитать в цикле AIRMS - AVRMS - AVRMS и сравнить результаты первого и последующего чтения подряд одного регистра ?

а так же AVRMS - AIRMS - AIRMS

интересует повторяемость.

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


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

Если частота клока 1МГц, то при Вашей полярности клока в неактивном состоянии - t9 в любом случае около 500нс, т.е. требование t9 > 1.1мкс Вы не выполняете.

Чтобы это проверить снизте скорость клока до 250кГц.

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


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

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

Если есть возможность, повторите эксперимент.

И потом, почему этот глюк проявляется только в той комбинации что я указал ?

на счет клоков, давно пробовал другие режимы МК, в них не получал ответа от МС счетчика. Хотя завтра еще попробую, но сомневаюсь что это решит проблему. Ведь при чтении регистров в другой последовательности глюка не наблюдал.

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


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

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

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

Если есть возможность, повторите эксперимент.

Мне на это надо потратить пол дня (поиск всего железа и само тестирование) поэтому можно сказать нет возможности. :)

И потом, почему этот глюк проявляется только в той комбинации что я указал ?

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

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


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

повторил эксперимент вечером в ПТ, т.к не было времени отписаться пишу сегодня.

Схему для кита на ADE7758 собирать не стал, провел эксперимент на ADE7753.

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

Если задержку уменьшать, до 2.5мкс, то проявляется эффект смешивания каналов, когда подаю на вход 220В, а ток 0, то в измерениях виден рост тока до 5А в пересчете(в норме показывает 0.05), а напряжение занижено 180В.

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

 

Остался баг с реактивной энергией при чтении со сбросом и переходе ее через ноль. Он решением проблемы чтения, не решается, поглядим что будет на новой МС.

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


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

Схему для кита на ADE7758 собирать не стал, провел эксперимент на ADE7753.

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

Если задержку уменьшать, до 2.5мкс, то проявляется эффект смешивания каналов, когда подаю на вход 220В, а ток 0, то в измерениях виден рост тока до 5А в пересчете(в норме показывает 0.05), а напряжение занижено 180В.

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

Ну так для 7753 t9 >= 4мкс, так что Ваш опыт лишь подтверждает инфу из датиша. :)

(для 7758 >= 1.1мкс)

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


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

я пробовал задержки между байтами вставлять, и между посылками.

Толку ноль, ошибка повторяется.

Вот осциллограмма обмена с счетчиком, если что разглядите :)

наглядно видно что второе и третье чтение отличаются, хотя читается один и тот же регистр практически без задержек.

суть такая 1(чтение)=ошибка, 2(чтение и последующие)=норм

 

вроде - как-то была такая же ситуация с первым неправильным чтением, если при начале работы с ADE7758 в момент установки CS в "0" сигнал SCLK в этот момент находился в "1" (а не в "0" как на рисунках в даташите)....

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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