LINUX.ORG.RU
решено ФорумTalks

Продукция Nordic Semiconductor — говно (но это не точно).

 , , nordic semiconductor, nrf52,


2

2

Мира и благополучия всем честным эмбеддерам-линуксоидам!

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

Поделие данной фирмы, конкретно NRF52832 не может даже нормально посчитать импульсы от внешнего источника с частотой 4МГц. То у него события на смену уровня на пине не всегда срабатывают, то наоборот, два перывания дёргает.

И вообще, список официально признанных багов для контроллера, выпущенного в продакшен уже не первой ревизией, неприлично большой:

https://infocenter.nordicsemi.com/topic/errata_nRF52832_Rev3/ERR/nRF52832/Rev...

Перемещено xaizek из development

★★★★★☆

Последнее исправление: Harald (всего исправлений: 2)
Ответ на: комментарий от Harald

Выше уже написал: постоянные траблы по питанию. То ему 0,1В отклонения уже критичепски, то просто живет своей жизнью на непонятной частоте. Нужно было примитивно шим организовать, так и тот через задницу работал. Я так понял в каждой партии свои приколы. А такое я отправляю фтопку.

Oberstserj ★★
()
Ответ на: комментарий от Harald

У вас то, что вы называете «внешний источник» - от чего запитан? Питание с мк общее или отдельное? Развязка гальваническая есть? Обеспечьте для чистоты эксперимента или одно или другое.

vaddd ★☆
()
Ответ на: комментарий от vaddd

Тоже по USB, от того же компа. Земля соединена припаянным проводком, до 10 см.

Развязка гальваническая есть? Обеспечьте для чистоты эксперимента или одно или другое.

Нету. Могу для эксперимента запитать от батареи, из интереса. Но сабж уже списан и в разработке применяться не будет.

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от Harald

Но сабж уже списан и в разработке применяться не будет.

Аллилуйя!

Oberstserj ★★
()
Ответ на: комментарий от Harald

Могу для эксперимента запитать от батареи, из интереса.

Тут это никому кроме вас не интересно )

Но сабж уже списан и в разработке применяться не будет.

Быстро вы сдались на элементарной проблеме. А из каких вообще соображений заказчик первоначально решил делать на нордиках?

vaddd ★☆
()
Ответ на: комментарий от vaddd

Быстро вы сдались на элементарной проблеме.

А зачем жрать кактус, когда есть фуагра?

Oberstserj ★★
()
Ответ на: комментарий от vaddd

Быстро вы сдались на элементарной проблеме.

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

А из каких вообще соображений заказчик первоначально решил делать на нордиках?

не знаю, рекламы начитался наверное

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от Harald

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

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

vaddd ★☆
()
Ответ на: комментарий от vaddd

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

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от Harald

Тогда лучше начните как тут уже советовали - с влияния параметров входного сигнала - уровни, частота, фронты. И вообще не исключено что с режимами мк непорядок - какой-нибудь активный дебаг или трэйсинг может мешать. Если точно не планируете с ними работать, то не слишком много смысла в это погружаться

Кстати, что за хрень на верхнем графике третьего скрина? Какой-то выпад немного левее середины

vaddd ★☆
()
Последнее исправление: vaddd (всего исправлений: 1)
Ответ на: комментарий от vaddd

Тогда лучше начните как тут уже советовали - с влияния параметров входного сигнала - уровни, частота, фронты.

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

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

Сейчас питание было от батарейки, с отключённым от компа USB. Так что никакого дебага или трейсинга не должно быть.

Кстати, я начинаю догадываться, зачем они поместили батарейный отсек и батарейку в комплекте на девборду :)

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от Harald

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

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

vaddd ★☆
()
Ответ на: комментарий от vaddd

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

т.е. руки из жопы :D

но поддержка в режиме использования, т.е. в приведённом тестовом коде ничего некорректного не нашла же )

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от vaddd

ща все тут будете смеяться, но с другим МК точно такая же проблема наблюдается :D

скорее всего помехи по питанию, хз как фиксить

все девайсы, включая осциллограф, подключены к компу по USB

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от Harald

Никто смеяться не будет. Это замечательно. Предлагаемый порядок действий:

