Pull to refresh
29
0.3

User

Send message

 x86 дает хотя бы свободу выбора ОС

пока что.

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

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

был вон какой-то проект по превращению плат от смартфонов в SBC, https://citronics.eu/ насколько живой не знаю.

линукс, не без блобов, но как-то живёт же на таких платах.

а ведь сколько этих труъ-линукс смартфонов было, что-то ни один не взлетел пока что.

ага, с x86 здорово получилось, особенно c intel ME / amd PSP

А не надо этот колхоз городить из T-коннекторов, в каждом устройстве должно быть по два разъёма типа езернетных или каких-нибудь 4p4c и последовательное соединение всех устройств в шину.

+1, а ещё можно вспомнить почему у езернета такая странная распиновка 1/2 <-> 3/6 и что там на месте 4/5 пары раньше было.

ну и 4p4c для CAN достаточно, а вероятность что кто-нибудь в него додумается воткнуть аналоговый телефон нынче исчезающе мала.

отличное видео про sdf https://www.youtube.com/watch?v=BFld4EBO2RE

на CPU вместо GPU raymarching будет конечно медленно и печально, но зато красиво.

Нельзя вот так просто взять и собрать устройство с разрешением 1/5 микровольта.

боромир.jpg

С одной стороны как бы да, просто два разных куска меди не из одной катушки вполне могут дать до 1мкВ/С термоЭДС, и просто подключив как попало в эту китайскую плату свой датчик можно легко получить "погодную станцию" вместо измерения нужного мкВ напряжения.

С другой стороны PSRR у сигма-дельта АЦП обычно какой-то запредельный, и чтобы изгадить измеряемый даже субмкВ сигнал неправильным питанием, землями и цифровым интерфейсом надо сильно постараться, и при измерении совсем уж НЧ сигналов все ВЧ помехи очень хорошо им дополнительно отфильтруются.

Вот собственные шумы различных вольтметров измеренные с закороткой на входе:

https://raw.githubusercontent.com/pavel212/noise/main/integrators_v.png

ad7195 который при усреднении в пару минут (0.01SPS) вполне дотягивается до 1нВ шумов, запитан был при этом тупо от +5 USB от ПК к которому был подключен, схема платы AD7195EBZ на сайте AD есть.

а ADS1263 на этом же графике, с теми же 6нВ/rtHz шумами на максимальном усилении встроенного PGA, это точно такие же китайские модули от waveshare как у автора, и питание на них сделано действительно как попало, то есть вообще никак. На графике они правда были запитаны аккуратно, но ради интереса я их напрямую в USB тоже втыкал, AVDD == +5VUSB, без каких-либо дополнительных фильтров, и шумы только процентов на 40-50% подрастали от даташитных значений, а с дополнительным LDO, +5USB->4.9V AVDD становились обратно как по даташиту.

Сигма дельта АЦП синхронизировать идея так себе, потому что это сброс цифрового фильтра и в результате измеренное напряжение - это некое среднее значение между t0 + N/Fs и t0 + (N+1)/Fs, где N в зависимости от фильтра около 3, 4, 5.

Хотя есть, например, ads1263 где это аккуратно внутрь всё спрятано и есть режим одиночного преобразования по дерганию за отдельную ногу START, и 1cycle settling фильтры.

Но имхо правильнее запустить АЦП в непрерывном режиме, а таймером в МК захватывать когда именно дергался DRDY и когда прилетал PPS, а потом сделать передискретизацию в нужные моменты времени

https://ru.dsplib.org/content/resampling_lagrange/resampling_lagrange.html

Давным-давно это решалось через их виртуальный kindle for PC, куда книжки скачивались без особого шифрования, единственная "секьюрность" была в хранении этого .azw файла на диске под именем типа QWEZCVURRASDFIHRFAD, который спокойно конвертировался в calibre во что-нибудь человеческое и закидывался на киндл через usb.

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

Интересно поменялось ли там что-нибудь за последние лет 5-10?

сделать

acc = (uint16_t) acc + data_in;

output_pin = !!(acc & 0x10000);

можно в любом микроконтролеере

вот аппноут двадцатилетней давности для каких-то недо8051: https://www.ti.com/lit/an/slyt076/slyt076.pdf

Ну mmap ведь тоже отнюдь не 6 байт выделит, а ту же выровененную ~4кБ страницу целиком.

Единственная разница что mprotect также разрешит исполнение тому что уже рядом с program_data[] (вроде вообще на стэке в данном конкретном примере, что делает это ещё более "безопасным") в пределах страницы оказалось.

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

вот тут https://habr.com/ru/articles/746658/ тоже самое через mprotect только потому что память под сгенерированный исполняемый код выделялась снаружи и лезть туда менять аллокатор на свой было лень.

Теперь мы добавили выделение памяти с помощью mmap с модификаторами доступа RWX (Read, Write, Execute), после в эту память мы скопировали наш байт-код

mprotect(2) вроде может поменять RWX для существующей страницы, без дополнительного выделения и копирования. Про выравнивание и размер страниц только надо не забывать.

Теоретически предел магнитной индукции материала NdFeB ~ 1,6 Тл"; Пять (~5 Тл) - это, мягко говоря, несколько больше.

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

Вот как раз 5Т при комнатной температуре https://cerncourier.com/a/record-breaking-magnet-has-five-tesla-field/ правда в зазоре 0.15мм всего

Производительность при этом выросла с единиц МФлопс до ТФлопс. Какое безобразие! Можно современному процессору зажать частоту до такого же потребления в пару Вт и всё равно будет порядка на 3 быстрее чем 486. Статическое потребление тоже слегка подросло с увеличением количества транзисторов, но оно как раз более тонким тех. процессом почти скомпенсировалось, учитывая во сколько раз выросло количество транзисторов.

Килоомы там когда сэмплирующая ёмкость на МГц щёлкает. 10пФ на 1МГц собственно 15кОм и будет.

А для измерения раз в секунду на входе ёмкости поди микрофарадные, так что вход АЦП не видно. Но в 15МОм с учётом микроамперных токов утечки входов всё равно верится с трудом.

блютус

И городить отдельно питание. Китайский же изолятор на ADUM3160 вроде не особо дороже этого "bluepill" стоит.

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

Впрочем и на AVR уножение (деление на константу) 16х16 будет каких-нибудь ~15 тактов, вместо 8 для x>>4. Да, там есть инструкция swap, но мы же не можем рисковать и надеятся на компилятор. А с учётом отсутсвия аппартных циклов и дополнительных шин для складывания/доставания данных из памяти (в отличии от нормальных dsp под такие задачи заточенных) общее быстродействие цикла for(;;i++) y[i]=y[i-1]+(x[i]-y[i-1])>>N; станет процентов на 10 быстрее на AVR, и чуть-чуть медленнее на нормальных архитектурах, ну и ещё и ценой ограничения коэффициентов только степенями 2. Поэтому "оптимизация" довольно сомнительная.

Без умножений.- это CIC фильтры http://www.dsplib.ru/content/cic/cic.html

А заменять умножения сдвигами в большинстве случаев довольно сомнительная "оптимизация", которую компилятор и сам сделает https://godbolt.org/z/s8KcrjK3E

Information

Rating
2,596-th
Registered
Activity