Авторизация
Зарегистрироваться

Микроконтроллер STM32F103CxT6 с претензией на оригинал


Последнее время с этими — наиболее популярными из STM32F1 — микроконтроллерами часто стали происходить неприятности: то выпаянные пришлют (и не факт, что все будут рабочие), то вообще перемаркированные с GD32 или CS32. На сей раз пришли вполне приличные МК.

Микроконтроллеры я покупал у этого продавца 20 августа. Сегодня получил странный пакет с треком, не указанным ни на одном купленном мной товаре. Внутри оказалось пять пакетов от разных продавцов. Среди них был и пакет с МК. 5 недель доставки для безтрековых посылок — вполне быстро на мой взгляд («рекорд» этого года — 4.5 месяца; за все время покупок на ибее и али у меня «рекордсменом» была одна покупка с ибея, путешествовавшая больше семи месяцев!).
За 20 микроконтроллеров вместе с доставкой отдал $20.21 (у продавца были купоны, да и сами МК стоили у него на 20 центов дешевле).
Маркировка четкая (зачастую она бывает такой, что еле прочитаешь).
Я сразу же достал свой «тестер», собранный для STM32F1/F0 в корпусах LQFP48 (подробней можно почитать у меня в ЖЖ). Проверил восемь из двадцати — работают:

У всех восьми было 128кБ флеш-памяти, т.е. фактически это не C8, а CB (понятно, что это — не оригинал, но проводить более глубокую проверку у меня никакого желания нет).
У другого продавца взял пару «голубых пилюль». Пока что не получил. Но до этого уже имел негативный опыт, когда подсунули CS32 и GD32 (правда, в обоих случаях я был сам виноват: не прочел мелкий текст в описании товара, где было указано, что на самом деле там не STM32). Посмотрю, не обманет ли продавец…
Планирую купить +11 Добавить в избранное +18 +25
свернуть развернуть
Комментарии (85)
RSS
+
avatar
  • Zynq
  • 28 сентября 2019, 16:41
+2
так не проще изначально GD покупать? А что за CS кстати за зверь?
И «Проверил восемь из двадцати — работают:» несколько двусмыленно. Восемь проверили и 8 же работают, или 8 из 20 всего работают?
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 16:48
+1
У меня ни GD, ни CS прошить не удалось: пробовал посредством бутлоадера через USART1 (stm32flash не определил тип контроллера) и посредством st-link'а (тоже st-flash показал, что МК не определен).
Кроме того, у них вроде бы несколько по-другому регистры располагаются, т.е. нужно делать отдельные заголовочные файлы.
Хотя, тот же CS32 интересен более низкой ценой и более высокой производительностью.
+
avatar
  • Zynq
  • 28 сентября 2019, 16:50
