Связанные сообщения
- Вот моё творчество:2025-03-09
- Вопрос по CH32V003.2025-02-28
- Я извиняюсь народ.) Но пролейте пожалуйста свет кто чем сейчас
programmирует чипы на RISC-V?2023-11-07
- У ядра QingKeV4 есть расширенный набор коротких команд. Их пока
только WCH-ный GCC порддерживает.2023-04-06
- Траблы с WCH для CH32V203RBT6.2023-03-24
-
- Имею вопрос. Если честного флэша нет, и прога грузится в sram из
spi flash и оттуда из sram исполняется, то можно после запуска
менять память программ (в загруженной копии в sram)? Или разместить
.data сразу в flash, убрав копирование в стартапе. - VVB(12.04.2026 20:23)
- Насколько я помню, менять память программ в ОЗУ, в загруженной
копии, не получится. По крайней мере, такой механизм мне неизвестен
и о примерах подобных изменений я не слышал. Nikolay_Po(888 знак., 12.04.2026 23:47)
- Эти 60 МГц у WCH уже на грани, в других их МК если тактировать флэш
ровно 60 бывают сбои записи. Если менять тактовую на лету легко
нарушить работу интерфейсов, если они используются. - AlexG(13.04.2026 03:10)
- По моему опыту, если соблюдать процедуры переключений, сначала на
кварц без ФАПЧ, перестройка, потом обратно на ФАПЧ, никаких проблем
нет - ничего не сбоит и не зависает. А интрефейсы, да, те, что
зависят от времени, будут работать некорректно. Поэтому на время
работы с флеш, их можно отключать. Ну, или для особых случаев,
перенастраивать систему между пакетами и перезапускать интерфейсы
на фактических частотах. - Nikolay_Po(13.04.2026 09:00)
- Если кварц замкнуть или он отвалится, МК корректно переключится на
внутренний RC и сформирует прерывание "кварц сдох"? В прерывании
обычно можно перенастроить какую-то периферию или отключить ту,
которую нельзя перестроить. Обычно в МК есть схемы контроля работы
кварца. - VVB(13.04.2026 09:03)
- Может. Но я не пользовался. В первых версиях RISC-V МК общего
применения от WCH, от обнаружение отказа тактового генератора было
нерабочим. Nikolay_Po(301 знак., 13.04.2026 12:34)
- В 003 есть и прекрасно работает. Если кварц отвалился то работает
на внутреннем. У меня настроена одинаковая частота . - Driver_gv(13.04.2026 17:19)
- Тоже убедился на днях. Забыл в установках переключить на внутренний генератор, а оно работает... - Гyдвин(13.04.2026 18:14)
- В 003 есть и прекрасно работает. Если кварц отвалился то работает
на внутреннем. У меня настроена одинаковая частота . - Driver_gv(13.04.2026 17:19)
- Может. Но я не пользовался. В первых версиях RISC-V МК общего
применения от WCH, от обнаружение отказа тактового генератора было
нерабочим. Nikolay_Po(301 знак., 13.04.2026 12:34)
- Если кварц замкнуть или он отвалится, МК корректно переключится на
внутренний RC и сформирует прерывание "кварц сдох"? В прерывании
обычно можно перенастроить какую-то периферию или отключить ту,
которую нельзя перестроить. Обычно в МК есть схемы контроля работы
кварца. - VVB(13.04.2026 09:03)
- По моему опыту, если соблюдать процедуры переключений, сначала на
кварц без ФАПЧ, перестройка, потом обратно на ФАПЧ, никаких проблем
нет - ничего не сбоит и не зависает. А интрефейсы, да, те, что
зависят от времени, будут работать некорректно. Поэтому на время
работы с флеш, их можно отключать. Ну, или для особых случаев,
перенастраивать систему между пакетами и перезапускать интерфейсы
на фактических частотах. - Nikolay_Po(13.04.2026 09:00)
- Эти 60 МГц у WCH уже на грани, в других их МК если тактировать флэш
ровно 60 бывают сбои записи. Если менять тактовую на лету легко
нарушить работу интерфейсов, если они используются. - AlexG(13.04.2026 03:10)
- Насколько я помню, менять память программ в ОЗУ, в загруженной
копии, не получится. По крайней мере, такой механизм мне неизвестен
и о примерах подобных изменений я не слышал. Nikolay_Po(888 знак., 12.04.2026 23:47)
- Раз уж в этом топике идёт разговор о ресурсе Flash, то спрошу
здесь. Как считаете, коллеги - стоит ли применить отдельную EEPROM
или достаточно будет Flash STM32 (с выравниванием износа) для
хранения уставок терморегулятора или реле давления? Где применяться
девайсы будут - не знаю, по моему опыту использования КИП - эти
изменения редки. Но вдруг где то надо часто менять уставки? В
Овеновских ТРМках на AtMega64 посмотрел - там нет отдельной EEPROM,
но и ресурс у EEPROM arisov77(36 знак., 12.04.2026 09:59)
- С точки зрения ремонтнопригодности и расширяемости - отдельная EEPROM лучше. C точки зрения экономии разница: 8 точек пайки и одна позиция установки. Boвa(317 знак., 12.04.2026 15:08, +1)
- В некоторых случаях проблемой может быть остановка процессора на время ситрания-записи, это могут быть десятки мс. - AlexBi(12.04.2026 14:02)
- Кроме ресурса памяти нужно учитывать и удобство разработки, наличие
наработанных решений, проверенных в поле. - SciFi(12.04.2026 10:22)
- Вот для оперативного изменения параметров потребителем у меня и нет наработок. Для подстроечных коэффициентов, которые нужны только единовременно при наладке - в AVR/PIC применяю мажоритирование по трём ячейкам, раскиданных в разных областях EEPROM, в STM32 целиком страницу переписываю. - arisov77(12.04.2026 13:49)
- Уставки? И сколько раз в жизни устройства они будут меняться?
100-200-1000, выравнивание износа? "Можно, а зачем?"(С). Конечно,
использовать флеш, при правильном решении будет не хуже внешней
еепром. - petrd(12.04.2026 10:21)
- Вот это как раз меня и интересует - может есть какие то применения
КИП, где уставки часто меняют? Нам как то лет 20 назад был запрос
на реле давления или ЭКМ на какой пресс "по деревяшкам", так вот
насколько помню (могу ошибиться, за давностью лет) - они говорили,
что им надо уставки несколько раз за смену менять. - arisov77(12.04.2026 13:47)
- Я тоже так считаю. Три изменения за смену, 25 лет. - Nikolay_Po(12.04.2026 18:04)
- Можно прикинуть. Например, 3 раза в день каждый день 10 лет - это 10000. Есть схемы с размазыванием ресурса: скажем, 2 страницы по 4К байт, если 10 байт настроек, то одно стирание на 800 изменений, и устойчивость к отключениям питания, потому что 2 страницы. Но это ещё чуть сложнее. - SciFi(12.04.2026 13:55)
- Вот это как раз меня и интересует - может есть какие то применения
КИП, где уставки часто меняют? Нам как то лет 20 назад был запрос
на реле давления или ЭКМ на какой пресс "по деревяшкам", так вот
насколько помню (могу ошибиться, за давностью лет) - они говорили,
что им надо уставки несколько раз за смену менять. - arisov77(12.04.2026 13:47)
- Использую быструю запись по 256 байт с учетом выводов из Ваших
исследований. MRS мне показывает чистую ячейку как 0xE339, что
значит с учетом XOR 0x1CC6 во флеши лежит 0xFFFF. Пишу туда 0xF228
(XOR 0x1CC6), чтобы иметь во флеши 0xEEEE, все хорошо, MRS
показывает 0xF228. А теперь я хочу занулить все биты в 0xEEEE. Пишу
туда 0x1CC6, что с учетом XOR 0x1CC6 должно дать 0x0000. Только
фиг, после записи 0x1CC6 MRS мне показывает в этом месте 0x1CCE,
что соответствует 0x0008 petrd(41 знак., 10.04.2026 22:56)
- А я и не нашёл способа, как записать все биты так, чтобы во флеши
они стали нулями. Nikolay_Po(818 знак., 10.04.2026 23:09)
- Зачем? У меня на V303 работает портированный эмулятор EEPROM по
мотивам an2594 от STM и запись в нем происходит стандартным
способом полусловами. Но после Ваших исследований стало понятно,
что запись в страницу 256 байт каждый раз сопровождается стиранием
страницы и убиением ресурса перезаписи, т.е. на 128 записей
полуслова приходится 128 стираний страницы. Поэтому решил
переделать на быструю запись страницами по 256 байт. Но в работе
алгоритма an2594 в начале каждой petrd(812 знак., 11.04.2026 08:29)
- Я пишу подряд записи с уникальными номерами. Маркер ставлю один,
целиком на всю страницу, о том, что её стёр до конца успешно (чтобы
не было страниц, стирание которых не было выполнено до конца из-за
сбоя питания во время). А дальше - просто пронумерованные записи. Nikolay_Po(95 знак., 11.04.2026 08:32)
- в an2594 примерно тоже самое, промежуточный маркер 0xEEEE ставится
в момент когда текущая страница становится полной и нужно последние
свежие данные из нее перенести в новую страницу (тоже защита от
пропадания питания), после переноса данных стираем старую страницу
(маркер в ней автоматом становится 0xE339) и затем в новой заменяем
промежуточный маркер на валидный и уже после этого с данными можно
работать. - petrd(11.04.2026 09:04)
- А зачем данные переносить? Это не увеличивает ли износ? Я оставляю
все страницы с данными не стёртыми. Nikolay_Po(411 знак., 11.04.2026 21:56)
- С конца. Велосипед не мой, мне было проще адаптировать готовое, чем изобретать с нуля. Чем принципиально отличается память CH32V от STM32F1, то что она на "проводках"? А не пофиг ли, работать все равно через контроллер флеши, которые сильно похожие. В моем варианте 2 страницы по 4кб (изначально было ограничено размером страницы стандартного стирания, после перехода на быстрый режим минимально можно перейти и на 2х256 байт, но это опасно, такое себе) стирание происходит petrd(547 знак., 12.04.2026 10:05)
- А зачем данные переносить? Это не увеличивает ли износ? Я оставляю
все страницы с данными не стёртыми. Nikolay_Po(411 знак., 11.04.2026 21:56)
- в an2594 примерно тоже самое, промежуточный маркер 0xEEEE ставится
в момент когда текущая страница становится полной и нужно последние
свежие данные из нее перенести в новую страницу (тоже защита от
пропадания питания), после переноса данных стираем старую страницу
(маркер в ней автоматом становится 0xE339) и затем в новой заменяем
промежуточный маркер на валидный и уже после этого с данными можно
работать. - petrd(11.04.2026 09:04)
- Я пишу подряд записи с уникальными номерами. Маркер ставлю один,
целиком на всю страницу, о том, что её стёр до конца успешно (чтобы
не было страниц, стирание которых не было выполнено до конца из-за
сбоя питания во время). А дальше - просто пронумерованные записи. Nikolay_Po(95 знак., 11.04.2026 08:32)
- Зачем? У меня на V303 работает портированный эмулятор EEPROM по
мотивам an2594 от STM и запись в нем происходит стандартным
способом полусловами. Но после Ваших исследований стало понятно,
что запись в страницу 256 байт каждый раз сопровождается стиранием
страницы и убиением ресурса перезаписи, т.е. на 128 записей
полуслова приходится 128 стираний страницы. Поэтому решил
переделать на быструю запись страницами по 256 байт. Но в работе
алгоритма an2594 в начале каждой petrd(812 знак., 11.04.2026 08:29)
- А я и не нашёл способа, как записать все биты так, чтобы во флеши
они стали нулями. Nikolay_Po(818 знак., 10.04.2026 23:09)
- В чем собственно смысл? Память программ любого микроконтроллера не
предназначена для хранения часто меняющихся данных. Для этого есть
EEPROM. Не стоит натягивать сову на глобус. Любая эмуляция - это
для данных которые очень редко меняются. Ставьте EEPROM или FRAM
как требуется в задаче. Поскольку вы пытаетесь эксплуатировать , то
чего нет в даташите, то завтра результат непредсказуем. Если по
умолчанию много записей, сам бог велел внешнюю память - Driver_gv(04.04.2025 19:44)
- Microchip с Вами не согласен abivan(1 знак., 04.04.2025 20:54, картинка)
- А WCH как ? согласился с этим? - Driver_gv(04.04.2025 21:02)
- Вот у меня требования: 200 тысяч записей по 68 байт хранить. В
кольцевом буфере. Много? Много. Часто обновляются? Если учесть
частоту появления - редко. Nikolay_Po(398 знак., 04.04.2025 20:39)
- Расчет предельных значений , как для меня - 1000 изменений за весь
срок службы - флэш контроллера - паспорт 10К ; >10K изменений
- еепром , паспорт 1M ; более - FRAM . Иначе кроилово = попадалово.
или это поделка для бытовых пионеров с ардуино. Если вы считаете
что все хорошо у вас, зачем тут спрашивать, делайте и радуйтесь.
Или вам надо наше одобрение вашего выбора. - Driver_gv(04.04.2025 20:53)
- Ну вот, такая эмуляция EEPROM'а у меня вышла: Nikolay_Po(431 знак., 12.04.2025 23:28)
- 👍 - Бoмж(13.04.2025 10:32)
- А если у вас страниц памяти, которые можно записывать, много больше, чем нужно хранить записей? Неужели вы побрезгуете выровнять износ и распределить записи по всему свободному объёму? И, таким образом, кратно увеличить ресурс перезаписей? Nikolay_Po(620 знак., 04.04.2025 21:57)
- Ну вот, такая эмуляция EEPROM'а у меня вышла: Nikolay_Po(431 знак., 12.04.2025 23:28)
- Расчет предельных значений , как для меня - 1000 изменений за весь
срок службы - флэш контроллера - паспорт 10К ; >10K изменений
- еепром , паспорт 1M ; более - FRAM . Иначе кроилово = попадалово.
или это поделка для бытовых пионеров с ардуино. Если вы считаете
что все хорошо у вас, зачем тут спрашивать, делайте и радуйтесь.
Или вам надо наше одобрение вашего выбора. - Driver_gv(04.04.2025 20:53)
- Ну да. Железка не должна плавать в море - утонет. Она же железная. А летать по небу - вообще бредятина :-) - SciFi(04.04.2025 19:50)
- Microchip с Вами не согласен abivan(1 знак., 04.04.2025 20:54, картинка)
- Для истории, из канала RISC-V Телегам Nikolay_Po(2862 знак., 04.04.2025 10:39, ссылка)
- Академическая ценность этих знаний - отлично. Но и опыта, я никогда так делать не буду, поставлю внешнюю еепром. На AUDI даже еепром сдыхает в магнитоле, которая помнит уровень громкости за 2-4 года . (не все модели - не пинать ) - Driver_gv(04.04.2025 19:53)
- Нет стандартной FLASH которая бы работала как вы описываете даже с
учетом "прозрачного" отображения.Описанное похоже на особенности
NAND, только нестандартного типа. У стандартной страницы по 512
байт и стираемый блок по 128Кб. - 3m(04.04.2025 16:17)
- Не понимаю сути вашего замечания. Есть конкретный микроконтроллер. В нём есть память, заявленная как FLASH. Есть команды стирания 256 байт, 4кБ и 32кБ. Какая она - NAND или какая-то ещё, - производитель не раскрывает. Nikolay_Po(282 знак., 04.04.2025 16:28)
- Вот интересная инфа, что скажете? >>> SciFi(1 знак., 04.04.2025 16:28, ссылка)
- Оно ж вроде давно известно, что у них внутре SPI NOR флеша отдельным кристаллом? - LightElf(04.04.2025 18:52)
- Спасибо! Супер! Nikolay_Po(358 знак., 04.04.2025 16:36)
- Очень похоже на SPI SerialFlash M25PExx от Micron. reZident(1 знак., 04.04.2025 16:40, картинка)
- Вряд ли внутре WCH стоит Micron. Скорее какая-нибудь Zetta, вроде
ZD25WD20B LightElf(1 знак., 04.04.2025 18:50, картинка)
- Нашёлся >>> SciFi(1 знак., 04.04.2025 19:44, ссылка)
- Суффикс читается как-то неблагозвучно. - Nikolay_Po(04.04.2025 22:03)
- 0H-SSH-IT... Нарочно не придумаешь :-) - SciFi(04.04.2025 22:04)
- Это из CH32V203? - Nikolay_Po(04.04.2025 21:59)
- У меня на столе CH32V307. Но, судя по ушам, внутри 203 то же самое. - SciFi(04.04.2025 22:00)
- Спасибо. - Nikolay_Po(04.04.2025 22:02)
- У меня на столе CH32V307. Но, судя по ушам, внутри 203 то же самое. - SciFi(04.04.2025 22:00)
- По сигнатуркам вычислили или просто предположение? - LightElf(04.04.2025 19:46)
- По сигнатурам. Можете тоже повычислять: SciFi(1 знак., 04.04.2025 19:47, ссылка)
- Лень ;-) - LightElf(04.04.2025 19:48)
- По сигнатурам. Можете тоже повычислять: SciFi(1 знак., 04.04.2025 19:47, ссылка)
- Суффикс читается как-то неблагозвучно. - Nikolay_Po(04.04.2025 22:03)
- Я не о конкретном чипе, а о технологии. И этта ... чтобы приоритеты
в технологиях понимать, вы сравните когда Flash начала производить
Micron Technology (лет 20 назад, а вообще компания была создана в
1978) и когда китайская Zetta Device Technology, Ltd (созданная в
2013 году). - reZident(04.04.2025 19:05)
- Тут вроде ж про WCH речь идет, а не о том кто флеш изобрел? - LightElf(04.04.2025 19:09)
- Мля, где вы увидели мое утверждение про наличие Flash от Micron
внутри МК WCH? Слово "похоже" вас триггернуло? Похоже это в
отношении устройства/принципа записи, а не самого кристалла. - reZident(04.04.2025 19:12)
- Гм, а зачем вы вообще упоминали конкретного производителя, да еще и
конкретную модель микросхемы? - LightElf(04.04.2025 19:32)
- Не модель, а тип. Например, M25PExx отличается от M25Pxx
минимальным размером единицы стирания/записи. Типовая (старая) SPI
SerialFlash имеет(ла) минимальный размер стираемого блока (сектора)
по 32кБ/64кБ, а более современные могут стираться по 32кБ/4кБ/256.
Вы видимо не в курсе этих особенностей поэтому и триггернули на
слове "похоже". - reZident(04.04.2025 21:35)
- В этой ветке бедуины с удивлением открывают для себя общеизвестные
вещи. Что, оказывается, у CH32 флеш висит на SPI, что современные
SPI флешки умеют стирать страницами по 256 байт, что в Китае
хренова гора производителей флеша.. Продолжаю наблюдения, ожидаю
много других интересных открытий. - LightElf(05.04.2025 00:01)
- Я был немного разочарован тем, что минимальная запись размером со страницу 256 байт. - SciFi(05.04.2025 08:13)
- В этой ветке бедуины с удивлением открывают для себя общеизвестные
вещи. Что, оказывается, у CH32 флеш висит на SPI, что современные
SPI флешки умеют стирать страницами по 256 байт, что в Китае
хренова гора производителей флеша.. Продолжаю наблюдения, ожидаю
много других интересных открытий. - LightElf(05.04.2025 00:01)
- Не модель, а тип. Например, M25PExx отличается от M25Pxx
минимальным размером единицы стирания/записи. Типовая (старая) SPI
SerialFlash имеет(ла) минимальный размер стираемого блока (сектора)
по 32кБ/64кБ, а более современные могут стираться по 32кБ/4кБ/256.
Вы видимо не в курсе этих особенностей поэтому и триггернули на
слове "похоже". - reZident(04.04.2025 21:35)
- Гм, а зачем вы вообще упоминали конкретного производителя, да еще и
конкретную модель микросхемы? - LightElf(04.04.2025 19:32)
- Мля, где вы увидели мое утверждение про наличие Flash от Micron
внутри МК WCH? Слово "похоже" вас триггернуло? Похоже это в
отношении устройства/принципа записи, а не самого кристалла. - reZident(04.04.2025 19:12)
- Тут вроде ж про WCH речь идет, а не о том кто флеш изобрел? - LightElf(04.04.2025 19:09)
- Нашёлся >>> SciFi(1 знак., 04.04.2025 19:44, ссылка)
- Вряд ли внутре WCH стоит Micron. Скорее какая-нибудь Zetta, вроде
ZD25WD20B LightElf(1 знак., 04.04.2025 18:50, картинка)
- Очень похоже на SPI SerialFlash M25PExx от Micron. reZident(1 знак., 04.04.2025 16:40, картинка)
- АМУР32 (без Flash-памяти) + SPI SerialFlash унутре МК от WCH? Я
правильно понял? - reZident(04.04.2025 16:34)
- Ну вы же понимаете, что в нынешнее время гораздо вероятнее, что WCH внутре АМУР32 :-) - SciFi(04.04.2025 16:35)
- сделайте кольцевой буфер, - дописывайте без стирания страницу, пока
она не заполнится (не приблизится к концу), смещение адреса, ессно
тоже надо сохранять, или писать в конец вектора данных сигнатуру
маркера окончания (ну или просто определять по признаку "FF-до
конца"). стирать страницу можно заранее, когда понятно, что
следующий вектор не поместится, когда проц ещё на полноценном
питании. - Adept(02.04.2025 13:28)
- Это всё реализовано в другом проекте с NOR FLASH. - Nikolay_Po(02.04.2025 14:08)
- что мешает здесь так же поступить? - Adept(02.04.2025 14:36)
- Не хочу. Интуиция подсказывает, что там где был один чип, должен
остаться один. Nikolay_Po(447 знак., 02.04.2025 17:39)
- дык и оставить один (спич о встроенной флеши МК, надеюсь инструкции
самопрограммирования он поддерживает ??) - Adept(02.04.2025 21:52)
- Поддерживает. Но с говорками, см. заглавное сообщение темы. - Nikolay_Po(02.04.2025 22:02)
- дык и оставить один (спич о встроенной флеши МК, надеюсь инструкции
самопрограммирования он поддерживает ??) - Adept(02.04.2025 21:52)
- Не хочу. Интуиция подсказывает, что там где был один чип, должен
остаться один. Nikolay_Po(447 знак., 02.04.2025 17:39)
- что мешает здесь так же поступить? - Adept(02.04.2025 14:36)
- Это всё реализовано в другом проекте с NOR FLASH. - Nikolay_Po(02.04.2025 14:08)
- Мне кажется что вы решаете несуществующую проблему. Для WCH не
пришлось размазывать данные вообще. Что за желание экономить ресурс
таким образом? - General(02.04.2025 08:19)
- Зависит от задачи. Бывает, нужно часто писать и максимально долго.
Большой объём, допустим, с половину набортной флеши. Задача
логгера, например. Nikolay_Po(338 знак., 02.04.2025 09:32)
- Если иметь буфер ОЗУ 256 байт и скидывать его в флеш в случае
шухера, все эти схемы могут работать. Но проще поставить SPI флешку
и делать всё это привычным образом. - SciFi(02.04.2025 10:48)
- У меня платка в габаритах DIP-40. За вычетом гребёнок соединителя,
едва разместил кварц и стабилизатор питания. Текущий проект -
замена старых МК DIP-40. Пока всё складывается так, что
пользователи просто вытаскивают старый DIP-40 из панельки и
вставляют новый, на платке, в эту же панельку. - Nikolay_Po(02.04.2025 10:50)
- Ну как бы прежде чем делать платку, нужно прикинуть, сможет ли она
выдавать функционал, который требуется, нет? - SciFi(02.04.2025 10:52)
- У меня есть уверенность, что так или иначе, я смогу сохранить 16 байт во флеш. - Nikolay_Po(02.04.2025 11:18)
- Ну как бы прежде чем делать платку, нужно прикинуть, сможет ли она
выдавать функционал, который требуется, нет? - SciFi(02.04.2025 10:52)
- У меня платка в габаритах DIP-40. За вычетом гребёнок соединителя,
едва разместил кварц и стабилизатор питания. Текущий проект -
замена старых МК DIP-40. Пока всё складывается так, что
пользователи просто вытаскивают старый DIP-40 из панельки и
вставляют новый, на платке, в эту же панельку. - Nikolay_Po(02.04.2025 10:50)
- Вот читаю я эти ваши страдания и не понимаю одного: щас ЕЕПРОМ с
конским объёмом стоит копейки. Ресурс её, на конские порядки,
превышает ресурс флэши ЦПУ. Её физически нельзя испортить по сбою,
если сделано правильно. Не нужны всякие половые извращения с
прерываниями при записи. Нахуя, а главное, зачем, использовать
потанцэвальный источник геморроя в товарной продукцыи? - mse homjak(02.04.2025 10:46)
- у многих CH32 флэш устроена специфически - есть область из которой
программа при старте копируется в теневое ОЗУ и оттуда выполняется,
но теневое ОЗУ не перекрывает весь флэш, остается большой кусок.
Это прямо провоцирует придумать для этого куска флэш какое-то
применение. - AlexG(02.04.2025 14:50)
- Конкретно у CH32V203 с 32..64к флеши, областей вне теневого ОЗУ нет. Тесты стирания/записи/перезаписи я делал, читая из адресов прямого доступа к FLASH, что с 0x0800000. - Nikolay_Po(02.04.2025 17:43)
- На днях я измерил скорость выполнения кода из этого флеша: SciFi(1 знак., 02.04.2025 14:52, ссылка)
- Время доступа к данным из EEPROM на порядки превосходит время
доступа к данным из флэша. С точки зрения ЭМС отдельная м/с,
работающая на высокой частоте, источник геморроя. Общие размеры
могут быть ограничены. - AlexBi(02.04.2025 11:19)
- Когда надо "доступать", то грузят оптом в память. Это ещо быстрее получается. С точки зрения ЭМС, это всё хня какая-то. Ну, разве что, поставить ЕЕПРОМку в полуметре от проца и постоянно хреначить на 10-20МГц. Что касаемо размеров, то найти место под ТССОП или СОТ-23, не проблема. - mse homjak(02.04.2025 12:52)
- К ЭМС у меня, слава Богу, обычные требования и нет внешних, не
развязанных линий, но габариты ограничены весьма. Nikolay_Po(14 знак., 02.04.2025 11:24, картинка)
- Кварец, зараза, всё испортил :-) - SciFi(02.04.2025 11:26)
- И ЭМС, и габариты. Но родная плата похуже будет с т.з. ЭМС. Так что
работать будет. Главное, чтобы от -20 до +60 была стабильной
частота UART'а. - Nikolay_Po(02.04.2025 11:33)
- да на эту плату в три раза больше можно, чем стоит :)) как
правильно сказали - выкиньте HC49S, поставьте KX7, поставить
FRAM/MRAM soic8, на четырёхслойке, вангую, можно разместить все
компоненты "жопа к жопе", а при подобной плотности, и на двуслойке
всё получится :) Про вторую сторону скромно умолчим, подозреваю,
что там также всё нерационально. - Adept(02.04.2025 11:54)
- Там дорожек много. Не без труда в два слоя уместил. А если мельчить
и частить, придётся на более строгие технормы производства
переходить, что дороже. - Nikolay_Po(02.04.2025 14:10)
- да ладно?! технормы 0,2 (и даже 0,15/via 0.4) стоят столько же, сколько 0,35/via 0.6 - Adept(02.04.2025 14:38)
- Полно кварцэв размером 3,2Х2,5. И генераторов, что ещо экономит
место. И ЕНки в СОТ23 - mse homjak(02.04.2025 13:16)
- Я по цене оптимизировал. - Nikolay_Po(02.04.2025 14:05)
- вот нагуглился SMD кварц совсем недорого: SciFi(1 знак., 02.04.2025 14:10, ссылка)
- И вообще, вы не следили за ходом моей мысли. Корпус кварца аутентичен кварцам, применяемым в других узлах системы. Поэтому брал в таком корпусе и с частотой, кратной УАРТу. Потом, для односторонности, взял его же, но не выводной, а поверхностный. Только лишь потому. Nikolay_Po(161 знак., 02.04.2025 18:06)
- Частота не кратная стандартному RS-232. И вообще, собранная плата у
меня сегодня уже появилась в руках. Так что начинаю работать уже с
предсерийным образцом. Nikolay_Po(1 знак., 02.04.2025 17:50, картинка)
- Изучите маччасть. mse homjak(185 знак., 02.04.2025 18:19)
- Если только вы не работаете на скорости выше 0,5Мбит/с, то уже начиная с примерно 10МГц частота становится пофиг. Потому, что можно настроить UART так, что ошибка не будет превышать той, которая помешала бы работе RS-232. К слову исконно-посконный EIA/TIA-232 и TIA/EIA-232-F были специфицированы для скорости всего 20кбит/с. reZident(1 знак., 02.04.2025 17:54, картинка)
- И TPL730-3.3... - mse homjak(02.04.2025 17:46)
- RS3007-3.3ASYF5 больше нравится, хотя и подороже будет. - reZident(02.04.2025 18:02)
- вот нагуглился SMD кварц совсем недорого: SciFi(1 знак., 02.04.2025 14:10, ссылка)
- Я по цене оптимизировал. - Nikolay_Po(02.04.2025 14:05)
- Там дорожек много. Не без труда в два слоя уместил. А если мельчить
и частить, придётся на более строгие технормы производства
переходить, что дороже. - Nikolay_Po(02.04.2025 14:10)
- да на эту плату в три раза больше можно, чем стоит :)) как
правильно сказали - выкиньте HC49S, поставьте KX7, поставить
FRAM/MRAM soic8, на четырёхслойке, вангую, можно разместить все
компоненты "жопа к жопе", а при подобной плотности, и на двуслойке
всё получится :) Про вторую сторону скромно умолчим, подозреваю,
что там также всё нерационально. - Adept(02.04.2025 11:54)
- И ЭМС, и габариты. Но родная плата похуже будет с т.з. ЭМС. Так что
работать будет. Главное, чтобы от -20 до +60 была стабильной
частота UART'а. - Nikolay_Po(02.04.2025 11:33)
- Кварец, зараза, всё испортил :-) - SciFi(02.04.2025 11:26)
- Не позволяют габариты. Хочу односторонний монтаж. При тщательной
проработке, геморрой будет обнаружен и вылечен превентивно. - Nikolay_Po(02.04.2025 10:52)
- Этта... Односторонний монтаж или плата? Втыкаемо-вытыкаемые
односторонние платы, без металлизированных отверстий, шибко не
любят долго жить. Иногда не переживают первого раза. - mse homjak(02.04.2025 13:49)
- Монтаж односторонний. - Nikolay_Po(02.04.2025 14:04)
- позвольте спросить, - а зачем? и почему компоненты со стороны
панельки? это же неправильно (компоненты могут упираться в балки
панели), хотя по высоте изоляторов PLS проходит (ну исключая
кварец). Или с обратной стороны красивые рекламные картинки
шелкухой и имерсионным золотом?? (что не вяжется со стремлением
удешевления :)) - Adept(02.04.2025 14:42)
- Чтобы можно было покрасить чёрной краской и не смущать людей
странной конструкцией. - Nikolay_Po(02.04.2025 18:02)
- Кого вы боитесь засмущать, когда мир захватили овноподелия
Ардуино-стуле. - mse homjak(02.04.2025 18:29)
- В некоторых случаях, желательно, чтобы вид оборудования не сильно отличался от фотографий из руководств и документов. - Nikolay_Po(02.04.2025 18:42)
- Кого вы боитесь засмущать, когда мир захватили овноподелия
Ардуино-стуле. - mse homjak(02.04.2025 18:29)
- Чтобы можно было покрасить чёрной краской и не смущать людей
странной конструкцией. - Nikolay_Po(02.04.2025 18:02)
- позвольте спросить, - а зачем? и почему компоненты со стороны
панельки? это же неправильно (компоненты могут упираться в балки
панели), хотя по высоте изоляторов PLS проходит (ну исключая
кварец). Или с обратной стороны красивые рекламные картинки
шелкухой и имерсионным золотом?? (что не вяжется со стремлением
удешевления :)) - Adept(02.04.2025 14:42)
- Монтаж односторонний. - Nikolay_Po(02.04.2025 14:04)
- Ну, бросить в качестве перемычек пару 0603, вместо того, чтобы
надеяться на обнаружэние геморроя? Через пол-года/год?
Восстановление флэши елевизеров, раз в пару лет, кормит несчотное
количество елемастеров. Но мы-то суровые промышленники. Там-то это
зачем? - mse homjak(02.04.2025 11:04)
- Они съёмные. Возьмут из ЗиП и вставят другую в худшем случае. Я
сейчас всё исследую и сделаю как надо. Оборудование "мишн
критикал", но кратно резервировано и сейчас работает намного хуже,
чем будет. - Nikolay_Po(02.04.2025 11:20)
- Решэние спорное, ну то такэ.. - mse homjak(02.04.2025 12:55)
- Они съёмные. Возьмут из ЗиП и вставят другую в худшем случае. Я
сейчас всё исследую и сделаю как надо. Оборудование "мишн
критикал", но кратно резервировано и сейчас работает намного хуже,
чем будет. - Nikolay_Po(02.04.2025 11:20)
- Этта... Односторонний монтаж или плата? Втыкаемо-вытыкаемые
односторонние платы, без металлизированных отверстий, шибко не
любят долго жить. Иногда не переживают первого раза. - mse homjak(02.04.2025 13:49)
- у многих CH32 флэш устроена специфически - есть область из которой
программа при старте копируется в теневое ОЗУ и оттуда выполняется,
но теневое ОЗУ не перекрывает весь флэш, остается большой кусок.
Это прямо провоцирует придумать для этого куска флэш какое-то
применение. - AlexG(02.04.2025 14:50)
- Если иметь буфер ОЗУ 256 байт и скидывать его в флеш в случае
шухера, все эти схемы могут работать. Но проще поставить SPI флешку
и делать всё это привычным образом. - SciFi(02.04.2025 10:48)
- Эмуляция EEPROM - вполне себе обычная задача. Wear leveling - один
из важных аспектов этой задачи. - SciFi(02.04.2025 08:37)
- Вот именно это совершенно ненужная вещь. WCH успевает записать
данные из ОЗУ во флэш при снятии питания. - General(02.04.2025 08:40)
- С этого момента поподробнее, пожалуйста. Там есть что-то типа
Microchip EERAM? SciFi(1 знак., 02.04.2025 08:45, ссылка)
- Это EERAM устроена таким образом как я использую WCH, рассказываю
примерно General(366 знак., 02.04.2025 11:56 - 22:20, картинка)
- А о каком из WCH'й идет речь? Это без стирания страницы? Tech_(88 знак., 02.04.2025 17:47)
- "с EEPROM была минута", а почему бы не использовать FRAM? - reZident(02.04.2025 13:11)
- Эта ФРАМ будет дороже самого МК. - Nikolay_Po(02.04.2025 14:05)
- Моя реализация возникла именно из-за ответа на этот вопрос - General(02.04.2025 14:49)
- Тогда надо было уточнить, что EEPROM эта встроена в МК, а не в виде отдельной м/с. - reZident(02.04.2025 14:52)
- ну, заложить "в цену прибора" :)) самая дешёвая на 2К 70-80р стоит. А если нужно кратковремннно переждать блэкаут (ну там до нескольких дней/недель, то МК в слипдауне, с буферным питанием SRAM MK от электролита (или даже высокоёмкой керамики), спасёт отца русской демократии. У меня помнится эмулятор РФПЗУ на РУ10 с 100мкф электролитом неделями держал информацию :)) - Adept(02.04.2025 14:36)
- Моя реализация возникла именно из-за ответа на этот вопрос - General(02.04.2025 14:49)
- Эта ФРАМ будет дороже самого МК. - Nikolay_Po(02.04.2025 14:05)
- Это EERAM устроена таким образом как я использую WCH, рассказываю
примерно General(366 знак., 02.04.2025 11:56 - 22:20, картинка)
- С этого момента поподробнее, пожалуйста. Там есть что-то типа
Microchip EERAM? SciFi(1 знак., 02.04.2025 08:45, ссылка)
- Вот именно это совершенно ненужная вещь. WCH успевает записать
данные из ОЗУ во флэш при снятии питания. - General(02.04.2025 08:40)
- Зависит от задачи. Бывает, нужно часто писать и максимально долго.
Большой объём, допустим, с половину набортной флеши. Задача
логгера, например. Nikolay_Po(338 знак., 02.04.2025 09:32)
- Дык это прямо написано в доках, не? - SciFi(02.04.2025 07:55)
- Я бы не надеялся на "дозапись" уже записанной области флешь без
стирания. Выпустят новую ревизию чипа - там будет все по другому.
Кстати, даже STM32F1 не поддерживала "дозапись". Если попробуешь на
записанное место (где нет 0xFFFF) записать что-то другое, в
рассчете что стертые "1" превратятся в "0", то результат на самом
деле будет непредсказуемым. Я пытался на нем делать оптимизацию
записи - если новое значение при записи изменяет биты только с "1"
на "0", но не il-2(124 знак., 02.04.2025 07:40, ссылка)
- В стм флеше есть контрольные биты, поэтому и невозможно дописать
слово, о чем в документации прямо сказано. Здесь же китайцы мутят
как обычно втихую. - Andreas(02.04.2025 12:06)
- По поводу STM32F10x не сказано там про контрольные биты. Но
сказано, что перед записью проверяется, что ячейка стёрта. - SciFi(02.04.2025 12:13)
- Толи в апнотах, толи в форумах было объяснение, почему именно такой
изврат в стм. - Andreas(02.04.2025 12:44)
- В форумах могли такую версию высказать. Потому что, например, для STM32L0xx сказано: "ECC (Error Correction Code): 6 bits stored for every word to recognize and correct just one error". - SciFi(02.04.2025 12:53)
- Толи в апнотах, толи в форумах было объяснение, почему именно такой
изврат в стм. - Andreas(02.04.2025 12:44)
- По поводу STM32F10x не сказано там про контрольные биты. Но
сказано, что перед записью проверяется, что ячейка стёрта. - SciFi(02.04.2025 12:13)
- Спасибо за информацию. Относительно вашего случая по вашей ссылке выше, отмечу: Nikolay_Po(670 знак., 02.04.2025 09:40)
- В стм флеше есть контрольные биты, поэтому и невозможно дописать
слово, о чем в документации прямо сказано. Здесь же китайцы мутят
как обычно втихую. - Andreas(02.04.2025 12:06)
- Аналогичная перезапись в режиме совместимости, по два байта, без стирания, даёт ровно записываемые байты, без искажения как в примере с "быстрой" записью страницы. - Nikolay_Po(02.04.2025 06:50)
- Вот вывод тестовой программы (перезапись в "быстром" режиме, сразу
256-ю байтами, все 0xFF): Nikolay_Po(9698 знак., 02.04.2025 06:45)
- Докладываю: при чтении и при записи FLASH, данные, блоками по 16 бит, подвергаются операции "исключающее или" (XOR) со значением 0x1CC6. Nikolay_Po(7475 знак., 03.04.2025 16:55)
- Имею вопрос. Если честного флэша нет, и прога грузится в sram из
spi flash и оттуда из sram исполняется, то можно после запуска
менять память программ (в загруженной копии в sram)? Или разместить
.data сразу в flash, убрав копирование в стартапе. - VVB(12.04.2026 20:23)