Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:4
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM
APB2 тактовая частота
incredi
Добавлено 21.07.2023 19:49
0
Сообщение: 1
incredi
0

Пункты: 3134
Регистрация: 11.12.2014
Как в системе задать, чтобы базовая частота для портов UART и i2c была не 24МГц, а 80Мгц? То есть для APB2 назначить PLL_PERIPH0(2X) с частотой 80 МГц.
Вручную мы это сделали, но нужна высокая скорость для одного порта, а сбиваются все остальные. В частности надо корректировать коэффициент деления на консоль.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 21.07.2023 22:59 Редактировалось 22.07.2023 11:57 Сообщение: 2
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата
Как в системе задать, чтобы базовая частота для портов UART и i2c была не 24МГц, а 80Мгц? То есть для APB2 назначить PLL_PERIPH0(2X) с частотой 80 МГц.
Вручную мы это сделали, но нужна высокая скорость для одного порта, а сбиваются все остальные. В частности надо корректировать коэффициент деления на консоль.


по отдельности видимо никак - все uart на apb2 и нет выбора источника через коммутатор. Попробуйте через DTS установить частоту apb2 - частота изменится до старта драйверов и драйверы периферии по идее должны сами скорректировать свои делители - при старте они увидят уже новую базовую частоту

Цитата

#define CLK_PLL_PERIPH0_2X 13
#define CLK_APB2 28

&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pb_pins>;
status = "okay";

assigned-clocks = <&ccu CLK_APB2>;
assigned-clock-parents = <&ccu CLK_PLL_PERIPH0_2X>;
assigned-clock-rates = <80000000>;

};


PS судя по документацию общие клоки от которых зависят несколько устройств надо менять не в ноде устроства а в самом ccu - добавить в DT вашей платы

https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/clock/clock.yaml#L59


#define CLK_PLL_PERIPH0_2X 13
#define CLK_APB2 28

&ccu {
assigned-clocks = <&ccu CLK_APB2>;
assigned-clock-parents = <&ccu CLK_PLL_PERIPH0_2X>;
assigned-clock-rates = <80000000>;
};


лог штатный

Цитата

# dmesg | grep base_baud
[ 0.275215] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 84, base_baud = 1500000) is a AW_16550A
[ 1.926318] 1c28c00.serial: ttyS3 at MMIO 0x1c28c00 (irq = 126, base_baud = 1500000) is a AW_16550A
[ 1.936379] 1c29000.serial: ttyS4 at MMIO 0x1c29000 (irq = 127, base_baud = 1500000) is a AW_16550A
[ 1.946294] 1c29400.serial: ttyS5 at MMIO 0x1c29400 (irq = 128, base_baud = 1500000) is a AW_16550A
[ 1.971303] 1c29c00.serial: ttyS7 at MMIO 0x1c29c00 (irq = 129, base_baud = 1500000) is a AW_16550A


лог после изменения частоты APB2

Цитата

# dmesg | grep base_baud
[ 0.275147] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 84, base_baud = 5000000) is a AW_16550A
[ 1.904684] 1c28c00.serial: ttyS3 at MMIO 0x1c28c00 (irq = 126, base_baud = 5000000) is a AW_16550A
[ 1.914909] 1c29000.serial: ttyS4 at MMIO 0x1c29000 (irq = 127, base_baud = 5000000) is a AW_16550A
[ 1.933672] 1c29400.serial: ttyS5 at MMIO 0x1c29400 (irq = 128, base_baud = 5000000) is a AW_16550A
[ 1.960986] 1c29c00.serial: ttyS7 at MMIO 0x1c29c00 (irq = 129, base_baud = 5000000) is a AW_16550A
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM