Desenix
Dec 5 2007, 07:32
купили кит с этой МС, подключили к МК и начали ее мучать.
Почти сразу вылез первый баг.
При циклическом чтении регистров IRMS VRMS одного канала, их значение читается не правильно (скачет на порядки), изменение задержек и частоты обмена, не привели к положительному результату, при этом регистр температуры читался нормально. Было применено двойное чтение регистров, т.е. два раза подряд читался один и тот же регистр, в результате брался второй результат чтения, который всегда был стабилен.
Второй баг вылез чуть позже.
Подключил я активную нагрузку к киту, и давай подбирать PHCAL приводя реактивную энергию к нулю, и вот тут началось самое интересное, да, читаю регистры энергии в режиме со сбросом 2-3 раза в секунду,
регистр реактивной энергии постоял около нуля и вдруг началось 0 -> 255 -> -256 -> 0 -> 255 -> -256 .....
естественно накопленная реактивная энергия тутже скакать начала.
Увожу в любую сторону выравнивание фаз тока и напряжения, как тут же эти скачки пропадают и колебания регистра сводятся к амплитуде 1-2 единицы.
Кто с подобным сталкивался.
В AD написал, пока до них еще не дошло, вопросы наводящие задают, типа где купил, что купил итд, пытаются понять не китайское ли
VadimPlotnikov
Dec 28 2007, 08:41
По признакам очень похоже на некорректную работу цифрового интерфейса. Так что нет смысла нечего мерить и устанавливать, будет читается ерунда. Проверяй как всегда времянку, количество тактовых импульсов, последовательность работы, инверсию байт и т.д.
Desenix
Dec 28 2007, 09:10
проверял и не раз, паузы не ставил разве что между битами, т.к. SPI аппаратный. Скорость менял, фронты крутил, связь только пропадала.
И почему-то глюк чтения только у двух регистров одного канала, если читать разные, то глюка нет, т.е. AVRMS и BIRMS.
Это говорит о глюке именно AD.
Кстати, этот глюк вылез и в ADE7753.
А вот с энергиями глюк ни чем не объяснить, кроме как глюком AD.
Alex03
Jan 16 2008, 05:23
Использовали ADE7758, никаких глюков в чтении/записи не замечено.
Если с чем и пришлось немного повозиться то это с вычислением/пониманием масштабных коэффициентов на
путях_следования_сиглалов.
Desenix
Jan 16 2008, 06:14
Alex03 т.е. если читать регистры IRMS VRMS одного канала поочереди, то глюков не наблюдается с непонятными скачками их значений от выборки к выборке ? Или вы их не используете ?
Мне например надо выводить на дисплей текущее значение тока и напряжения, а не только энергию считать.
А вот если читать регистры каналов вперемешку, то проблемы нет.
А на счет масштабных коэффициентов, все проще будет сделано, для начала прикинуты эти коэффициенты, а потом откалиброваны, по каждому значению.
Кстати, а Вы калибровали МС, например PHCAL ? и каким образом ? я контролировал реактивку в режиме чтения со сбросом, о результате сообщил в начале темы.
Alex03
Jan 16 2008, 10:21
При отладке я одни и теже регистры не читал по очереди, читал скопом несколько.

потом в штатном режиме читались активные мощности и ещё читалось/писалось только то, что запрошено извне (отладочно настроечный УАРТ). Задача была упрощённая - только активная мощность, небольшой разбег фаз был не критичен. Калибровали только напряжение и токи отдельно по фазам, т.е. приводили их к какимто попугаям Вольт и Ампер на ед. младшего разряда. Ну а масштаб мощности по документации - как произведение этих попугаев на масштабные коэффициенты цепочек блоков микросхемы - цифра она и есть цифра.
Вопрос: а Вы минимум 1.1мкс между посылкой байта команды и чтением данных выдерживаете (t9 с figure 4)?
Desenix
Jan 16 2008, 10:36
я пробовал задержки между байтами вставлять, и между посылками.
Толку ноль, ошибка повторяется.
Вот осциллограмма обмена с счетчиком, если что разглядите

