Skip to content

Added support for 40MHz crystal frequency #3025

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 11 commits into from
Closed
29 changes: 29 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
menu.UploadSpeed=Upload Speed
menu.CpuFrequency=CPU Frequency
menu.CrystalFrequency=Crystal Frequency
menu.FlashSize=Flash Size
menu.FlashMode=Flash Mode
menu.FlashFreq=Flash Frequency
Expand All @@ -23,6 +24,7 @@ generic.serial.disableRTS=true

generic.build.mcu=esp8266
generic.build.f_cpu=80000000L
generic.build.f_crystal=1
generic.build.board=ESP8266_ESP01
generic.build.core=esp8266
generic.build.variant=generic
Expand All @@ -36,6 +38,13 @@ generic.menu.CpuFrequency.80.build.f_cpu=80000000L
generic.menu.CpuFrequency.160=160 MHz
generic.menu.CpuFrequency.160.build.f_cpu=160000000L

generic.menu.CrystalFrequency.26=26 MHz
generic.menu.CrystalFrequency.26.build.f_crystal=1
generic.menu.CrystalFrequency.40=40 MHz
generic.menu.CrystalFrequency.40.build.f_crystal=0
generic.menu.CrystalFrequency.24=24 MHz
generic.menu.CrystalFrequency.24.build.f_crystal=2

generic.menu.FlashFreq.40=40MHz
generic.menu.FlashFreq.40.build.flash_freq=40
generic.menu.FlashFreq.80=80MHz
Expand Down Expand Up @@ -246,6 +255,7 @@ esp8285.serial.disableRTS=true

esp8285.build.mcu=esp8266
esp8285.build.f_cpu=80000000L
esp8285.build.f_crystal=1
esp8285.build.board=ESP8266_ESP01
esp8285.build.core=esp8266
esp8285.build.variant=generic
Expand Down Expand Up @@ -351,6 +361,7 @@ espduino.serial.disableRTS=true

espduino.build.mcu=esp8266
espduino.build.f_cpu=80000000L
espduino.build.f_crystal=1
espduino.build.board=ESP8266_ESP13
espduino.build.core=esp8266
espduino.build.variant=ESPDuino
Expand Down Expand Up @@ -414,6 +425,7 @@ huzzah.serial.disableRTS=true

huzzah.build.mcu=esp8266
huzzah.build.f_cpu=80000000L
huzzah.build.f_crystal=1
huzzah.build.board=ESP8266_ESP12
huzzah.build.core=esp8266
huzzah.build.variant=adafruit
Expand Down Expand Up @@ -465,6 +477,7 @@ espresso_lite_v1.upload.wait_for_upload_port=true

espresso_lite_v1.build.mcu=esp8266
espresso_lite_v1.build.f_cpu=80000000L
espresso_lite_v1.build.f_crystal=1
espresso_lite_v1.build.board=ESP8266_ESPRESSO_LITE_V1
espresso_lite_v1.build.core=esp8266
espresso_lite_v1.build.variant=espresso_lite_v1
Expand Down Expand Up @@ -570,6 +583,7 @@ espresso_lite_v2.upload.wait_for_upload_port=true

espresso_lite_v2.build.mcu=esp8266
espresso_lite_v2.build.f_cpu=80000000L
espresso_lite_v2.build.f_crystal=1
espresso_lite_v2.build.board=ESP8266_ESPRESSO_LITE_V2
espresso_lite_v2.build.core=esp8266
espresso_lite_v2.build.variant=espresso_lite_v2
Expand Down Expand Up @@ -675,6 +689,7 @@ phoenix_v1.upload.wait_for_upload_port=true

phoenix_v1.build.mcu=esp8266
phoenix_v1.build.f_cpu=80000000L
phoenix_v1.build.f_crystal=1
phoenix_v1.build.board=ESP8266_PHOENIX_V1
phoenix_v1.build.core=esp8266
phoenix_v1.build.variant=phoenix_v1
Expand Down Expand Up @@ -780,6 +795,7 @@ phoenix_v2.upload.wait_for_upload_port=true

phoenix_v2.build.mcu=esp8266
phoenix_v2.build.f_cpu=80000000L
phoenix_v2.build.f_crystal=1
phoenix_v2.build.board=ESP8266_PHOENIX_V2
phoenix_v2.build.core=esp8266
phoenix_v2.build.variant=phoenix_v2
Expand Down Expand Up @@ -889,6 +905,7 @@ nodemcu.serial.disableRTS=true

nodemcu.build.mcu=esp8266
nodemcu.build.f_cpu=80000000L
nodemcu.build.f_crystal=1
nodemcu.build.board=ESP8266_NODEMCU
nodemcu.build.core=esp8266
nodemcu.build.variant=nodemcu
Expand Down Expand Up @@ -953,6 +970,7 @@ nodemcuv2.serial.disableRTS=true

nodemcuv2.build.mcu=esp8266
nodemcuv2.build.f_cpu=80000000L
nodemcuv2.build.f_crystal=1
nodemcuv2.build.board=ESP8266_NODEMCU
nodemcuv2.build.core=esp8266
nodemcuv2.build.variant=nodemcu
Expand Down Expand Up @@ -1018,6 +1036,7 @@ modwifi.serial.disableRTS=true

