Pull to refresh

Comments 39

Все поделия из Поднебесной такие — от транзисторов до космических аппаратов. Просто слегка другие. Если вспомнить отечественную элементную базу времен СССР — она тоже не везде и всегда была цельнотянутая — были и (разумные) отклонения. Главное — не пытаться соединить Европу и Азию в одной системе — это невозможно в гуманитарном контексте, и практически так же невозможно в техическом. Но если просто жить в контексте Китая (или, скажем СССР) — то можно вполне успешно запустить ракету на Марс, не парясь насчет таймингов и карты адресов регистров периферии — просто не зная, что она может быть другая ;)
Тут я совершенно согласен! Взять хотя бы КР580ВВ55 (который 8255 от Intel). Просто да, слегка другие ;)
А что там другое в ВВ55?

Эм, "ногодрыг" на арме? Я думал за такое поклонники stm сразу клеймят ардуиншиком и предают анафиме.

Это потому, что взяли STM32F030C8T6, в нём нет аппаратного USB. Что, конечно, ещё не факт — искатели находят вполне работающее оборудование в младших моделях от старших моделей, вероятно тут как с процессорами Intel: отключаем/не обьявляем глючащий узел и продаём как модель попроще и значит дешевле. А вот взяли бы STM32F042C8T6 и всё было бы совсем по-другому…

Интересно, а взять микроконтроллер с USB или поставить микросхему для USB мешает эффективный менеджер?

Интересно, а как обстоят дела с другими «клонами», например CS32F103C8T6?
Точно так! Это значение SysTick (разница до инструкции и после), один такт на останов, второй на запуск и один на передачу управления DBG арбитру внутри кристалла соотв. вычитаем 3.
у китайцев есть интересная специфика при описании чего-либо. их в принципе не особо интересует соответствие написанного тому, что есть в реальности.
у них вообще иероглифы.
поэтому они к латинице относятся так — если написанный текст (с их точки зрения абстрактные символы) помогает лучше продавать — значит они будут использовать этот текст.
в реальности это выглядит так — они заказывают английское описание переводчикам и проверяют, с каким описанием продукт лучше продается :)
и они сами не видят в этом ничего плохого: «мы же проверили, если написать латиницей ABIDAS — то покупают лучше».
это для них не выглядит обманом, для части изготовителей / разработчиков и пр — написанное просто является рисунком — как для нас являются непонятными рисунками китайские иероглифы.
Эта «специфика» называется просто — мошенничество. Продают один продукт под видом другого продукта.
Таким образом («это же просто непонятные рисунки») можно оправдать все, что угодно.
К сожалению, да — это мошенничество.
Только сами китайцы так не считают.
Получить реальные параметры (цифры, размеры, соответствие заявленному) можно только у крупных производителей, которые много продают в США, Европу.
Как только переходим на уровень ниже (фабрики, мелкие мастерские) — начинается вот это всё.
И в принципе их даже государство поддерживает — лишь бы продавали на внешний рынок…
PS
На внутреннем рынке такого безобразия практически нет.
Нет. Они отлично понимают что это мошенничество. Но они не считают чем-то предосудительным обмануть «не своего». Поэтому
на внутреннем рынке такого безобразия практически нет
, а наружу — сколько угодно. И это касается любой стороны общения. Есть куча интересных историй как китайцы «подсаживают» европейских коллег…
Кстати да, не секрет что в Китае обмануть 老外 (Лаовай — приезжий) что-то вроде национального вида спорта…

RESERVED[42] думаю не со зла. Это обычная практика, не чтобы спрятать, а чтобы отступить от оригинальных регистров. Когда STM добавит ещё несколько полей в какой нибудь модификации, они не будут конфликтовать с китайскими, а попадут как раз в RESERVED.

Вот здесь я выложил файл, утянутый с китайского форума. В нем как раз описаны некоторые отличия HK32F0 от STM, вроде бы и про частоты там было, посмотрите.
А как можно получить эти файлы без обязательной регистрации на том форуме?
А чего минусим то? Человек говорит:
Вот здесь я выложил файл, утянутый с китайского форума. В нем как раз описаны некоторые отличия HK32F0 от STM, вроде бы и про частоты там было, посмотрите.

Идём по ссылке — действительно, есть файл, разбитый на 3 части от этого пользователя:
image
А при нажатии на любой из них получаем это:
image
Так что не так в моём вопросе то? Либо давайте ссылки доступные абсолютно всем, либо уточняйте, что требуется регистрация. Я настолько стар, что помню времена, когда за ссылки на внутренние (или требующие обязательную регистрацию) социальные сети, форумы или ресурсы людей банили.