0
GD это да, все таки не калька полная с стм, но есть и доки и даже в России представители, тем он и интересен.
+
avatar
0
Попробуйте данные конфиги для работы с CS32 и GD32 (https://github.com/leech001/OpenOCD-CS32).
+
avatar
+4
Я 103 пачками заказывал с али, причем многие были сдутые с чего то. Все нормально работают. А насчет размера памяти, так он у них во всех 128к. Просто в доке на младшие из серии пишут меньше памяти. Хотя по опыту работы с ними — они все жужжат на максимальной памяти.
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 16:50
+1
На работе заказывал «оригинальные» STM32F103C8T6, там реально было 64кБ флеша.
С этими же проверял несколько МК: реально все 128кБ флеша писались и читались (я сварганил эмуляцию EEPROM во флеш-памяти и храню там настройки и журналы).
+
avatar
  • Zynq
  • 28 сентября 2019, 16:53
0
о, какое совпадение, сам сейчас думаю над такой эмуляцией. Сами изобретали или по аппнотам? Есть у стм апнота, но она для хранения кучки разноадресных переменных, а мне надо просто структуру хранить, причем очень надежно.
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 17:04
+2
Сам делал. Вот здесь последняя реализация. В предыдущих у меня был только 1 раздел, т.к. не было нужды логи хранить, а в хронометре сделал во флеш-памяти 2 дополнительных раздела. Первый, 2кБ, для хранения настроек, а весь остальной свободный флеш идет под хранилище логов. Если глянуть в ld-скрипт, видно, что там все достаточно просто. Но я на это убил пару дней, пока понял, что же там надо писать…
У меня тоже все настройки лежат в одной структуре, которую я и сохраняю во флеш-памяти. Самое узкое место в имитации EEPROM — необходимость стирать страницы перед обновлением. Я для упрощения сделал так: стираю абсолютно все страницы в нужной области после того, как там кончилось место, а затем новые настройки вписываю первой ячейкой. Т.к. стирание сотни кБ флеша — очень долгий процесс, есть шанс потерять новые настройки, если в момент их сохранения отключится питание. И 100мкФ конденсатор уже не решит эту проблему. С моей точки зрения, если такое событие (крайне маловероятное) произойдет, ничего страшного — ну, еще раз запишу новые настройки… Для надежности можно CRC добавить (на случай, если запишется лишь часть из структуры), ну, у паранойи нет пределов!
+
avatar
  • Zynq
  • 28 сентября 2019, 18:13
0
напишите плиз ссылку без слешей и хттп, сам вобью
+
avatar
  • CuMr
  • 28 сентября 2019, 18:19
0
ищи eddy_em eeprom по желанию добавить stm32
+
avatar
  • Zynq
  • 28 сентября 2019, 18:23
0
посмотрел. Непригодно это при пропадании питания в момент стирания совсем.
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 18:27
0
Я в комментарии «с проверкой» об этом и писал.
Но мне наплевать: если при стирании флеша вдруг пропадет питание, ничего страшного не будет. Просто нужно будет еще раз провести процедуру сохранения параметров.
+
avatar
  • Zynq
  • 28 сентября 2019, 18:30
0
Понятно. Был бы у меня такой случай — так бы наверное и сделал. Мне, к сожалению, допустить потерь нельзя никак. И конденсатор емкий тоже ставить нельзя ))
Правда неясно, что вам даст сохранение «еще раз», ведь вы будете упорно писать данные по нестертой области, т.к. при таком алгоритме поиска такой области — нет гарантий.
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 18:34
0
Если будет происходить попытка записи в занятую область, возвратится ошибка. И тогда можно подумать, что делать: стереть всю флеш или искать действительно свободное место.
Но это неважно.
+
avatar
  • Zynq
  • 28 сентября 2019, 18:36
0
то есть вы после записи — перечитываете?
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 19:03
0
Нет, зачем? Если при записи не произошло ошибки, то все ОК.
+
avatar
  • Zynq
  • 28 сентября 2019, 19:14
+1
если вы пишите «1» поверх «0» — то в чипе останется ноль, и никаких ошибок процедура записи не даст.
+
avatar
  • CuMr
  • 29 сентября 2019, 02:10
0
Выдели под настройки две страницы. Как одна заполнится, начинай писать во вторую, и потом только стирай первую. По заполнении второй — повторить.
+
avatar
+1
Выдели под настройки две страницы
сакральное знание о перелистывании страниц флеша пока недоступно пациенту, и это при 14ти летнем стаже на электрониксе…
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 18:22
0
https github.com/eddyem/stm32samples/tree/master/F1-nolib/chronometer
+
avatar
  • Zynq
  • 28 сентября 2019, 19:42
0
и кстати, у вас GCC? у меня такие allign на 4096 байт не прокатили, 8 — максимум. Поэтому отказал с трюком размещения посредством линкера и написал менеджер выделения адресов runtime
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 19:55
0
Естественно, больше компиляторов и нет под ARM… Если «троюки» не прокатили, возможно, gcc слишком древний?
+
avatar
  • Zynq
  • 28 сентября 2019, 20:02
+1
как это нет? IAR, Keil (у тех вроде и тот и тот есть) и другие. Нет, GCC у меня не древний. Но выравнивать на границу 4096 отказался категорически (собсно это не к компилятору вопрос, а к линковщику)
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 20:16
0
Проприетарщина голимая!
+
avatar
  • DmitryA
  • 06 октября 2019, 23:06
