> бакса (впрочем, мне почему-то запомнилась ещё более высокая цена, давно не
> следил) за железку с такой ограниченной функциональностью — ну не поднимается
> рука как-то, хоть и должно обилие готовых библиотек как-то вразумлять.Да я даж не спорю, жаба иногда поддушивает, так что некий пойнт я признаю. С F0 я таки предпочитаю не связываться лишний раз: M0 даже без +, с отсутствующим VTOR меня все же анноит, да и в debian'овском eabit gcc с M0 чудеса бывают, если оптимизацию покруче завернуть.
Как-то вот M3 показался мне золотой серединой, а в экстремумы типа каждого цента на счету или попытки сделать из мк комп я предпочитаю не лезть. Первое для китайцев, я с ними рубиться не собираюсь, а для второго у меня линух есть.
> Да, эти в своё время очень понравились, хоть универсальности ещё меньше FT232, кмк.
Мне от них хватит тупого уарта. А с виндовыми дровами у них грабельно? Мне то похрен, но кастомеры порой маздайку хотят.
>> А так я линух юзаю и "ftdi patches" только как 1-апрельская шутка там были.
> Я тоже, внезапно, на нём. Хотя не всегда это можно сказать про заказчиков.
Ну дык. Поэтому и вопрос см. выше.
> Но так-то тут опасения не столько из-за драйверов, сколько из-за лагов и
> разъезжающихся таймингов, если нарваться на программный клон на базе какого-нибудь МК.
Предпочитаю чтобы мои протоколы по uart не уповали на чрезмерную надежность или тайминги. Я видел много плохих реализаций и учился на их ошибках.
> Да можно, всё можно. Но как-то в итоге так я и прошёл мимо FTDI.
Я даже соглашусь что жадная фирма, а с драйвером вообще скотство устроили.
> «странное»). Если нужен чисто UART, однозначно CH340
Увы, не доверяю инженерии чайны. Видел как они usb2rs232 делают, это пц просто, CMOS 5V чип с инвертироваными уровнями 1 на все. Так то в 50% случаев этот "rs232" даже как-то работает. Но не всегда. А чип быстро мрет если ему настоящий 232 попадается, с +/-12V, от этого 5V CMOS довольно быстро кончается.
> выходными драйверами, CP210x спасёт, а ещё у силабсов есть большой плюс
> в плане наличия в отечественных магазинах, ну и почему-то их подделывают мало).
Видимо дешевый и скучный слишком.
> более оперативно ногами дрыгать, CH55x (но это прошивку писать придётся).
Прогать откровенную чайну мне неохота, увы.
> Если же возможностей CH55x не хватило, пора браться за STM32F042, F072 или
> F103 (или ещё кого пожирнее).
Собссно это и есть аргумент для меня освоить usb на нем постепенно :)
> Из ультра-бюджетного с USB есть ещё контроллеры STC8H8KxxU, они дороже CH55x, но
> у них и периферия интереснее.
У меня нет проектов где каждый цент на счету, имхо китайцово - китайцам :)
> как вариант для странного будущего в заметки внёс. Кстати, в свежих
> ревизиях самых дешёвых контроллеров STC (STC8G1K08 и STC8H1K08) есть заливка прошивки по USB.
Говоря за себя - после 32-битного M3 назад в 8-битники просто уже очень неохота =)
> делиться реализацией, но сейчас склоняюсь к тому, что там просто кристалл
> STC8H8KxxU и программное обрезание функциональности (впрочем, как приедут STC8G1K08A,
> надо будет попробовать потыкаться по адресам периферии, может и не залочено даже).
А задампить ром лоадера и изучить не катит? Я правда только для F1 так развлекся, откуда и узнал что там примерно 2048+512 байтов. Если лезть дальше - hardfault прилетает.
> Ну вот такой делитель очень уж напоминает F1xx CL (connectivity line, F105/F107).
Не думаю что это они, слишком фичастые для "F10x lite". У них наверное кристаллы больше и дороже. Хотя с учетом что F101-103 один чип...
> Возможно, он был их предшественником. Возможно, последователем. Но это надо
> мануалы сравнивать, конечно, до чего я ещё не добрался.
"F101-103 lite + prediv к PLL". Под lite подразумевается что-то типа 16КRAM max+128K flash max (физически столько и в младших есть) и меньше железок. Подозреваю что некоторых железок нет еще и просто по причине отсутствия лапок для них.
> Да, это понятно, особенно если был опыт разработки на HDL. Но вот
> тут не афишируют и приходится догадываться, реверсить.
Реверсинг сводится к тому чтобы угадать как думал программист. AMD показали как примерно они это делают в большой корп. Остальные видимо похоже.
> Ну, attiny/atmega — кошмар и ужас (совершенно нелепое по нынешним меркам железо
> по космическим ценам),
Ну да. Я пару партий F10x ухватил сильно дешевле таковых и мне проще эти ставить :)
> 1. Они работают в широком диапазоне напряжений. От 3 до 5.5 без
> внешнего преобразователя — аргумент существенный (да, проект с питанием от 18650
> и очень ограниченным пространством, нужно было вписаться в существующий корпус).
Ну да. Однако я по оказии купил кучу uPower torex XC6xxx в SOT23 за копье, и теперь и F1xx так же могут, а один SOT23 не так уж страшен :)
> 2. Они бывают даже в SO-8, что тоже полезно в условиях ограниченного пространства.
Кстати, STM сделали 32G в таком же корпусе. ИМХО я его возьму если приспичит.
> 3. Хотя шина данных там 8 бит, но архитектура местами вполне 16-битная
> (почему-то big endian), ну и вообще довольно прикольная.
Боюсь без мощи gcc-шного оптимизера это совсем скучно по математике, а я подсел на ряд вещиц.
> диапазон температур и напряжений послабее, но для соблюдения ТЗ хватило и
> испытания оно достойно прошло.
STM32F для automotive бывают, у вас диапазоны круче? Алсо в дш даже на обычные по верхним температурам написано что реально даже больше, если лимитить рассеяние. Или вам в минусы?
> Да тут и без паттернов, STM всё-таки старается периферию по одним и
> тем же адресам держать в близких линейках
Однако GPIOA у L1 и F1 по разным адресам например. Впрочем разные версии железок на разных шинах.
> этому адресу в даташите написано reserved и попробовать поработать с ADC2.
1) RESERVED есть.
2) Я все же попробовал magic, дешево и сердито. И нашел БАГ в TRM!
ADC*_HTR, reset value:
Описание: 0x00000FFF. Таблица: all 0. HW: 0x00000FFF. Баг в таблице.
F103:
ADC1_HTR=00000FFF
ADC2_HTR=00000FFF
F100, тот же бинарь:
ADC1_HTR=00000FFF
ADC2_HTR=00000000 <- увы, но...
> масочным (дороговато всё-таки флеш-память на такое переводить,
Я просто оставлю это здесь...
//Valid for STM32F10x:
//ROM:
dumpblock((void*)0x1FFFF000, 2048);
//ChipID:
dumpblock((void*)0x1FFFF7E8, 12);
Вместо 2048 можно 2560 (2048+512). Больше -> hardfault.
> хотя STM и может такое себе позволить), но это надо смотреть на картинках вскрытых чипов.
А уникальный серийник в "mask rom" это как? Там еще калибровки и т.п. бывают. ИМХО пуляют через SWD или JTAG вместе с калибровками и серийником.
> Хотя, на тех же CH55x бут явно частью флеша является
Да и тут вроде бы тоже.
> и у STC попадался намёк про возможность написания и заливки своего загрузчика)
У ST можно сделать начало фирмвари своим бутом, при boot0=0 конечно. Тогда при powerup ремап положит туда флеш, и если начало типа бут - ок. Вроде первые 4К при Level 1 даже readonly делают автоматически. Может быть и sysROM наподобие лочат.
Там именно физически ремап памяти, при boot0=0 флеш в 08000000 и 0. Можно фирмвару с 0 линковать, как нормальный "reset handler". С запуском такой FW из STшного ROM имхо будет облом: он не сможет ее ремапнуть, только ресетом с boot0=0 запустится. В 08 он ее увидит, но если линковано в 0, упс. Я так при кодинге бута обломался, без задней мысли адрес стэка прочел чтобы сам на себя попробовать бутануться. Hardfault! ARM не любит null pointer :). С зеркала в 08 читается конечно.
> штатного бутлоадера (его область можно невозбранно читать, тоже плюсик в карму WCH).
Я у ST слил ROM и даже немного отдизасмил (не полностью).
> Огонь, спасибо!
Там еще рядом 1-2 тематичных доки на том сайте есть.
> Ну flash (EEPROM) — термин общий и он весьма разный бывает, так
> что сделать нужный размер страницы (2 байта) для области option можно.
EEPROM от флеша тем и отличается. Крупноблочный ERASE эффективнее по площади массива. EEPROM с побайтовым доступом меньше и/или дороже. Вот поэтому.
>> usb-осцила сделать и прикольно, но для такого наверное F30x лучше...
> Осциллограф (приёмник отражённых зондирующих импульсов, PLC-модем, etc),
Это чего вы такое в PLC гнать собрались? Так на гитхабе болтается PLC модем, но он прост как топор - гонит 1.8МГц (на радость радиогубителям) PWM модулированный UART, и вылавливает его взад чем-то типа недо-радиоприемника. Я так понимаю что мк унутрях должен все это делать и наружу только данные. Впрочем самой фирвари там нет, только схемы/описание, но идея понятна.
> логический анализатор (или быстрый ногодрыг на замену FTDI),
Собссно ногодрых можно и в фирмвари накодить, куда быстрее и предсказуемее чем командовать им по юсб?
> мостик в систему с ISA (PC/104) или ещё какую не очень медленную и/или широкую шину
> и т.д. В общем, разные идейки могут возникать.
Ох, какая некромансия :)
> Ну я в своё время на статейку с объяснениями наткнулся (ссылку быстро
> не найду, пожалуй), поэтому удалось почти без блужданий дойти.
Я особо не блуждал, доки рулят. А описание ADC - appnote какой-то чтоли. Там разрисован кондер, компараторы SAR и проч.
> Мне просто вспомнилось, как один не очень внимательный персонаж упёрто пытался доказать
> чатику, что у STM32 АЦП хуже AVR'ного.
Чера с два, я им отдельные биты даже с очень странных вещей вижу.
> Хмм, а ведь и правда укладывается. С другой стороны, проекты-то разные всё
> равно гуглятся.
Просто пульнуть raw PCM явно проще чем еще mp3 пытаться попутно декодировать. Так даже крутые звуковухи то обычно не делают, за редким исключением.
> Отжигают. Кстати, недавно на аналогичное у Intel наткнулся:
Ну, интел мне не интересен. А вот что они за странный boost придумали где _две_ катушки и _трансформатор_ на выходе этого, и как они вон тот сигнал своим таймером сделали я бы посмотрел. Впрочем вроде врубился как такой PWM делать. Но теория работы этой штуки остается для меня не полностью прозрачной, впервые вижу такую топологию, boost умудрились в трансформатор загнать, нормальный а не flyback, так что 250 ваттов влезло на раз.
> кто-то на свой github всё-таки залил.
> Ааа, так вот оно чего. Теперь понятно, откуда там блок MPEG-2 декодера,
> требующий лицензионного ключа.
Там еще и VC1 вроде есть. Но я как-то предпочитал другие девайсы. Не нравится мне броадком и boot by GPU