Так и идите туда, где банят, при чем здесь хабр?

Т.е., на Хабре дозволяется безнаказанно постить по сути рекламные ссылки на какие-то ресурсы для привлечения пользователей на те самые ресурсы? Ок, принято.
У меня с GD32F103 ситуация была ровно противоположной — он работает заметно быстрее оригинала. Пришлось увеличивать тайминги в критичных к времени местах и вводить задержки там, где STM работал без них :)
Вообще задержки NOP'ами и подсчёт тактов — это мрак. У STM есть поддержка DWT, a там есть счётчик тактов — не надо ничего считать самому, берём сколько тактов надо подождать и ждём в цикле пока не набежит нужное значение.
ARM — это не восьмибитник какой-нибудь тупой! У него уйма периферии и есть DMA. Выполнять блокирующие задержки допускается исключительно во время начальной инициализации периферии (да и то это — моветон!). Нормальная реализация конечного автомата и использование DMA везде, где только можно, помогают не опускаться до уровня абдуринщиков.
Да, есть стандартная тема TIMER+DMA, так сперва и задумал сделать, взводим таймер на 32 (TIMx->CR = 31) и цепляем к RELOAD таймера DMA из GPIO в память, пускаем таймер по спаду фронта на линии D+ в прерывании и останавливаемся кода обе линии D+ и D- «0» (EOP), только первое, времени не хватает чтобы получить первый бит в пакете (можно в принципе пожертвовать, старт всегда это 7 «0» и одна «1»), второе, на выходе получается буфер который ещё нужно обработать, а времени между SETUP пакетом и DATA всего то 156 тактов (на 75 MHZ)…
Да и вообще, программный USB это дичь, сразу первое что вырывается, есть же 042 или 070? Но в Российском бизнес сегменте оч часто, к сожалению, аргумент босса, — «Эт нельзя, у нас договор на поставку 030 на ближайшие 2 года по цене в 3 раза ниже чем 070 и в 4 чем 042!». А я такой, не, — договор на разработку рву ибо не собираюсь походить на ардуинщика?
20 лет назад, если не больше, Igor Cesko реализовал программный USB на AT90U1200 уместившись в 1кб кода (правда в оригинальной статье он предлагал слегка разогнать AVRку до 12MHz), у AVR почти все команды в один такт, и кстати, это Вы к чему про AVR?
Статья про ARM-M0, как-то сравнивать странно…

К тактам и невозможности использовать таймеры и прочую периферию.

Кстати, он использовал Low Speed для USB. Это который примерно 1,2мибибита/с и предназначен в основном для HID. А какая скорость получилась у тебя в статье? Low Speed или Full Speed? Про High Speed без физики речи нет.
… похвастаться тут нечем :(. Low Speed, но честный, без пропуска пакетов с бит стаффингом и CRC на лету.
А потом в ваш код смотрит любой программист и думает «нунафиг, лучше буду проституткой».
Лапша, треш, ад, угар и содомия — зато не ардуино, ага.

Зато Босса удовлетворил и заработал ему премию.

Не понимаю таких людей. Рабочих мест полно, но в российском эмбеддеде, да, почти везде так.

В данной реализации (скажем прием) применительно к Data Watchpoint, к сожалению, процессор должен не просто ждать, а выполнять арифметические операции в процессе ожидания.
А если подсчитывать такты вручную — то не должен? Комментарий был не про то как надо делать задержки в принципе, а про то, что есть гораздо лучшая альтернатива циклам с вручную подсчитанными задержками.
И да, для устройств работающих от сети не очень актуально в спячке процессор или крутится в цикле.
Не так понял. Перечитал ещё раз и да, если у вас в цикле задержки есть "полезная нагрузка" которая должна выполнится определённое количество раз и тайминги очень строгие(не +-1 одно выполнение полезной нагрузки) то да, без подсчётов не обойтись.

А что там с доступом к Flash? Есть сомнения, что у китайцев single-cycle на 72 МГц, как и у некоторых STM32.

Интересно было бы сравнить два этих MCU на 24 МГц.

Сколько не работал с творчеством из Китая. С документацией у них большие проблемы зачастую. Также непредвиденное поведение часто встречается. А когда заказываешь тираж, дальше идет большая проблема с исправлениями косяков и отклонения от BOM-в солидные. Сильные отклонения характеристик на большой тиражности. Были подставы, когда свои косяки они чинить не хотели и настойчиво говорят, что тебе надо закостылить. Однако костыли подложить не всегда возможно под такие экзотические специфики.

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

Побольше бы таких разоблачающих статей!..
Sign up to leave a comment.

Articles