а. Все девайсы запитать от аккумуляторов, более-менее обеспечив чистоту эксперимента по питанию. К реальному питанию вернетесь когда/если убедитесь, что дело в питании.

б. По возможности связь с компьютером - через гальваническую развязку. По возможности связь между устройствами - тоже через гальваническую развязку. Компект разнообразных быстродействующих опторазвязок для эмбеддера - must have.

Если эффект остается, то:

ц. Заняться вплотную тем самым внешним источником сигнала. Заменить его на какой-нибудь заведомо корректный источник с более-менее регулируемыми параметрами

д. Исключить дебильные причины типа, что ваш компьютерный инструментарий не подходит для таких целей. Например либо источник, либо счетчик отвлекается на что-то еще, выключаясь на посторонние прерывания, посторонние задачи и пропуская при этом нужные счетные фронты. В связи с этом еще раз спрошу (вы не ответили) - что за хрень на верхнем графике третьего скрина? Выглядит как скачок фазы на 180 в исходной импульсной последовательности. Само оно может и не страшно, но полагаю, что такого быть не должно.

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

vaddd ★☆
()
Ответ на: комментарий от Harald

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

vaddd ★☆
()
Последнее исправление: vaddd (всего исправлений: 1)
Ответ на: комментарий от Harald

Для начала исключить банальную перезагрузку МК (проверить добавив какое-то действие при включении и мониторить его).

Но вообще без схемы тебе тут только телепаты могут погадать, ну и vaddd.

Кстати, получается не

Продукция Nordic Semiconductor — говно.

а у тебя руки кривые. Качай навыки.

tyakos ★★★
()
Последнее исправление: tyakos (всего исправлений: 1)
Ответ на: комментарий от vaddd

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

тестовый код для Atmel SAM4S, настраивает таймер-счётчик и переключает пин PA16 по достижению счётчиком 37

в реальной осциллограмме на каждый выходной имппульс от 21 до 42 входных

#include "asf.h"
#include "stdio_serial.h"
#include "user_board.h"

void TC0_Handler(void)
{
        if ((tc_get_status(TC0, 0) & TC_SR_CPCS) == TC_SR_CPCS) {
                ioport_toggle_pin_level(PIO_PA16_IDX);
        }
}

int main(void)
{

        sysclk_init();
        wdt_disable(WDT);
        pmc_disable_all_periph_clk();
        pmc_disable_udpck();

        sysclk_enable_peripheral_clock(ID_PIOA);
        //sysclk_enable_peripheral_clock(ID_PIOC);
        sysclk_enable_peripheral_clock(ID_TC0);

        ioport_init();
        ioport_set_pin_mode(PIO_PA4_IDX, IOPORT_MODE_MUX_B);
        ioport_disable_pin(PIO_PA4_IDX);

        ioport_set_pin_level(PIO_PA16_IDX, 0);
        ioport_set_pin_dir(PIO_PA16_IDX, IOPORT_DIR_OUTPUT);


        tc_init(TC0, 0,
                        TC_CMR_TCCLKS_XC0 /* Clock Selection */
                        | TC_CMR_ETRGEDG_NONE
                        | TC_CMR_CPCTRG

        );


        NVIC_DisableIRQ(TC0_IRQn);
        NVIC_ClearPendingIRQ(TC0_IRQn);
        NVIC_SetPriority(TC0_IRQn, 0);
        NVIC_EnableIRQ(TC0_IRQn);

        tc_write_rc(TC0, 0, 37);
        tc_enable_interrupt(TC0, 0, TC_IER_CPCS);
        tc_start(TC0, 0);
        while(1)
        {
        }
}

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от vaddd

Вы именно пропускаете иногда фронт сигнала переполнения счетчика.

он же унутре контроллера, в микросхеме бегает

новый МК бегает на 120МГц, запас по циклам на выполнение прерывания точно есть

Harald ★★★★★☆
() автор топика
Ответ на: комментарий от vaddd

https://ibb.co/CmsSv5r

если посмотреть на оба сигнала крупным планом, на них обоих явно накладывается какой-то другой сигнал частотой поменьше

здесь сверху выходной импульс, снизу входной

и у входного амплитуда слегка периодически колеблется, на скрине видно, если присмотреться

может и артефакты оцифровки, хз

Harald ★★★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.