modwifi.build.mcu=esp8266
modwifi.build.f_cpu=80000000L
modwifi.build.f_crystal=1
modwifi.build.board=MOD_WIFI_ESP8266
modwifi.build.core=esp8266
modwifi.build.variant=generic
Expand Down Expand Up @@ -1072,6 +1091,7 @@ thing.serial.disableRTS=true

thing.build.mcu=esp8266
thing.build.f_cpu=80000000L
thing.build.f_crystal=1
thing.build.board=ESP8266_THING
thing.build.core=esp8266
thing.build.variant=thing
Expand Down Expand Up @@ -1125,6 +1145,7 @@ thingdev.serial.disableRTS=true

thingdev.build.mcu=esp8266
thingdev.build.f_cpu=80000000L
thingdev.build.f_crystal=1
thingdev.build.board=ESP8266_THING_DEV
thingdev.build.core=esp8266
thingdev.build.variant=thing
Expand Down Expand Up @@ -1174,6 +1195,7 @@ esp210.serial.disableRTS=true

esp210.build.mcu=esp8266
esp210.build.f_cpu=80000000L
esp210.build.f_crystal=1
esp210.build.board=ESP8266_ESP210
esp210.build.core=esp8266
esp210.build.variant=generic
Expand Down Expand Up @@ -1233,6 +1255,7 @@ esp210.menu.FlashSize.4M1M.build.spiffs_pagesize=256
#
# wifio.build.mcu=esp8266
# wifio.build.f_cpu=80000000L
# wifio.build.f_crystal=1
# wifio.build.board=ESP8266_WIFIO
# wifio.build.core=esp8266
# wifio.build.variant=wifio
Expand Down Expand Up @@ -1265,6 +1288,7 @@ d1_mini.serial.disableRTS=true

d1_mini.build.mcu=esp8266
d1_mini.build.f_cpu=80000000L
d1_mini.build.f_crystal=1
d1_mini.build.board=ESP8266_WEMOS_D1MINI
d1_mini.build.core=esp8266
d1_mini.build.variant=d1_mini
Expand Down Expand Up @@ -1330,6 +1354,7 @@ d1.serial.disableRTS=true

d1.build.mcu=esp8266
d1.build.f_cpu=80000000L
d1.build.f_crystal=1
d1.build.board=ESP8266_WEMOS_D1MINI
d1.build.core=esp8266
d1.build.variant=d1
Expand Down Expand Up @@ -1397,6 +1422,7 @@ espino.serial.disableRTS=true

espino.build.mcu=esp8266
espino.build.f_cpu=80000000L
espino.build.f_crystal=1
espino.build.board=ESP8266_ESP12
espino.build.core=esp8266
espino.build.variant=espino
Expand Down Expand Up @@ -1472,6 +1498,7 @@ espinotee.serial.disableRTS=true

espinotee.build.mcu=esp8266
espinotee.build.f_cpu=80000000L
espinotee.build.f_crystal=1
espinotee.build.board=ESP8266_ESP13
espinotee.build.core=esp8266
espinotee.build.variant=espinotee
Expand Down Expand Up @@ -1536,6 +1563,7 @@ wifinfo.serial.disableRTS=true

wifinfo.build.mcu=esp8266
wifinfo.build.core=esp8266
wifinfo.build.f_crystal=1
wifinfo.build.variant=wifinfo
wifinfo.build.board=WIFINFO
wifinfo.build.spiffs_pagesize=256
Expand Down Expand Up @@ -1667,6 +1695,7 @@ coredev.serial.disableRTS=true

coredev.build.mcu=esp8266
coredev.build.f_cpu=80000000L
coredev.build.f_crystal=1
coredev.build.board=ESP8266_ESP01
coredev.build.core=esp8266
coredev.build.variant=generic
Expand Down
8 changes: 5 additions & 3 deletions cores/esp8266/core_esp8266_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
#include "ets_sys.h"
#include "spi_flash.h"

#ifndef F_CRYSTAL
#define F_CRYSTAL 1
#endif

static const uint8_t ICACHE_FLASH_ATTR phy_init_data[128] =
{
[0] = 5, // Reserved, do not change
Expand Down Expand Up @@ -88,9 +92,7 @@ static const uint8_t ICACHE_FLASH_ATTR phy_init_data[128] =
// 0: 40MHz
// 1: 26MHz
// 2: 24MHz
[48] = 1,


[48] = F_CRYSTAL,

// sdio_configure
// 0: Auto by pin strapping
Expand Down
7 changes: 7 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "framework-arduinoespressif8266",
"description": "Arduino Wiring-based Framework (ESP8266 Core)",
"system": "all",
"url": "https://github.com/esp8266/Arduino",
"version": "1.20500.0-dev"
}
6 changes: 3 additions & 3 deletions platform.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,13 @@ recipe.hooks.core.prebuild.1.pattern=bash -c "mkdir -p {build.path}/core && echo
recipe.hooks.core.prebuild.1.pattern.windows=

## Compile c files
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} -DF_CRYSTAL={build.f_crystal} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

## Compile c++ files
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} -DF_CRYSTAL={build.f_crystal} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

## Compile S files
recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.S.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.S.flags} -DF_CPU={build.f_cpu} -DF_CRYSTAL={build.f_crystal} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"

## Create archives
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/arduino.ar" "{object_file}"
Expand Down