0
llvm
+
avatar
+2
Если видя в аппноте метод записи переменной во флеш ты не можешь нарисовать алгоритм записи структуры то программирование это не твое, осознание алгоритмов «очень надежного» хранения значительно сложнее чем осознание того, что такое поинтер.
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 17:40
+1
В аппноте очень угрюмую методику предлагают.
Я в комментарии выше дал ссылку на гитхаб, где сделал реализацию EEPROM во флеш. Но (видимо из-за ссылки) комментарий «ожидает проверки».
P.S. Там же у меня бинарный поиск реализован. Это намного шустрей, чем унылый линейный. Скажем, в свободную память у меня влезает около 7000 записей логов (они тоже как структура хранятся, а перед выводом человеку сериализуются). Для того, чтобы найти последнюю запись, требуется не больше 13 операций поиска/сравнения.
+
avatar
  • Zynq
  • 28 сентября 2019, 18:18
0
вы пишите в запись ее номер? Или ищите свободное место с конца? Не годится тут бинарный поиск, при обесточивании флешки и тег стертости страницы не говорит о том, что она вся стерта,
ни найденное где либо FF местечко — только полное сканирование всей страницы
Может быть типа 0xff 0xff… 0x00 0xaa 0x55 0xff 0xff… до конца страницы. И последние нестертые байты — совсем не факт, что валидная запись, то есть еще и CRC на каждую надо
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 18:24
0
У меня первой записью структуры идет uint16_t, где находится своеобразный magick — ее размер. Если там ничего нет, то прочтется 0xffff. Все работает нормально.
CRC — это уж перебор!
+
avatar
  • Zynq
  • 28 сентября 2019, 18:26
0
ну для логов пойдет, раз допускается порча данных. Не мой случай. Ну ладно, допиливаю свое тогда, думал может идеи свежие есть еще какие. Согласитесь, операция стирания длится более 2 мс, какое состояние стираемого сектора будет при исчезновении питания на 1 мс? Магик будет 0xff — а данные — не стерты. Либо магик — верен, а данные уже «полустерты»
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 18:33
0
Чтобы бороться с повреждением данных при пропадании питания, достаточно воткнуть ионистор! А лучше вообще не париться, т.к. вероятность этого события стремится к нулю!
Скажем, в моем хронометре потеря питания — штука значительно более вредная, чем потеря одной записи при сохранении!
+
avatar
  • Zynq
  • 28 сентября 2019, 18:35
0
хех, устройство таково, что 5 центов — огромная экономия при наших тиражах. Ионисторы, даже просто емкие кондеры — сразу проигрыш конкурентам. А потеря последних данных — это вообще полное попадалово будет. Ради экономии и ушли с еепром обычных байтовых, там проще было и не задумывался над реализацией все этого безобразия
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 19:04
0
Надежность и дешевизна — взаимоисключающие понятия!
+
avatar
  • Zynq
  • 28 сентября 2019, 19:17
0
при хорошо продуманном софте в данном конкретном случае можно нивелировать недостатки дешевизны. Ну не FRAM же ставить (да и там напортачить можно умудриться)
+
avatar
-2
при хорошо продуманном софте
сомневаюсь что человек не способный реализовать такую атомарно простую операцию как запись структуры во флеш может что либо хорошо продумать.
+
avatar
  • Zynq
  • 28 сентября 2019, 19:32
0
да мы уже поняли, что вы неспособны. Зачем об этом так кричать. Приходите на електроникс, там мирно и отпинаем.
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 19:53
0
Электроникс, где обитают психически ненормальные модераторы?
+
avatar
  • Zynq
  • 28 сентября 2019, 20:01
