> буфер подставлять. Правда, у меня с USB знакомство больше с колокольни
> всяких 8051, поэтому довольно специфичный взгляд.Я на STM32 к usb пока тоже только прицеливаюсь, сложный гад: ftdi по жизни проще прилепить. Но на F1xx там есть некий выделеный буфер железки под это. Туда можно сложить добро, настроить что-то типа дескрипторов, железка сама по тому описанию будет таскать когда приспичит. Это без всякого DMA. А стеб в том что F1xx зачем-то сделали буфер общим для usb и can. Желающие сколхозить usb2can адаптер дико матерятся на этот фак(т).
> F100 — маркетологический огрызок, физически в F100~F103 один и тот же кристалл
> и всё там есть, разве что на заводе не тестировалось или не прошло тесты (по словам ST).
Именно F100 вроде все же физически другой. То что F101-103 одно и то же я просек. Там даже RAM и флеша одинаково везде вроде. Или вы хотите сказать что я в F100 даже usb найду? А куда он там разведен? Как в F103?
Почему я думаю что F100 другой кристалл? Вышел позже и F100 умеет некоторые вещи которых в F101-103 не было. Например, PLL можно сделать DIV+MUL, от 2 до 16 и синтез частоты там куда более продвинутый. Да, это всего лишь небольшое лишнее поле в одном из регистров, но я очень сомневаюсь F101-103 так обделили бы. А зачем так возможности чипа сливать? (помножить+поделить намного гибче чем только div/2 + mul как в 103).
> В общем-то, так все делают, но большинство жадных контор ещё и fuse'ами блокируют
> или доступными только из системного режима регистрами (см. PSoC4),
В F10x кстати замечено что-то типа фузов (options byte) в sys area. Конечно не документировано. Что бы это могло быть? Защита от записи system mem?
> а ST позволяет на свой страх и риск пользоваться. Причём, брать F100 (как и 101 или
> 102) уже давно нет никакого смысла:
Конкретно F100 мне попались за копейки и мне был интересен именно тот момент с MUL+DIV для странных экспериментов с синтезом частоты.
> если поначалу он и был дешевле F103, потом за счёт непопулярности он оказался
> уже даже дороже (цена при штучных поставках сильно выше, чем при больших партиях, в
> итоге получаются вот такие перекосы). Так что не аргумент.
См. выше про один из мелких но неприятных недостатков.
> Ну, он на самом-то деле не совсем постоянный, но набегами и их нужно быстро разгребать,
А чего мешает набеги в RAM скидывать? Особенно если монстрик с внешней шиной.
> т.е. растягивать передачу и обработку до начала следующего набега — не вариант.
Это кмк зависит от характера этого паттерна.
> Я, конечно, тот ещё самоучка с не очень прямыми лапками, но и фильтры,
> и повторители конечно же есть.
Не парьтесь, я из таких же :P. Там не в фильтре трабл а в том что adc заряжает свой кондер с частотой МГц, дико сажает сигнал, откуда конское требование к Rin источника сигнала. Не любая штука легко сэмплируется на мегагерц, увы. А толпа опампов с бандвизом несколько мгц тоже так себе.
> Олсо, 1 Msps — это же всего лишь сигналы до 100-200 кГц, очень скромно с т.з. аналоговых цепей.
По найквисту таки до 500.
> Шум на пару LSB присутствует, конечно,
Там и не пару LSB может быть если забыть про R источника.
> но как-то в моём манямирке получается лучше передать вместе с этими битами и потом
> эту информацию в обработке учесть (накопление, осреднение, программная фильтрация, вот
> это вот всё), чем отрезáть заранее.
Я вообще сделал это в IRQ от DMA c 2-буфером. У микрочипа есть дешевое и сердитое усреднение которое им ок даже для пика было.
>> А вот M0 с одной шиной, там интереснее.
> В каком смысле «интереснее»?
Профита от отсутствия команд вызывающих копирование больше. Смысл действа увеличивается. С флешом на I-bus он параллельно работал, профита меньше. Правда в шину DMA все-равно никогда не упрется, он же процу после трансфера цикл оставляет чтобы тот не встрял.
>> Ошибки CRC там не отменяли.
> Это да, но задержка при обнаружении такой ошибки (и последующей перепосылке) куда
> меньше, чем время реакции TCP/IP на потерянный/битый пакет.
Кому оно важно сроду юзают UDP, именно поэтому. Он к тому же сильно проще заодно.
> что между 12 и 480 Мбит/с есть ещё много интересных значений
> и этот провал не особо есть чем заполнить.
В принципе то да. Но все же.
> Это да, это существенная проблема. Даже глянул по даташиту: только до 148
> МГц разрешено выжимать из PLL3 на F1xx.
А кто такое PLL3? В F103 это вообще не заявлено, там формально только 1 PLL. Это чье? И в 103 оно физически есть? :D
> Воу-воу, не надо грязи, целочисленных реализаций кодеков (особенно MP3) более чем достаточно
> в природе. Конечно, на какой-нибудь эквалайзер или эффекты может и не
> хватить мощности (но это не точно, помню один проект…),
А что, хватает на декодирование мп3 в нормальном виде? Так, а урл примеров с таким нельзя? И сколько оно там мгц хотит?
>> A single 25 MHz crystal can clock the entire system and all peripherals including the
> Ethernet and USB OTG FS peripherals.
...и как это к MP3 относится? Это лишь к синтезу частот и ошибкам оных видимо.
> Но, да, комментарий «но производителю главное продать :) а потом не его
> проблемы» тут очень уместен.
Ну так именно, поэтому половина проектов - смотрите как мы автомобилем, вертолет! Мы правда не знаем сколько вы тренироваться будете, но так можно! Паааакупайте наши чипы!
> и они очень не хотели тратиться на что-либо новое ради этого проекта.
Возможно. В первом пи они ж сэкономили на прямо системном проце, хоть это и идиотство было.