наглядно видно что второе и третье чтение отличаются, хотя читается один и тот же регистр практически без задержек.
суть такая 1(чтение)=ошибка, 2(чтение и последующие)=норм
Alex03
Jan 16 2008, 11:18
Да в принципе видно, сначала читаеца AIRMS потом 2 раза AVRMS.
Времена какие не этом рисунке? Или хотябы какая частота SPI?
Что на входе напряжения фазы А? Напряжение и частота.
Какие конфигурационные регистры?
Мож переполнение гденить?
да и полярность клока в неактивном состоянии я бы сделал как в датише
Desenix
Jan 16 2008, 11:45
какие напряжение, ток и частота, уже не помню, т.к. это с кита снималось, и уже давно. Ток снимали через трансформатор 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
интересует повторяемость.
Alex03
Jan 16 2008, 15:34
Если частота клока 1МГц, то при Вашей полярности клока в неактивном состоянии - t9 в любом случае около 500нс, т.е. требование t9 > 1.1мкс Вы не выполняете.
Чтобы это проверить снизте скорость клока до 250кГц.
Desenix
Jan 16 2008, 16:06
уже говорил и не раз, снижал как частоту клоков, так и паузы между байтами делал километровыми, не помогло.
Если есть возможность, повторите эксперимент.
И потом, почему этот глюк проявляется только в той комбинации что я указал ?
на счет клоков, давно пробовал другие режимы МК, в них не получал ответа от МС счетчика. Хотя завтра еще попробую, но сомневаюсь что это решит проблему. Ведь при чтении регистров в другой последовательности глюка не наблюдал.
Alex03
Jan 17 2008, 04:09
Цитата(Desenix @ Jan 16 2008, 21:06)

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

Цитата
И потом, почему этот глюк проявляется только в той комбинации что я указал ?
Ни Вы ни я не знаем как врутри микросхемы реализован SPI интерфейс, так что нечего тут гадать, а обмен по SPI должен соответствовать документации. При этом если у вас чтото не работало при другой полягности клока, то ищите в этом ошибку.
Desenix
Jan 21 2008, 06:56
повторил эксперимент вечером в ПТ, т.к не было времени отписаться пишу сегодня.
Схему для кита на ADE7758 собирать не стал, провел эксперимент на ADE7753.
Перевернул клоки, сдвинул фазу, обмен заработал, хотя в прошлый раз не получилось. После установки задержки между командой и данными в более чем 5мкс глюк с обменом пропал. Странно что он проявляется только с этими двумя регистрами.
Если задержку уменьшать, до 2.5мкс, то проявляется эффект смешивания каналов, когда подаю на вход 220В, а ток 0, то в измерениях виден рост тока до 5А в пересчете(в норме показывает 0.05), а напряжение занижено 180В.
Если же задержку между командой и данными убрать, то каналы путаются, т.е. напряжение около нуля, а ток очень большой, показания не помню, важна суть. Прям аналоговый регулятор выходит.
Остался баг с реактивной энергией при чтении со сбросом и переходе ее через ноль. Он решением проблемы чтения, не решается, поглядим что будет на новой МС.
Alex03
Jan 21 2008, 11:54
Цитата(Desenix @ Jan 21 2008, 11:56)

Схему для кита на ADE7758 собирать не стал, провел эксперимент на ADE7753.
Перевернул клоки, сдвинул фазу, обмен заработал, хотя в прошлый раз не получилось. После установки задержки между командой и данными в более чем 5мкс глюк с обменом пропал. Странно что он проявляется только с этими двумя регистрами.
Если задержку уменьшать, до 2.5мкс, то проявляется эффект смешивания каналов, когда подаю на вход 220В, а ток 0, то в измерениях виден рост тока до 5А в пересчете(в норме показывает 0.05), а напряжение занижено 180В.
Если же задержку между командой и данными убрать, то каналы путаются, т.е. напряжение около нуля, а ток очень большой, показания не помню, важна суть. Прям аналоговый регулятор выходит.
Ну так для 7753 t9 >= 4мкс, так что Ваш опыт лишь подтверждает инфу из датиша.

(для 7758 >= 1.1мкс)
Цитата(Desenix @ Jan 16 2008, 13:36)

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

наглядно видно что второе и третье чтение отличаются, хотя читается один и тот же регистр практически без задержек.
суть такая 1(чтение)=ошибка, 2(чтение и последующие)=норм
вроде - как-то была такая же ситуация с первым неправильным чтением, если при начале работы с ADE7758 в момент установки CS в "0" сигнал SCLK в этот момент находился в "1" (а не в "0" как на рисунках в даташите)....
Роджер
Aug 11 2008, 18:55
Уважаемые спецы,помогите разобраться в одном вопросе.Я по образованию метролог(Одесский техникум измерений),но так вышло,что работаю и работал в энергетике-от простого электрика до энергетика,счетчики часто ремонтирую сам.По сути-приходит знакомый электрик и просит собрать мультивибратор с прерывателем на 1 МГц,я спросил зачем-он долго мялся в результате сказал,что надо снизить показания в электронном счетчике,мол два конца на какую то микру и он в обратку считает,подробностей не выдал,даже за

.Счетчик насколько знаю на ADE 7758+микроконтроллер,по-моему типа AT90.Понимаю,что не совсем в тему,но может кто-то раскроет секрет?Интерес чисто спортивный,Даташит на ADE смотрел,но уровень не тот,не разобрался,думаю секрет именно в ней.Заранее благодарен за помощь
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.