0
14 лет там, и не замечал ненормальных. Хотя и сам бывало получал, но то по заслугам было
+
avatar
-2
В аппноте очень угрюмую методику предлагают.
Апнота это всего лишь демонстрация физической возможности записи содержимого озу в содержимое флеш, все остальное это голова и немного знание языка.
Если человек не знает что такое указатель и выравнивание, да черт с ним с указателем, если он не знает что такое юнион и не может через него переливать структуру как массив «разноадресных переменных», но при этом лезет в «очень надежное» хранение то в программировании микроконтроллеров ему делать нечего.
+
avatar
  • Zynq
  • 28 сентября 2019, 19:33
+6
нет желания говорить с вами. Вы просто очень плохо понимаете, что собственно требуется, зато имеете кучу понтов.
+
avatar
  • Zynq
  • 28 сентября 2019, 18:08
-1
бесполезные комменты — это ваше хобби?
+
avatar
0
Для часто меняющихся использую апнот стм. Для долговременных использую целый сектор с полной перезаписью — туда структуры и кидаю. В системе сразу два типа еепром. Кстати апнотовский еепром можно использовать для структур. Просто обьявленные структуры по ресету инициализируете из еепром апнота. А когда что то меняется то также само со структуры в виде байтов пишете в регистры еепром.
+
avatar
  • Zynq
  • 28 сентября 2019, 18:12
0
да это понятно, вопрос про пропадание питания и wear leveling. У меня хранилище проходит аж 6 состояний при освоении следующего сектора, т.к питание может пропасть в любой момент, то есть надо стереть следующий сектор после заполнения старого, пометить его тегом «в запись», потом пометить предыщий как «архивный», после чего новый пометить как валидный. Как-то коряво
+
avatar
0
При внешней еепромине будет тоже самое. Ставьте детектор питания.
+
avatar
  • Zynq
  • 28 сентября 2019, 19:15
0
в еепром несколько иная у меня система, данные пишутся дважды по разным адресам, каждая со своим crc. при включении сверка црц, выбор той копии, у которой он верен и восттановление (если необходимо) второй копии.
+
avatar
+1
данные пишутся дважды
выбор той копии, у которой он верен
Абсолютно школьная ошибка.
Если сбой произошел при окончании записи первой копии до начала записи второй то после ресета у тебя будут два разных набора данных и оба с верными CRC.
Двойное резервирование данных с селекцией только на признаку целостности это абсолютно бесполезная трата времени. Или делай тройное резервирование с мажоритарной селекцией или вводи в структуру идентификатор, например текущее время, и анализируй его после сравнения CRC.
+
avatar
0
Правда некоторые программы принципиально не могут «писать» в лишние 64 кБ.
+
avatar
0
Если Вы имеете ввиду программаторы, то st link пишет без проблем. А если имеете ввиду компилятор, то выбирайте в проекте старший чип в линейке и все будет работать.
+
avatar
0
Речь про STSW-LINK007.
+
avatar
  • Eddy_Em
  • 29 сентября 2019, 11:12
0
Это если неправильный линкер-скрипт взять! Указывайте объем флеш-памяти 128 даже для «восьмерок», и будет ОК.
+
avatar
  • DrBOBAH
  • 28 сентября 2019, 17:03
+9
Сегодня получил странный пакет с треком, не указанным ни на одном купленном мной товаре.

Али щаз группирует посылки на один адрес.ю Сам был удивлен. Трек номер появляется когда разворачиваешь сообщение.
(кстати его присылает мне почта России)
RU это тот который видно на странице заказа. а LO — это обьединненый трек.

+
avatar
+1
Об этом в интернете не писал только ленивый. Все что али экспрес стандарт шипинг, все в один общий пакет пакуется и кста удобнее и доставляют вполне долго. Все последние заказы приезжали недели за 2-3.
+
avatar
  • Harwest
  • 29 сентября 2019, 09:18
0
Все что али экспрес стандарт шипинг
Мне пришёл консолидированный груз где была безтрековая Cainiao.
+
avatar
  • zztop68
  • 28 сентября 2019, 18:04
