pvvx
Активный участник сообщества
Стандартно, у нас имеется такой ряд частот для CPU:
0 - 166 666 666.666667 Гц
1 - 83 333 333.333333 Гц
2 - 41 666 666.666667 Гц
3 - 20 833 333.333333 Гц
4 - 10 416 666.666667 Гц
5 - 4 000 000 Гц
Задается в 3-х битах REG_SYS_CLK_CTRL1.
Но, если записать бит 17 в REG_SYS_SYSPLL_CTRL1, то получим:
0 - 200 000 000 Гц
1 - 100 000 000 Гц
2 - 50 000 000 Гц
3 - 25 000 000 Гц
4 - 12 500 000 Гц
5 - 4 000 000 Гц
Но это не все варианты. У нас есть ещё PLL. Но это потестирую потом...
А пока побалуемся мультиплексором делителя - пробуем пустить модуль RTL00 с RTL8710AF на 200 МГц для проверки работоспособности:
# ATSD=40000074
40000074: 00A85800 00800028 00000000 00000000
# ATXD=40000074,0AA5800
addr: 0x40000074; value:0xaa5800
Тут частота UART тоже уплыла на 38400*200/166 = 46265 bps
Меняем в terminale и работаем далее:
# ATST
CLK CPU 200000000 Hz
RAM heap 71600 bytes
TCM heap 21992 bytes
...
Далее:
# ATPW=3
# ATPA=RTL8710,0123456789,1,0
# ATSW=c*
Соединяемся с SSID: RTL8710
# ATW?
...
WIFI wlan1 Setting:
==============================
MODE => AP
SSID => RTL8710
CHANNEL => 1
SECURITY => AES
PASSWORD => 0123456789
Interface (wlan1)
==============================
MAC => 00:f8:87:11:00:13
IP => 192.168.43.1
GW => 192.168.43.1
...
Ползем на http://192.168.43.1
Всё Ok.
В прошивке AT модуль даже не греется (это же не ESP8266!)
Дополнение: RTL8710AF - загрузчик в ROM-BIOS
*После описанных установок AP, при следующей загрузке модуля в AT, достаточно написать "ATSW=c" и web с AP запуститься.
0 - 166 666 666.666667 Гц
1 - 83 333 333.333333 Гц
2 - 41 666 666.666667 Гц
3 - 20 833 333.333333 Гц
4 - 10 416 666.666667 Гц
5 - 4 000 000 Гц
Задается в 3-х битах REG_SYS_CLK_CTRL1.
Но, если записать бит 17 в REG_SYS_SYSPLL_CTRL1, то получим:
0 - 200 000 000 Гц
1 - 100 000 000 Гц
2 - 50 000 000 Гц
3 - 25 000 000 Гц
4 - 12 500 000 Гц
5 - 4 000 000 Гц
Код:
int CpkClkTbl[6] = { 200000000, 100000000, 50000000, 25000000, 12500000, 4000000 };
unsigned int HalGetCpuClk()
{
unsigned int result = CpkClkTbl[(HAL_SYS_CTRL_READ32(REG_SYS_CLK_CTRL1) >> BIT_SHIFT_PESOC_OCP_CPU_CK_SEL) & BIT_MASK_PESOC_OCP_CPU_CK_SEL]; // [0x40000014]
if ( !(HAL_SYS_CTRL_READ32(REG_SYS_SYSPLL_CTRL1) & (1<<17)) && result > 4000000 ) // [0x40000074]
result = 5 * result / 6;
return result;
}
А пока побалуемся мультиплексором делителя - пробуем пустить модуль RTL00 с RTL8710AF на 200 МГц для проверки работоспособности:
# ATSD=40000074
40000074: 00A85800 00800028 00000000 00000000
# ATXD=40000074,0AA5800
addr: 0x40000074; value:0xaa5800
Тут частота UART тоже уплыла на 38400*200/166 = 46265 bps
Меняем в terminale и работаем далее:
# ATST
CLK CPU 200000000 Hz
RAM heap 71600 bytes
TCM heap 21992 bytes
...
Далее:
# ATPW=3
# ATPA=RTL8710,0123456789,1,0
# ATSW=c*
Соединяемся с SSID: RTL8710
# ATW?
...
WIFI wlan1 Setting:
==============================
MODE => AP
SSID => RTL8710
CHANNEL => 1
SECURITY => AES
PASSWORD => 0123456789
Interface (wlan1)
==============================
MAC => 00:f8:87:11:00:13
IP => 192.168.43.1
GW => 192.168.43.1
...
Ползем на http://192.168.43.1
Всё Ok.
В прошивке AT модуль даже не греется (это же не ESP8266!)
Дополнение: RTL8710AF - загрузчик в ROM-BIOS
*После описанных установок AP, при следующей загрузке модуля в AT, достаточно написать "ATSW=c" и web с AP запуститься.
Последнее редактирование: