• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

RTL871x - OverClock CPU

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 Гц

Код:
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;
}
Но это не все варианты. У нас есть ещё 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
Снимок1278.gif
Всё Ok.
В прошивке AT модуль даже не греется (это же не ESP8266!) :)

Дополнение: RTL8710AF - загрузчик в ROM-BIOS

*После описанных установок AP, при следующей загрузке модуля в AT, достаточно написать "ATSW=c" и web с AP запуститься.
 
Последнее редактирование:

pvvx

Активный участник сообщества
При переключении на другое тактирование из ряда 50, 100, 200 Mhz, в SDK срабатывает ошибка в установки скорости UART-ов (переключается делитель тактирования UART c 200000000*5/12 на 200000000*1/2). Ошибка происходит из-за переполнения переменной в коде подбора делителей UART. Там 100000000*50=0x12A05F200, что превышает 32 бита и дальнейший расчет идет неверно. Если исправить (в исходнике) - то всё Ok.
При делителе и PLL на 166Mhz ошибка не сказывалась (200000000*5/12)*50=0xF85A49AA, что почти в предел 32-х бит.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Чтение какой-то SD на 200MHz CPU в rtlDuino:
Снимок1308.gif
Правда на неё контроллер ставит CLK всего 25MHz. Наверно такой класс скорости у неё? Надписей на ней нет, кроме - "Element14" от малины.
При 166MHz на неё ставит 20MHz.

@kissste - CLK UART:
166MHz, 83 МГц, ..., 4МГц -> 200000000 * 5/12 Гц
200MHz, 100MHz, ..., 4МГц -> 200000000 * 1/2 Гц

SDIOH и прилагается SD:
166MHz -> 20.834MHz
200MHz -> 25МГц
 
Последнее редактирование:
Сверху Снизу