0
А что там с stm32f100cNt6 на Али? Может знает кто?
Ходят слухи, что зачастую присылают перемаркированные типа «103»-е, т.е. нечто без ЦАП-а.
Вот и раздумываю сейчас, где бы не переплачивая взять в онлайне один оригинальный «сотый».
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 18:25
0
Лучше взять 303-й. Всяко надежней.
+
avatar
  • zztop68
  • 28 сентября 2019, 18:31
0
Я не хочу ничего портировать на 303-й.
Исходники чужие и ковыряться в них у меня нет никакого желания. А в них всё запилено под 100-й.
+
avatar
  • alex323
  • 28 сентября 2019, 18:32
+1
Еще вот интересный проц с ЦАП'ом недорого: STM32L151C8T6TR.
+
avatar
  • zztop68
  • 28 сентября 2019, 21:00
+2
Спасибо, конечно, но мне нужен только F100.
Это под готовый проект RCL Mini от Neekeetos, который долго обсуждали на Радикоте (158 стр.). Начальное описание проекта — по этой ссылке.
Желания портировать и вникать в «математику» этого проекта я не имею.
Просто хочу собрать его, без лишнего гемора (у меня и своего хватает).
+
avatar
  • valius
  • 28 сентября 2019, 21:25
+1

Такой? У меня уже два года не доходят руки вырезать в верхней крышке отверстия для дисплея и кнопок ;) Так все без крышки.
+
avatar
  • zztop68
  • 28 сентября 2019, 21:30
0
Да, такой. Только хочу сделать более вытянутой формы и на OLED экране.

Как он вам, кстати?
+
avatar
  • valius
  • 28 сентября 2019, 21:40
+1
Очень неплох для быстрой диагностики. Точность измерений очень хорошая, даже измеряя впаянные элементы. Плохо измеряет большие емкости (2000мкФ и более) Тоесть начинает прыгать значение емкости в больших пределах. Но зная его особености -очень хороший измеритель-пинцет. Возможно поправили что в новых прошивках, меня в принципе устраивает что есть и не вникал более после его сборки.
+
avatar
  • zztop68
  • 28 сентября 2019, 21:59
+1
Спасибо за отзыв.
Плохо измеряет большие емкости (2000мкФ и более)
Это, в принципе, и не его формат. Он всё-таки больше ориентирован на небольшие SMD компоненты, на мой взгляд.
А большие ёмкости можно и мультиметром измерять.
+
avatar
  • flymouse
  • 28 сентября 2019, 21:42
0
А что такое
stm32f100cNt6
?
Не знаю таких.
По ссылкам там F100C4T6 — есть у меня они ещё со времён проекта лет 7 назад когда на Али не было и покупали оригиналы.
Могу отправить,
+
avatar
  • zztop68
  • 28 сентября 2019, 22:11
0
А что такое

stm32f100cNt6
?
Не знаю таких.
Это обычная программистская практика обозначения положительного целого (натурального) числа. Т.е., вместо N может быть любое целое число, а именно, в данном случае — 4, 6 или 8. Конкретное число не имеет значения — подходят любые.
Могу отправить,
Так из Израиля(?) одна доставка будет стоить дороже, чем купить где-то у проверенных китайцев, или в украинском магазине. Спасибо за предложение, конечно.
+
avatar
  • alex323
  • 28 сентября 2019, 18:23
0
Интересно, почему выбрали именно этот лот, а например, не этот? У последнего и цена ощутимо ниже, и рейтинг продавца повыше.
+
avatar
  • Eddy_Em
  • 28 сентября 2019, 18:26
0
Видимо, когда покупал, этого лота не было.
+
avatar
  • alex323
  • 28 сентября 2019, 18:44
0
Да вроде на них давно цена примерно от 50 рублей начинается.
Мне из дешевых процов STM32F103RCT6 понравился. Таймеров целая куча, ног побольше. Заказывал у другого продавца за 72 рубля с бесплатной доставкой.
+
avatar
  • kalobyte
  • 29 сентября 2019, 00:05
0
с бесплатной доставкой.
В европы доставка целый бакс
+
avatar
  • valius
  • 28 сентября 2019, 18:51
