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

psyhologic

Свой
  • Постов

    73
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные psyhologic


  1. On 12/6/2018 at 7:32 AM, Arlleex said:

    ИМХО, разделение земель и прочая фигня - лишь фантазии каких-то теоретиков.

    На практике разделение земель может привести к полной или частичной неработоспособности девайса.

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

    Проектировать плату нужно с пониманием структуры девайса: где питание будет проходить, где силовые токи от него потекут, куда возвратные токи от микросхем потекут и т.д., и не трассировать их там, где находятся нежные аналоговые каскады АЦП/ЦАП.

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

     

    On 12/5/2018 at 6:28 PM, Roman Kuznecov said:

    Разделение питания контроллера обязательно для чёткого аналогово сигнала?

    Я вот это имею ввиду: 

     

     

    https://github.com/hologram-io/nova-hardware/blob/master/Hologram_Nova_Schematic_J.pdf

    Вот вам хороший пример с разделением земли "на ножке" SMPS для USB.

    http://www.ti.com/lit/ds/symlink/tps63020.pdf

     

     

  2. 3 часа назад, inventor сказал:

    а что входит?

     

    не является ли этот волатайл

    такой же ненужной штукой

    как auto в C?

     

    В 03.12.2018 в 10:25, inventor сказал:

    static /*volatile*/ u32 LocalTime  @ ".fastdata" = 0;

    void Delay(int timer)
    {
       u32 Time = LocalTime;  
       while(LocalTime - Time < timer);
    }

    По определению:

    "Volatile - ключевое слово языков C/C++, которое информирует компилятор о том, что значение переменной может меняться из вне и что компилятор не будет оптимизировать эту переменную."

    Как следствие, он не выкинет бесполезный while block с "активным ожиданием". 

    https://en.wikipedia.org/wiki/Busy_waiting

    "Активное ожидание" в SMP среде само по себе затратно и обычно используется скорее как userspace оптимизация, до входа в kernel mode waiting.

    Хотя в мире однопоточных МК, я часто вижу использование активного ожидания.

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

  3. 16 минут назад, faelle сказал:

    Здравствуйте! Подскажите, пожалуйста, как правильно рассчитать ток потребления МК от источника. Нужно ли суммировать ток для VDD со всеми использующимися I/O. (к примеру к каждому пину будет подключено по светодиоду)?

    Ток потребления МК зависит от кода + периферии. И будет лежать между min и max указанные в datasheet.

    Вам действительно проще подключить амперметр (или лабораторный БП) к устройству.

  4. Это обычный RC фильтр, номиналы R и C подберите так, чтобы отрезать лишние высокие частоты (шум).

    Вот похожий на ваш вопрос - https://electronics.stackexchange.com/questions/144478/low-pass-filter-with-hall-effect-and-adc-help

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

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

     

  6. 2 минуты назад, jcxz сказал:

    Не обязательно. volatile также полезен в случае наличия нескольких bus-master в системе. Например: при использовании DMA-контроллера.

    Да вы правы, про DMA как-то даже в голову не пришло.

  7. Подобного рода "оптимизации" имеют ряд преимуществ и недостатков... язык предоставляет средство, инструмент.

    Если подобного рода оптимизации вынесены в platform / hardware specific модуль у которого нет внешних зависимостей - окей.

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

  8. В 20.11.2018 в 10:09, AlexandrY сказал:

    Для примера вот сколько мусора мы собрали за пару лет использования SD карт GoodRAM 

    Это из партии в пару сотен штук.

    1025270457_uSDGoogRAM.jpg.3d5746e7e8c8f3fc9327a6f7fa4d5e85.jpg

    Чаще всего у них просто перестают прозваниваться ноги по питанию.
    Но бывает рушиться вся файловая, но потом поддаются форматированию.  

    У Kingston такого не замечали.
    Так что на заметку. 

     

    Да вы правы, Бывают проблемы с ними, увы умирают без видимой причины ...

  9. 2 часа назад, AlexandrY сказал:

    Но WAL не решает проблему транзакций при записи на SD. Поэтому все тщетно. 
    Да и речь шла о файловой системе.
    А это значит файловое API с символьными именами, поиском по именам, копированием, переносом, добавлением, директориями и проч. атрибутикой.   
    Файловые сами по себе базы данных.
    Так что база данных поверх  базы данных будет сильный оверхед. 

     

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

    Overhead будет всегда, почти все СУБД хранят свои данные в виде файлов (данных и лога).

    Цитата

    Добрый день, коллеги! В приборе, которому могут неожиданно отключить питание, необходимо сохранять логи (файлы длиной 50 - 150 кб). Допускается потеря лога в момент отключения питания (либо другого сбоя), но не разрушение ФС вместе с остальными данными. Прибор сделан на базе Cortex-M4F. Используем FreeRTOS. Из журналируемых "свободных" решений нашёл только uc/FS. Может быть есть какие-либо ещё доступные ФС с такими возможностями, пригодными для применения в embedded? В целом, не требуется совместимости с FAT, хотя и желательно.

    Посоветуйте, пожалуйста, что-нибудь! Очень заранее благодарен!)))

     

  10. 1 час назад, Arlleex сказал:

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

    Последствия зависят от типа FS. https://ru.wikipedia.org/wiki/Журналируемая_файловая_система

  11. 14 минут назад, Arlleex сказал:

    Целостность данных в файловом представлении в момент выключения питания от качества карты не зависит ровно никак.

    Именно. WAL решает как раз на уровне транзакций записи в БД. 

    Минус SQLite - желательно её использовать всё таки с одного потока ... :) 

  12. Большой точности вы не добьетесь, так вне зависимости от .NET CLR.

    Задача выполняется в многозадачной среде.

    Но как улучшения - посмотрите на Spin Lock (nop based active wait) и управляйте работой GC в период пока вы будете делать sleep.

  13. ИМХО надо отталкиватся от спектра сигнала и смотреть на соотношение сигнал / шум на разных частотах. 

    Если нет обратной связи, вы можете попробовать ввести стартовый / конечный "калибровочный" фрейм, до начала передачи непосредственно данных, чтобы понимать noise / signal ratio.

    С монотонным шумом может помочь. Так же посмотрите в сторону аппаратной фильтрации звуковых частот (RC цепочка в самом примитивном виде или narrow band).

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

    https://www.researchgate.net/publication/4376433_Intelligent_detection_of_DTMF_tones_using_a_hybrid_signal_processing_technique_with_support_vector_machines

  14. Здравствуйте

    Прошу помощи !

    Есть Cadence Allegro 17.2 с известного сайта. 

    Но там нет hotfix для high DPI мониторов.

    В итоге интерфейс программы буквально разрывает.

    Нашёл способ с настройками Windows, но при этом, выглядит оно не очень.

    Помогите с хотфиксом и патчем пожалуйста.

    Screen Shot 2018-10-22 at 11.13.17 AM.png

    Screen Shot 2018-10-22 at 11.10.50 AM.png

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