Auf der Suche nach Neuigkeiten den ESP8266 betreffend , fand ich diesen
russischen Beitrag, der es allemal wert ist, ausprobiert zu werden:
http://esp8266.ru/forum/threads/anonsy-unofficial-development-kit-for-espressif-esp8266.32/
- obwohl ich kein Russisch kann, habe ich die Anleitung zur Installation
befolgt (alle mit "Скачиваем " - beginnenden Downloadlinks);
- während des Downloads-/Install.-prozesses erscheint auch ein Ordner
Espressif
der sinnigerweise auf C: (wie die anderen Tools auch) entpackt werden
sollte(damit die Makefiles ihn finden). Dort, unter Examples fand ich
auch die langgesuchte SPI-Anbindung für ein ili9341- Display !
Man erhält eine Eclipse-IDE die die Flashfiles anfertigt.
Ich kam nochnicht dazu, auch praktisch, am Objekt, auszuprobieren, ob
alles so klappt und das Display tatsächlich an dem "Winzling"
funktioniert, - bin aber zuversichtlich!
Daher sei dies nur als Hinweis gedacht ...
@kettenrad
'victor' - macht einen guten job.
hier eine verständliche beschreibung
http://www.esp8266.com/viewtopic.php?t=820
-> Dort, unter Examples fand ich
-> auch die langgesuchte SPI-Anbindung für ein ili9341- Display !
die projekte werden dort zusammengefasst.
der compiler ist der cross compiler
sehr schön kettenrad - wie ich sehe - verwendest du das esp-adc dil
version ;-) ich nehme es auch oft auf steckbrettern her da es das
einzige ist, dass auf jeder seite 3 reihen steckkontakte frei lässt.
denke aber dran, dass die deutsche bauserie ein anderes Flash IC
verwendet wie die üblichen; auch die serienbauteil nummer weicht ab - ef
50 13 ./. c8 40 13
wenn du etwas mit SD/SDHC probierst, probiere es erst mit einer chin.
version und achte auf die gesamt stromaufnahme, ein regulator mit 800 mA
reicht dir da nicht mehr samt ESP und SD/SDHC du brauchst dann etwas
jenseits über 1000 mA. ( nicht immer - aber sicherer test aufbau )
lg
;-)
.. schrieb:> und achte auf die gesamt stromaufnahme, ein regulator mit 800 mA> reicht dir da nicht mehr samt ESP und SD/SDHC du brauchst dann etwas> jenseits über 1000 mA. ( nicht immer - aber sicherer test aufbau )>> lg> ;-)
Hallo, Rudi !
Ich verwende den LM317T(1,5A), etwa Mitte Bild, schwach hinter dem Poti
erkennbar.
Eingangsspannung 5V aus 2A Schaltregler.
Und dennoch ist zum Starten des Programms mitunter(nicht immer) die
Unterstützung durch die 3,3V des FTDI-USB Wandlers notwendig.
Da der LM317T adjust. ist, werde ich mal, bei Gelegenheit, ausprobieren,
wie sich eine geringfügige Spannungserhöhung auf sagen wir mal 3,6V(etwa
3,6V kommen aus dem FTDI), auswirkt ...
- nach dem Tip von r_u_d_i ;-) das devkit installiert:
http://www.esp8266.com/viewtopic.php?t=820
Die meisten Example lassen sich in Eclipse-Luna builden. Bei einigen
aber nutzt auch diese Änderung im makefile nichts:
# base directory of the ESP8266 SDK package, absolute
#SDK_BASE ?= c:/Espressif/ESP8266_SDK
#SDK_BASE ?= c:/Espressif/ESP8266_SDK_095
SDK_BASE ?= c:/Espressif/ESP8266_SDK_101
Das Example esphttpd compiliert allerdings fehlerfrei über die
Kommandline
(Command line Unofficial Development Kit for Espressif ESP8266) im
Ordner Espressif.
Wenn man im makefile den richtigen Com-port für den USB-Wandler angiebt,
kann man auch bequem flashen mit "make flash" --> (reboot) --> "make
htmlflash";
Es ist allerdings nötig, bei neuen ESP und z.B. Routern(Fritz-Box)
zunächst einmalig eine Verbindung herzustellen.
Ich habe dazu über das genannte Kommand-line zunächst das Example
at_v0.20_on_SDKv0.9.4
geflasht und mit dem Tool aus C:\Espressif\utils --> Terminal.exe:
• Set WiFi mode:
AT+CWMODE=3 // softAP+station mode
Response :OK
• Connect to router:
AT+CWJAP="SSID", "password" // SSID and password of router
Response :OK
• Query device’s IP:
AT+CIFSR
Response :192.168.3.106 // Device got an IP from router.
die Verbindung über die Fritz-Box hergestellt.
Danach wird der httpd-Server geflasht ...
Das oben gezeigte Beispiel esphttpd läuft auf dem ESP-ADC. Versuche,
dies auf den esp12e zu implementieren, scheitern an der Zuordnung der
Flashbereiche.
Das Problem mit 4MB-Flash und blockweisem Zugriff ist in den Foren
hinlänglich bekannt, aber bisher wohl ungelöst.
Ich konnte keine überzeugende Lösung finden.
Offenbar überschreibt "make htmlflash" einen Bereich, in dem der
Netzwerkzugang gespeichert war.
Ich habe das esp12 nun als LUA-Interpreter laufen.
Dazu:
https://github.com/nodemcu/nodemcu-firmware
readme -->
nodemcu_latest.bin: 0x00000
for most esp8266 modules, just pull GPIO0 down and restart.
You can use the nodemcu-flasher to burn the firmware.
Or, if you build your own bin from source code.
0x00000.bin: 0x00000
0x10000.bin: 0x10000
- dann
http://www.esp8266.com/viewtopic.php?f=19&t=990
Hinzufügen möchte ich noch den Hinweis auf den ESPLORER von:
http://esp8266.ru/esplorer/
Ähnlich dem LuaLoader:
http://benlo.com/esp8266/index.html#LuaLoader
ein gutes Arbeitsmittel;
Hiermit
https://primalcortex.wordpress.com/2014/12/30/esp8266-nodemcu-and-lua-language-and-some-arduino-issues/
lässt sich "init.lua" erstellen und somit beim Start die Wifi-Verbindung
automatisch einrichten.
Wenn man
CMDFILE = "srv41.lua" -- File that is executed after connection
und die Funktion
-- Change the code of this function that it calls your code.
function launch()
print("Connected to WIFI!")
print("IP Address: " .. wifi.sta.getip())
-- Call our command file every minute.
--tmr.alarm(0, 60000, 1, function() dofile(CMDFILE) end )
dofile(CMDFILE)
end
entsprechend ändert.
Die srv41.lua wird ebenfalls über den esplorer abgespeichert.
Nun startet das Programm, sobald die Wifi- Verbindung steht ...
Weiterführend sei mir der Hinweis auf die Arduino-IDE mit esp-tool
gestattet.
Damit habe ich einen httpd-Webserver mit SD-Kartenanbindung , nach dem
Beispielsketch, auf dem esp12 am laufen:
Beitrag "Re: elm-chan SDHC Anbindungsmöglichkeiten HW SW"
Ich denke, diese (ich nenn' das mal eben so) "Wifi-SD-Karte" könnte der
zentrale Sammeipunkt für die Daten von verteilten wifi-Sensoren sein,
die dann vom PC abgerufen und bearbeitet werden(schöne bunte, graph.
Darstellung).
Dies würde dann ohne < "Cloud" irgendwo > nur im Heimnetz(oder
meinetwegen auch dynDNS) möglich sein ...
kettenrad schrieb:> Ich denke, diese (ich nenn' das mal eben so) "Wifi-SD-Karte" ...> könnte der zentrale Sammeipunkt für die Daten von verteilten wifi-> Sensoren sein, ...> Dies würde dann ohne < "Cloud" irgendwo > nur im Heimnetz(oder> meinetwegen auch dynDNS) möglich sein ...
hi kettenrad,
genau so ist. am dbs sowie am cms feile ich gerade in meinem projekt.
gleiche schwebt mir auch vor. die fw werden zentral gehalten...
benutzt du die luna mit toolchain auch? kannst du ein projekt darin
laden?
benutzt du auch xtensa ide?
lg
;-)
.. schrieb:> benutzt du die luna mit toolchain auch? kannst du ein projekt darin> laden?> benutzt du auch xtensa ide?
aus Eclipse-Luna heraus habe ich nochnicht geflasht. Geht einfacher mit
dem Flasher von nodemcu.
xtensa-IDE nutze ich nicht (mehr);
Ist schon ein Grauß, in der Arduino-IDE lowlevel Routinen anzupassen.
Mom. schreibe ich einen Treiber für Touchscreen-Kontroller ala'
ADS7846/XPT2046;
- oder meinst du Projekte laden in Luna?
hier mal (rechts) die Projekte aus den Example, die ich ausprobiert
habe.
Von den fehlerbehafteten lassen sich einige aber dennoch mit dem
Kommandline-Tool kompilieren ...
hallo kettenrad, wenn ich dir ein projekt zum ausprobieren gebe, kannst
du es mit allen drei laden ( xtensa no vm win ) , ( luna ) , ( vm
espressif ), oder nur bestimmte?
flashen kannst du mit dem flash tool 1.2 oder wie du es gewohnt bist.
;-)
- danke für das Angebot.
Ich weis, das Du auch mit Arduino-IDE unterwegs bist. Da ich da grad
rumbastle, würd ein entsprechender sketch passen. Luna-Eclipse geht
ebenfalls.
Mit espressif vm oder xtensa vm in pure währe nicht so angenehm ..
hi kettenrad
anbei zum spielen: ein universales base projekt fat32_sdhc_
da du hier die ide im thread erwähnst,
hier mal für luna ( hab es für xtensa auch , für arduino ide schreibe
ich es noch - aber erst später )
was macht es:
der komplette sdhc inhalt wird über uart gelistet ausgegeben.
dann wird ein file angelegt.
dann wird in das file geschrieben
dann wird das file geschlossen
dann wird das file wieder geöffnet
dann wird das file eingelesen und über uart der inhalt ausgegegebn.
dann wird das file wieder geschlossen.
wifi ist hier bewusst aus.
du kannst das hernehmen für
- eigenen web content
--anlegen, editieren, löschen, ausgeben usw
anschluss sdhc card
MOSI.. GPIO 13
MISO.. GPIO 12
CLK... GPIO 14
CS.... GPIO 15 !
CS ist GPIO 15 weil das projekt die base ist für das spätere booten von
sdhc....daher ist das in der jetzigen form (H)SPI
z.b. kann man über uart das firmware file selektieren welches geladen
werden soll, kein interpreter - sondern das hex file - wie ein update
über cloud.
das komplette projekt mit oled, can, dbs, cms und aes ( crypted boot )
wird es später hier im µC forum im finale geben
"have phun"
lg
;-)
sorry push'
schauh dir das makefile an und pass deinen com port an.
normalerweise musste alles passen wenn du standard installion hast.
mit clean räumst du auf
mit all machst du alles neu ( firmware )
mit flash muss der esp im bootmodus sein und der com port richtig
eingestellt, dann kannst du direkt aus luna flashen
mit flashboot das gleiche aber der esp wird dann auch resetet
guats nächtle und schöne restwoche noch.
lg
;-)
Vielen Dank für das Projekt!
Werd's testen ..
Hab viel mit STM32 entwickelt, bis, -ja bis ich an die DMA-Grenzen (mehr
als 3) stiess;
Daher noch viel waveshare-Adapter, die man nach und nach auf
esp-Tauglichkeit prüfen kann (Kamera, Flash,SRAM,Audio, usw.) :-)
p.s.:
Ich denke, Du solltest dein Projekt in die Codesammlung einstellen!
Für alle und dauerhaft ..
kettenrad schrieb:> .. noch viel waveshare-Adapter, die man nach und nach auf> esp-Tauglichkeit prüfen kann (Kamera, Flash,SRAM,Audio, usw.) :-)
ich kombiniere auch alle meine adapter ;-)
im moment ist das der enc28j60 mit etwas geschrupften stack, mal sehen.
sieht eigentlich gut aus, ( ping ok, response ok ) aber die hitze macht
einem den gar aus. am we soll es etwas abklingen.
> Für alle und dauerhaft ..
.. ist nicht so besonders kettenrad, ist nur eine base für sdhc und elm
chan auf (H)SPI. das was du draus machst ist interessant.
mein final projekt wird es hier geben, dabei ist auch der eigene
bootloader code, da espressif nicht gewillt war/ist, den bootcode
opensrc zu stellen. es dauert aber noch etwas, muss noch "aufräumen"
lg
;-)
.. schrieb:> z.b. kann man über uart das firmware file selektieren welches geladen> werden soll, kein interpreter - sondern das hex file - wie ein update> über cloud.
Verstehe ich dich da richtig?
Das ominöse Sterben des Flash auf den ESP-Boards wird damit nicht gelöst
werden können. Programme starten nicht von der SD-Karte, sondern nach
wie vor vom Flash.
Die .hex Files werden nach der Auswahl über z.B., uart, in den Flash
kopiert und ausgeführt. Wie bei einem Cloud-Update ?
kettenrad schrieb:> .. schrieb:>> z.b. kann man über uart das firmware file selektieren welches geladen>> werden soll, kein interpreter - sondern das hex file - wie ein update>> über cloud.>> Verstehe ich dich da richtig?
nicht ganz..
> Das ominöse Sterben des Flash auf den ESP-Boards wird damit nicht gelöst> werden können.
doch ;-)
> Programme starten nicht von der SD-Karte, sondern nach> wie vor vom Flash.
beides ist möglich ;-)
> Die .hex Files werden nach der Auswahl über z.B., uart, in den Flash> kopiert und ausgeführt. Wie bei einem Cloud-Update ?
ja wenn du das so willst,
du kannst aber auch direkt von der sd booten und den flash 'weglassen'
lg
;-)
AHA, - überschnitten :)
Also doch
Mit deinem bootloader soll dann ein Starten von Programmen aus der SD
möglich sein?!
Das wäre in der Tat ein Durchbruch -->
kettenrad schrieb:> Mit deinem bootloader soll dann ein Starten von Programmen aus der SD> möglich sein?!http://bbs.espressif.com/viewtopic.php?f=15&t=665
bei allen ehren zu espressif,
aber ich habe mich wegen der 'salamitaktik' etwas dazu distanziert und
daher halte ich auch das aes konzept zum bootcode noch 'zurück'
Beitrag "ESP8266 SD Card / AES256"
letzte zitat:
"Dear Rudi,
Sorry for the first requirement. We would not do that for some reason.
The second one is OK. And you could share it on bbs. It doesn’t matter.
"
vorletzte zitat:
" Hi Rudi,
We have received your mail.
For the first question, we have to discuss it internal first.
For the second question about AES256, it is OK. We are glad to have it
and see what you have done, which sounds great.
firmware protection - Communication chipper / decrypt"
meine anfrage war simple nach einer template für den bootcode bzw einen
'schalter'/'impuls' damit man andere bootmedien probieren kann
"
> can u please help me a little:>> is there a way to get the src from bootloader ( or a template ) for making own> need this for the final protection.>> or can u make a function like this:>> if the bootloader can make a temp step like this>> - load a bin file from spi flash and decrypt onthefly the crypted firmware>> then load / start the user_main()>> ..>> is this possible?>>> is this possible, that the flash download tool can read and display the CHIP ID
in next Version?
> this will be a helfull funktion for produktion.>> and please, a last question:>> question is:>> i have finnish a security pack for the esp8266. !AES256 !>> i can load protected firmware from scratch -> firmware is crypted ->> firmware support AT version with an AES256 lib that i have created> and i create the api for receive/sending AES256 packets over UART, (H)SPI, I2C,
GPIO (bitbanging)
>> i will post it near time ( asap ) video, details, projekt, ( i will do this
monday-wednesday comming week ) but i will ask you ( espressif ) before,
> can i do this . because the security pack is based at AES 256 and in some
countrys are this not allowed, ( germany no problem )
> if i post details under projekts here at bbs.espressif is this ok or do i can
not post about AES256 , hope you understand right. i will ask you ( espressif )
before
"
gerade das bootloader prizip wäre sehr schön gewesen, wenn sie es
offengelegt hätten, da ja nach dem start des esp nichts beeinflusst
werden kann, ( security ) wenn man den bootloader nicht ändern kann.
das hemmt aber auch eigene projekte anzugehen, den flash auszuspielen,
eben wegen der bit kipperei manchmal.
mein problem war bisher das coden "im reinen c" als der esp rauskam.
ich musste erst c lernen ;-) und bin immer noch dabei ;-)
lg
;-)
btw kettenrad:
sdhc base:
angeregt durch die wifi sd card, z.b. Transcends Wi-Fi SD Karte
du könntest in kombi esp&sdhc einen eigenen kleinen schmalen "SMB
Server" machen, der den kontent von der sdhc ins esp / homelan netz
stellt..
und mit prinzip des 'esplore' auch files uploaden..
- mit anderen Worten:
Dein "firmware support AT version with an AES256 lib " wurde dankend
angenommen, --> Schulterklopfen und ein gönnerhaftes "weiter so" (mach
unsere Arbeit), aber an den Kuchen lassen wir dich nicht ..
quark schrieb:> http://richard.burtons.org/2015/05/18/rboot-a-new-boot-loader-for-esp8266/
nett, aber nur für
"•Can use the full size of the SPI flash (see below)."
und gehemmt
"•Not compatible with sdk libupgrade (but equivalent source included,
based on open source copy shipped with earlier SDKs, so you can easily
update your existing OTA app use this new code).
"•Only 8MBit of flash can be memory mapped at a time (the SDK bootloader
allows at most the first 2 x 8Mbit chunks to be used for roms, rBoot
doesn’t have this limit, on a 32MBit flash you can have 4 x 8MBit roms),
see memory mapping imitation for more details."
und mit sdhc nicht brauchbar:
"Good afternoon ,
Is it possible to write this command:
esptool.py –port COM7 write_flash -fs 8m 0x00000 rboot.bin 0x02000
rom0.bin 0x82000 rom1.bin 0xfc000 blank4.bin
as follows:
esptool.py –port COM7 write_flash -fs 8m 0x00000 rboot.bin 0x01000
rom0.bin 0x81000 rom1.bin 0xfc000 blank4.bin
"
antwort:
"No. 0x01000 is where the rBoot config is stored so your first rom will
be corrupted. The second rom can go at 0x81000 if you want, or at
0x80000, or even lower if the first rom doesn’t reach there. If you do
this you’ll need to change the linker script for rom1 to reflect this
different flash location. You would also need to create a custom rBoot
config and write it to 0x01000 so it knows where to look for the second
rom. The default generated config expects the second rom to be at half
chip size + 0x02000. This does waste 0x02000 bytes of flash but keeps
things simple and symmetrical and you can always write your own config
if you want full control. If you are writing your own rBoot config you
can divide the chip up any way you want (and you aren’t limited to just
two roms).
"
.. schrieb:> du könntest in kombi esp&sdhc einen eigenen kleinen schmalen "SMB> Server" machen, der den kontent von der sdhc ins esp / homelan netz> stellt..> und mit prinzip des 'esplore' auch files uploaden..
Mit dem SD Editor, -einem Tool auf der SD-Karte aus dem Beispielexample
SDWebserver, kann man aus dem lokalen Netz Daten auf die SD schreiben ;
(siehe
Beitrag "Re: IDE für ESP8266 mit vielen Example")
kettenrad schrieb:> - mit anderen Worten:> Dein "firmware support AT version with an AES256 lib " wurde dankend> angenommen, --> Schulterklopfen und ein gönnerhaftes "weiter so" (mach> unsere Arbeit), aber an den Kuchen lassen wir dich nicht ..
danke kettenrad - du bist der erste der mich auf anhieb jetzt verstanden
hat, warum ich auch zurückhaltend bin. bei mir geht es jetzt allmählich
in die richtung, und jetzt erst recht raus mit dem code, damit espressif
etwas leichten druck bekommt, nicht alles was wirklich geht ist
dokumentiert und offengelegt, profitieren davon wird espressif - sie
sind der hw hersteller mit stückzahlen. aber ich komme auch auf meinen
spass faktor - mit oder ohne opensrc ;-) dann wird es eben so lange
probiert.
esp8266.com ist toll, ja, aber ich habe davon eine andere meinung,
wenn man eine community einrichtet, sollte der gepostete code für
jedermann zugänglich sein, nicht erst nach registrierung auf dem 'forum'
das kommerz ist. war schon immer meine meinung:
http://www.esp8266.com/viewtopic.php?f=11&t=741&start=5#p7351http://www.esp8266.com/viewtopic.php?f=11&t=741&start=5#p7390kettenrad schrieb:> Mit dem SD Editor, -einem Tool auf der SD-Karte aus dem Beispielexample> SDWebserver, kann man aus dem lokalen Netz Daten auf die SD schreiben ;
schreibe in die callback des wifi servers eine funktion, die empfangene
daten auf die sd card schreibt, dann läuft dein eigener ;-)
am esphttpd beispiel von sprite anderst du das lesen von spi 'flash' auf
sdhc, und das 'posten' auch.
wie das listing der directory geht ist im base ;-)
kettenrad schrieb:> - das muss ich erstmal verdauen!> (rboot ist auch .. interessant! )
keine frage - rboot ist sogar besser als der eigene von espressif -
lass dir zeit zum verstehen, nicht gleich kommt das 'aha'
aber wenns dann da ist, kanns keiner besser als du ;-)
so ich muss jetzt ab in den garten - die arbeit ruft ;-)
ausserdem ist ja eh eine 'flaute' im esp-hype und ferien sind ;-)
lg
;-)
@kettenrad
btw:
wenn bei dir die sdhc base läuft,
dann sende einmal irgendein zeichen ( spätere case ) auf den uart zum
esp.
er wird rebooten , das zeichen kann man auswerten lassen für spätere
optionen..
so aber jetzt mach ich mich vom acker ;-)
<\r><\n><\r><\n>WIFI SET UP IN NULL MODE <\r><\n>START SYSTEM
<\r><\n>INIT SPI OK <\r><\n>SD interface init OK <\r><\n>Mounted OK
<\r><\n>/DCIM/100MEDIA/SUNP0001.AVI<\r><\n><\r><\n> Scan files OK
<\r><\n>write test: <\r><\n>write ok<\r><\n>read the file: <\r><\n>done
by rudi ;-)<\r><\n>mode : null<\r><\n>
- wie Du unschwer erkennst. -- it works! --
Auch reboot bei Senden eines Zeichens;
- allerdings habe ich das makefile etwas ändern müssen (s.o.)
kettenrad schrieb:> - Warum ich darauf anspiele?> Ich liebäugele grade mit den beim esp12 herausgeführten Pins für> SPI-Flash ...
der verbaute spi-Flash wird anders initiiert als eine SD-Karte.
Der Austausch gegen einen anderen SPI-Flash Chip ist möglich und wurde
schon mehrmals durchgeführt, da die Anzahl der reflash Zyclen beim
verbauten wohl doch niedrig ist..
kettenrad schrieb:> <\r><\n><\r><\n>WIFI SET UP IN NULL MODE <\r><\n>START SYSTEM> <\r><\n>INIT SPI OK <\r><\n>SD interface init OK <\r><\n>Mounted OK> <\r><\n>/DCIM/100MEDIA/SUNP0001.AVI<\r><\n><\r><\n> Scan files OK> <\r><\n>write test: <\r><\n>write ok<\r><\n>read the file: <\r><\n>done> by rudi ;-)<\r><\n>mode : null<\r><\n>>>> - wie Du unschwer erkennst. -- it works! --> Auch reboot bei Senden eines Zeichens;> - allerdings habe ich das makefile etwas ändern müssen (s.o.)
du hast mir als einziger bisher herzliche response gegeben, ich danke
dir sehr herzlich dafür kettenrad - das meine ich ernst!
jetzt mach was #für dich # draus, schritt für schritt, sdhc läuft jetzt
bei dir.
bin sehr froh, dass es 'fast' auf anhieb geklappt hat, das makefile
schauhe ich mir gleich an. denke dass du die neue ide hast, bzw den
neuen cross compiler, kann das sein?
ich bin später heute noch mal online.
hey kettenrad - danke für das herzliche feedback!
wenn nur einer dabei ist, bei dem es funkt, bin ich der glücklichste
mensch!
lg
rudi ;-)
No updates were found.
Mal eben gescheckt -
- wohl wirklich aktuell;
Ich bremse ja nur ungern, aber nach den Tests habe ich wieder den
SD-Webserver aufgespielt.
Pin 15 blockiert den Start deines Programms.
Erst wenn ich ihn abziehe und im HTerm den Start abwarte, kann ich ihn
wieder anstecken und alles läuft wie gewünscht.
Das ist sowohl beim esp 12 als auch beim esp 07 der Fall ..
was letztendlich auchnicht sonderlich verwundert.
Sowohl Pin 0 als auch Pin 15 bringen den IC (bei reset) auf bootloader -
Mode, wenn sie logisch 0 sind ..
Ich bin jetzt etwas verunsichert.
Habe beim laufenden Webserver SD - Programm den Pin 15 auf Ground
gezogen und resettet.
Und das Programm startet ...!?!
Nur wenn Pin 15 als CS programmiert wird, tritt der von mir geschilderte
Effekt auf!
-seltsam, sehr seltsam ...
Aha, man lernt nie aus!
Der CS-Pin der SD-Karte liegt auf +3,3V. Diese überschreiben den
pulldown( 10k ) an Pin 15.
Dieser high-Pegel blockiert das Starten des Programms von Dir!
kettenrad schrieb:> Ich bin jetzt etwas verunsichert.> Habe beim laufenden Webserver SD - Programm den Pin 15 auf Ground> gezogen und resettet.> Und das Programm startet ...!?!
ja das ist auch richtig, gpio15 muss auf ground sein, damit der esp
booten kann.
>> Nur wenn Pin 15 als CS programmiert wird, tritt der von mir geschilderte> Effekt auf!> -seltsam, sehr seltsam ...
der cs wird high programmiert, damit der den boot von flasg nicht 'auf
sich zieht'...
kettenrad schrieb:> Aha, man lernt nie aus!
so gehts mir dauernd mit c ;-)
> Der CS-Pin der SD-Karte liegt auf +3,3V. Diese überschreiben den> pulldown( 10k ) an Pin 15.
yeap, ...nur wenn cs high ist
> Dieser high-Pegel blockiert das Starten des Programms von Dir!
..sagen wir mal so, du hast soeben den boot von flash auf sdhc 'gebogen'
mit dem anschluss der sdhc pin 'cs' auf gpio15
;-) und jetzt will er aber einen bootloader auf der sdhc sehen der ihm
sagt, wohin die reise geht oder eine firmware auf 0x00000..
und jetzt ist die katze aus dem sack, auf 0x00000 auf der sdhc wartet
was auf der fat32? ein bootloader schaft abilfe, ein kleiner 'grub'
reicht...
..
;-)
btw:
wenn du die sdhc 'nur' als kontent für das esphttpd example verwenden
willst, dann musst du den cs 'umbiegen' wie es sprite gemacht hat, eben
anstatt gpio 15 dann gpio 02 oder anderen gpio, der kein bootpin ist...
das muss dann auch in den driver files umgeschrieben werden.
wenn du die sdhc auch als bootmedium verwenden willst, dann ist der
gpio15 schon richtig, der interne bootprocess fragt die pins ab, und
nach einem bitmuster wird entschieden von wo er booten soll, er erwartet
dann an 0x0000 das firmware oder einen bootloader der sagt wohin es
geht, egal welche quelle.
-- Ähhm !
Ist es nicht eher so:
Da ich einen SD-Adapter von waveshare benutze, wird CS(D3) mit einem
Pullup 10k vorgespannt.
Egal was für ein Programm ich geladen habe, - dieser Pullup bringt GPIO
15 auf high-Pegel, was ein Starten verhindert.
Der IC bleibt bei reset(GPIO0=0) im Bootloader stehen ...
... nicht eine Zeile code wird ausgeführt;
Daher wird die SD auch nicht initialisiert ..
kettenrad schrieb:> -- Ähhm !
berechtigt ;-)
> Ist es nicht eher so:> Da ich einen SD-Adapter von waveshare benutze, wird CS(D3) mit einem> Pullup 10k vorgespannt.
gpio15 ist dann high, ein booten von flash ist nicht möglich.
> Egal was für ein Programm ich geladen habe, - dieser Pullup bringt GPIO> 15 auf high-Pegel, was ein Starten verhindert.
ja - der high pegel beim starten des esp blockiert den bootprocess vom
flash
> Der IC bleibt bei reset(GPIO0=0) im Bootloader stehen ...> ... nicht eine Zeile code wird ausgeführt;> Daher wird die SD auch nicht initialisiert ..
ja , wenn der gpio0 auf low steht, dann hat der intern bootloader vorang
und wartet auf konstruktion vom programmer, oder commander,
es sind in dem mode auch kommunikationsmöglichkeiten mit dem esp
gegegeben, abfragen von chipid, mac und andere 'register'
die firmware mit der sd card init muss daher jetzt auf die sdhc
denn wenn der gpio15 nicht low ist beim booten des esp
dann bootet er nicht von flash, sondern will von wo anderes sein file
wenn gpio0 beim booten low ist, dann springt der esp bootloader für das
firmware aufspielen an.
die pins werden nahceinem bitmuster abgefragt, jenachdem was anliegt
wird entspreched ausgeführt.
kettenrad schrieb:> Das SDWebServer Programm benutzt ebenfalls HSPI. Nur CS ist auf GPIO2 ..
yeap, damit das programm vom flash geladen werden kann.
oki?
kettenrad schrieb:> Verstehe jetzt, warum Du auf Pin 15 beharrst.> Dann ist Dein Programm nur mit "Selbstbau - Adapter" lauffähig!
ich habe ehrlich gesagt die sdhc wie im bild, in einem sd micro adapter,
diese pins gehen direkt auf den esp, ohne pullup/pulldown.
ich werde aber einen breakout sd card adapter mal verwenden, es kann
sein, dass tatsächlich der adapter durch beschaltung den cs auf high
legt, also einen pullup führt, die frage ist, wie hoch der wert ist.
auf dem esp12 werden glaube ich 10KOhm pulldown verwendet - nagle mich
aber nicht fest -
wenn ich pulldown/up brauche, dann mache ich das mit den internen vom
esp per gpio setting.
kettenrad schrieb:> Ich hab's jetzt eingekreist:> Meine Luna-IDE espressif verlangt -std=gnu90 in den CFLAGS
Changelog:
v2.0.7 (09.07.2015):
* Updated compiler xtensa-lx106-gcc and xtensa-lx106-g++ up to version
5.1 (big thanks jcmvbkbc);
ATTENTION! For correct build of your firmware, you must add the option
-std=gnu90 in directive CFLAGS in Makefile
du benutzt die neue 2.0.7 ;-)
http://www.esp8266.com/viewtopic.php?t=820
daher der hinweis, wer die version benutzt, sollte das makefile anpassen
bzw kann ja das von kettenrad benutzen, wenn er es schon gepostet hat
;-)
kettenrad schrieb:> <\r><\n><\r><\n>WIFI SET UP IN NULL MODE <\r><\n>START SYSTEM> <\r><\n>INIT SPI OK <\r><\n>SD interface init OK <\r><\n>Mounted OK> <\r><\n>/DCIM/100MEDIA/SUNP0001.AVI<\r><\n><\r><\n> Scan files OK> <\r><\n>write test: <\r><\n>write ok<\r><\n>read the file: <\r><\n>done> by rudi ;-)<\r><\n>mode : null<\r><\n>>>> - wie Du unschwer erkennst. -- it works! --
kettenrad, nur gegenfrage, mit welchem adapter - denn der wave zieht den
cs auf high sagtest du, oder hast du auch einen DiY Adapter direkt
angeschlossen?
bin dabei micro sd holder zu suchen, für smd pad anschluss.
bei ali gibt es die seh rgünstig für umgerechnet 0,27 eur das stück
mal sehen.
- moin, moin!
.. schrieb:> nur gegenfrage, mit welchem adapter - denn der wave zieht den> cs auf high sagtest du
Mit dem oben erwähnten Trick:
- im Terminal starten abwarten, dann erst CS(Pin15) anstecken..
todo:
- den 10k Pullup von D3(CS) entfernen;
- aus dem base die schreib/lese - Tests entfernen;
- cs nach SD-init auf "high" ziehen(im main);
- SD-mit FAT32 formatieren(entfernen von Datenmüll --> nur FATTabelle);
-"Grub" grubben und verstehen, was das ist;
-0x00000 und 0x40000 auf SD ins root;
Frage: beim reboot durch Eingabe über Terminal bleibt da Pin15 auf 1
(z.B. durch SD-selekt) oder muss ich z.B. den Pullup vor dem reboot für
Pin15 einschalten und bleibt der trotz reboot lange genug auf 1 , um den
Bootvorgang von SD einzuleiten?
kettenrad schrieb:> todo:> - SD-mit FAT32 formatieren(entfernen von Datenmüll --> nur FATTabelle);
die 'File Allocation Table' ( FAT ) ist im bootsector
> -"Grub" grubben und verstehen, was das ist;
"grub" kommt von 'grub'
https://de.wikipedia.org/wiki/Grand_Unified_Bootloader
der ist hier ironisch genannt, und es ist damit gemeint, dass man sich
einen bootloader basteln muss, wenn man mehrere fw parat halten will,
..man braucht dann einen bootloader, der die fw an den bestimmten
adressen
entweder lädt, oder einen manager, der das fw file dann auf der sd card
von einem bereich ( adressen ) zu[m](r) anderen 'moved'
> -0x00000 und 0x40000 auf SD ins root;
das wird die FAT zerstören, denn 0x00000 file beginnt ab 0, da steht der
bootsector und die FAT ( offset 03 )
https://de.wikipedia.org/wiki/File_Allocation_Table#Bootsektor>> Frage: beim reboot durch Eingabe über Terminal bleibt da Pin15 auf 1> (z.B. durch SD-selekt) oder muss ich z.B. den Pullup vor dem reboot für> Pin15 einschalten und bleibt der trotz reboot lange genug auf 1 , um den> Bootvorgang von SD einzuleiten?
das bitmuster fragt der bootloader des esp ab, egal ob cold, warm, oder
aus dem 'deep sleep' heraus. es gibt beim entsprechenden booten dann die
möglichkeitder -vorher- ein bitmuster abzulegen.. das beim bootprocess
berücksichtigt werden kann ( user key data )
1
}
2
3
voidsetup(){
4
Serial.begin(74880);// du kannst den bootprocess sichtbar/lesbar machen
5
// ein zweiter µC mit eingestellter 74880 baud
6
// und zweiten uart 115200 als lesbarer umsetzer
7
// geht auch wenn man keinen 74880 baud adapter hat
8
9
}
10
11
voidloop()
12
{
13
Serial.println("Hello world!");
14
for(inti=10;i>0;i--){
15
Serial.println(i);
16
delay(1000);
17
}
18
19
// deep sleep mode unter 80 µA ( ~ 75-78 )
20
Serial.println("Time to sleep");
21
system_deep_sleep(10000000);//sleep time in usecs. 10000000 = 10 sek
22
delay(1000);// eine kurze verzögerung,
23
// um das in schleife zu halten,
24
// während Deep Sleep umgesetzt wird
25
}
aufwachen aus dem deep sleep : GPIO16 und RESET kurz brücken
interner esp bootloader kann nicht geändert werden,
er will von 0 von einem 'angeschlossenen' datenträger das file laden.
man kann die sd auch im RAW mode betreiben.
? - auf der SD-Karte liegt unter " 32_done.txt " das .hex - file eines
ESP8266 Blink by Simon Peter(aus Arduino-IDE Beispiel: esp Blink);
das ist ein .hex aus blink.bin konvertiert!
Es beginnt ab 000F78800 oder Sektor 31680;
bootloader schreiben ist nicht so der Bringer für mich ..
Wie überrede ich den esp , diese .hex in seinen IRAM zu
kopieren(beginnend mit 0x000000) und auszuführen?
kettenrad schrieb:> ? - auf der SD-Karte liegt unter " 32_done.txt " das .hex - file eines> ESP8266 Blink by Simon Peter(aus Arduino-IDE Beispiel: esp Blink);> das ist ein .hex aus blink.bin konvertiert!> Es beginnt ab 000F78800 oder Sektor 31680;
mhm..
als allererst müsstest du dich entscheiden wie du vorgehst,
enweder hex adressen oder bin sektoren
witz:
Beispiel:
windows Calc Wissenschaftlich:
Hexwert eingeben: F78800
geteilt durch : /
umschalten auf Dez: Dez
Dez Wert eingeben: 31680
Ergebnis: Dez Wert 512,06464646464646464646464646465
die blockgrössen stimmen nicht überein ;-)
es muss lauten 512
Gegenprobe:
Dez Wert 31680 umrechnen in Hex
31680 = 7BC0
Alles in Hex Rechnen:
F78800 / 7BC0 = 200
Ergebnis: Hex Wert 200 in Dez = 512
ok - spass wieder weg ( aber bitte prüfe deinen win calc der wird dich
im ersten fall auch anschwindeln ) ;-)
>> bootloader schreiben ist nicht so der Bringer für mich ..
what mut dat mut!
so einfach mach ich dir das nicht
> Wie überrede ich den esp , diese .hex in seinen IRAM zu> kopieren(beginnend mit 0x000000) und auszuführen?
überleg mal ;-) 0x000000 ist eine stelle zuviel -
weiss den der esp wo das nun liegt? auf flash oder sd,
hast du ihm das über die bitmuster mitgeteilt?
moin, moin !
Was ich da angegeben habe, ist Schnee von gestern(ausgelesen mit HxD).
Diese Adressennummern und Sektorennummern sind irrelevant ..;
Mitlerweile habe ich Eclipse-Luna mit Arduino Plugin aufgesetzt.
http://www.baeyens.it/eclipse/how_to.shtml#/e
Prima Sache, das ..
Der GPIO15 ist als CS für die SD ungeeignet. Ändern Pullup/-down führt
zu nichts. Irgentwann blockiert die SD und muss neu formiert werden.
Deshalb nehme ich das WebserverSD Beispiel, blockiere WLAN, und zum
booten von SD ziehe ich beim deepsleep(RST und GPIO16 gebrückt)
aufwachen den GPIO15 auf 1 ;
Auf SD ist unter 32_done.txt das .raw des Blink.bin;
http://forum.condorsoaring.com/viewtopic.php?t=9500
kettenrad schrieb:> Auf SD ist unter 32_done.txt das .raw des Blink.bin;> http://forum.condorsoaring.com/viewtopic.php?t=9500
ein bin file zu einem raw file konfertieren?
wozu das?
RAW bezieht sich auf das format der sd.
entweder hat es eine gültige FAT oder sie wird im RAW modus betrieben.
im RAW mode kann windows indirekt nichts damit anfangen und fragt
ob es den datenträger formatieren soll - hdx kann den RAW datenträger
lesen.
- bei einigen STM32 LCD-Ausgaben wird ein Datenstream fortlaufend von
einem *.raw File gelesen;
Da keine Optimierung, Kompression, vorangestellte Farbtabellen oder
irgendwelche Header!
-rohe Daten eben ..
.. die dann, so mein Gedankengang, 1:1 fortlaufend in den IRAM-Bereich
kopiert werden;