+8
Не понимаю сути покупать их на али неясного качества, когда на lcsc цена практически такая-же за новые оригиналы.
STM, GD
+
avatar
  • alex323
  • 28 сентября 2019, 20:02
+1
Суть наверно в том, что у lcsc доставка от 2,5 баксов. Для многих это важно.
+
avatar
  • valius
  • 28 сентября 2019, 20:19
+2
набираете нужных вам деталей минимум на 15$ (иначе +3$ за обслуживание). Доставка да, стоит. зависит от веса. Но можнож набрать кучу других оригинальных компонентов и цена доставки нивелируется. Я много раз считал. Теже детали неясного качества на али у меня выходили по 40$. На lcsc выходило 32$+7,5$ доставка. НО! гарантия качества и оригинальности.
+
avatar
  • alex323
  • 28 сентября 2019, 20:35
+1
Спасибо за наводку, воспользуюсь при случае. Но как-то чаще заказываю всякую мелочь по чуть-чуть.
+
avatar
  • bretin
  • 28 сентября 2019, 19:36
+2
На алишке оборзели-пришел USB измеритель тока за 4.6$ Ток через него не проходит показывает Cur 0000, открыл спор фото +видео, но алишка встала как обычно на сторону продавца. Они хитро сделали хочешь денег-верни товар неисправный, а это геморрой. То есть на али что-то дорогое покупать НЕЦЕЛЕСООБРАЗНО
+
avatar
  • kirich
  • 28 сентября 2019, 19:40
+1
Они хитро сделали хочешь денег-верни товар неисправный, а это геморрой. То есть на али что-то дорогое покупать НЕЦЕЛЕСООБРАЗНО
Я так делал возврат по держателям аккумуляторов.
Списался с продавцом, он согласился на полный возврат
Когда открыл спор, он — а дайте нам еще доказательства
Через время подключился модератор, предложил или 50% или возврат продавцу.
Я ответил еще фотками и предложил компенсацию 99% без возврата, одобрили.
+
avatar
  • alex323
  • 28 сентября 2019, 20:05
+2
+1 к kirich
Если просить не полный возврат, то обычно отправлять назад не требуют.
Хотя как-то странно. Товар недорогой, обычно никаких проблем при споре не бывает. Зачастую, если представишь четкие доказательства некачественного товара, спор решают в пользу покупателя не спрашивая продавца.
+
avatar
-1
На алишке оборзели
Если есть риск получить не качественный или не правильный товар то лот лучше покупать на ебае, переплачиваешь примерно 10% по сравнению с али и не можешь выбрать тип доставки, но имеешь на 99% лояльную администрацию и вменяемые сроки рассмотрения жалоб.
+
avatar
  • Eddy_Em
  • 29 сентября 2019, 11:09
+2
Я почти перестал закупаться на ибее, т.к. процент не приходящих посылок без трека достиг 100! С али безтрекинговые реже не доходят. На ибее же за постоянные диспуты могут забанить!
+
avatar
0
Я обычно покупаю без трека только то, что на почте не украдут, и недохода не больше 10%.
А с воруемым конечно беда, покупать на ебае безтрековую женскую шмотку это 100% подарок почте.
+
avatar
  • Sdoro
  • 29 сентября 2019, 00:52
0
Да, тема китайских STM32 довольно мутная. Скопилось у меня их около двух десятков (в приборах, отладочных платах, россыпью). Примечательно, что в первых посылках STM32F103C8T6 шли с 128K памяти. Потом уже как повезет (64K или 128K). В оригинале, вроде как, должно быть именно 128K, так как используется общий шаблон, а далее маркировка по объему тестируемой памяти. Но откуда тогда взялись 64K? Что, китайцы сами переработали топологию? Или копировали какие-то инженерные образцы? Не понятно.
Маркировка иногда попадается чудесная: STM32GC102CB.
Но все процы рабочие и прекрасно читаются с помощью ST-LINK.
Вот такие дела…
+
avatar
  • Eddy_Em
  • 29 сентября 2019, 11:07
0
Вообще-то 8 — это 64кБ флеш-памяти! У 128 маркировка — B!

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.