-
- Вторая серия: после добавления снижения в два раза HCLK перед записью во Flash стали теряться отдельные пакеты CAN (не удивительно). Наверное надо одновременно менять делитель PCLK1 в обратную сторону? Ставлю для начала в PPRE1 деление на 2 (не трогая HCLK) ...иии ничего не происходит, частота тактирования CAN прежняя. Откуда же на самом деле тактируется CAN, который, по идее, APB1 peripheral? - AlexG(29.10.2024 15:47)
- В даташите как-то коряво написано: il-2(1103 знак., 28.10.2024 16:02)
- SYSCLK это до делителя, который задает HCLK, значит и флешь
тактируется SCLK через делитель SCKMOD, а запись уже от HCLK
тактируется, судя по схеме. Выходит надо оба делителя
задействовать. Но при этом вообще непонятно, как из флеши на
частоте больше 120М работать. - Andreas(28.10.2024 16:24)
- А похоже что никак. 120 и точка. 144 только из ОЗУ. Но китайцы об
этом явно не напишут. Хитрожопые они. Но я подробно этот МК не
копал - только по верхам. Может есть другие мнения? - il-2(28.10.2024 16:29)
- Там сказано, что на старте код из флеша копируется в ОЗУ. Может,
рассудили, коли так, пусть флеш остаётся кривой? - SciFi(28.10.2024 16:32)
- Где сказано что копируется в ОЗУ? Если так, то на это при старте
нужно приличное время и это должно быть заметно. Может там все же
контроллер такой? Слышал, что произвольный доступ к памяти за один
такт это недешевая штука. Может это из этой оперы? - petrd(29.10.2024 22:04)
- Там в табличке про время выхода из сна сноска есть. И это время
около 10 мс. Ну и про разбиение ОЗУ на область для кода и просто
ОЗУ тоже в разных местах сказано. - SciFi(29.10.2024 22:08)
- Время выхода из сна - это скорей про старт осциллятора. Тогда по
логике что-то и про время старта после ресета по питанию должно
быть. Про разбиение ОЗУ - странно же. SRAM она ж не дешевая.
Выглядит странно, что ради повышенной производительности иметь на
кристалле теневую sram размером с большую часть флеши, в которую
при загрузке копируется эта часть флеши и дальше из этой sram
работать, а всем говорить, что это флеш с нулевым доступом. - petrd(30.10.2024 08:26)
- Флеш на одном кристалле с быстрой логикой - это очень отдельный техпроцесс, в который очень не все умеют. Вспоминается эпичный факап TI с LM3S9B9x. Ну этот, который LightElf(1 знак., 30.10.2024 18:39, картинка)
- Понятно. Мсье не читатель. SciFi(1 знак., 30.10.2024 08:57, картинка)
- Согласен. - petrd(30.10.2024 09:02)
- Китайцы любят так делать. У GigaDevice вся или почти вся Flash тоже грузится в RAM. Там встроенная Flash имеет последовательный интерфейс и грузится сотни мс (на частоте HSI*2). Здесь тоже что-то похожее сделано (наверное), раз у них есть области с Zero-wait и Nozero-wait. - il-2(30.10.2024 08:43)
- Время выхода из сна - это скорей про старт осциллятора. Тогда по
логике что-то и про время старта после ресета по питанию должно
быть. Про разбиение ОЗУ - странно же. SRAM она ж не дешевая.
Выглядит странно, что ради повышенной производительности иметь на
кристалле теневую sram размером с большую часть флеши, в которую
при загрузке копируется эта часть флеши и дальше из этой sram
работать, а всем говорить, что это флеш с нулевым доступом. - petrd(30.10.2024 08:26)
- Там в табличке про время выхода из сна сноска есть. И это время
около 10 мс. Ну и про разбиение ОЗУ на область для кода и просто
ОЗУ тоже в разных местах сказано. - SciFi(29.10.2024 22:08)
- Похоже, что так. Из этого (выше) Nikolay_Po(117 знак., 28.10.2024 17:28, ссылка)
- Где сказано что копируется в ОЗУ? Если так, то на это при старте
нужно приличное время и это должно быть заметно. Может там все же
контроллер такой? Слышал, что произвольный доступ к памяти за один
такт это недешевая штука. Может это из этой оперы? - petrd(29.10.2024 22:04)
- Там сказано, что на старте код из флеша копируется в ОЗУ. Может,
рассудили, коли так, пусть флеш остаётся кривой? - SciFi(28.10.2024 16:32)
- А похоже что никак. 120 и точка. 144 только из ОЗУ. Но китайцы об
этом явно не напишут. Хитрожопые они. Но я подробно этот МК не
копал - только по верхам. Может есть другие мнения? - il-2(28.10.2024 16:29)
- Упоминают так-же что есть zero-wait и non-zero-wait области, без каких-либо подробностей. Только в OPTION_BYTE есть интересное поле - SRAM_CODE_MODE, которое НАВЕРНОЕ имеет к этому какое-то отношение... - il-2(28.10.2024 16:20)
- SYSCLK это до делителя, который задает HCLK, значит и флешь
тактируется SCLK через делитель SCKMOD, а запись уже от HCLK
тактируется, судя по схеме. Выходит надо оба делителя
задействовать. Но при этом вообще непонятно, как из флеши на
частоте больше 120М работать. - Andreas(28.10.2024 16:24)
- Там надо частоту понижать в два разе перед записью во флеш - Poзoвый_cюcю(28.10.2024 15:01, )
- Интересно, а с чем связано это? Что, не смогли китайцы всякие флажки реализовать для оценки окончания записи?... POV(69 знак., 28.10.2024 13:55, картинка)
- я люблю во все возможные дырки тактовый генератор втыкнуть и
посмотреть где загнется. поробуйте эксперимент с повышением
напряжения питания - может что и выйдет. интересно. ибо снижать
скорость при модификации страницы в флеше не очень хочется. - klen(28.10.2024 11:39)
- Плата не особо удобна для экспериментов с питанием. Пока сделал снижение тактовой при записи во flash а в остальное время поднял до 144. AlexG(79 знак., 28.10.2024 13:46)
- Оно? SciFi(1 знак., 28.10.2024 10:56, картинка)
- Не совсем. Там еще делитель на 2 есть, поэтому итоговое ограничение
на тактовую ядра 120 - AlexG(28.10.2024 13:38)
- А точно /2 выбрано, на схеме выбор есть, но битика сходу не нашел. Andreas(1 знак., 28.10.2024 13:53, картинка)
- static void sys_freq_div2(void) Poзoвый_cюcю(194 знак., 28.10.2024 15:10, )
- Это на все HCLK, но нарисован отдельный делитель еще и на
программирование флеша. Но где он? - Andreas(28.10.2024 15:35)
- Во FLASH_CTRL похоже. Но все равно какая-то черепашка там пиздит, возможно что не одна. Или на рисунке лажа, или в описании делителя. il-2(1 знак., 28.10.2024 16:07, ссылка)
- Не знаю, может косяк в документации. - Poзoвый_cюcю(28.10.2024 15:39, )
- Это на все HCLK, но нарисован отдельный делитель еще и на
программирование флеша. Но где он? - Andreas(28.10.2024 15:35)
- static void sys_freq_div2(void) Poзoвый_cюcю(194 знак., 28.10.2024 15:10, )
- А точно /2 выбрано, на схеме выбор есть, но битика сходу не нашел. Andreas(1 знак., 28.10.2024 13:53, картинка)
- Не совсем. Там еще делитель на 2 есть, поэтому итоговое ограничение
на тактовую ядра 120 - AlexG(28.10.2024 13:38)