Forum: Mikrocontroller und Digitale Elektronik AVR und ESP8266 Kommunikation


von Marcel B. (gigi)


Lesenswert?

Hallo zusammen,

Ich habe hier einen ESP8266 den ich mit Arduino programmiere.

Jetzt hätte ich gerne zum austesten und rumspielen einen AVR dazu um die 
beiden mal ein bisschen kommunizieren zu lassen.
Im Grunde geht es mir nur darum den ESP (NodeMCU Board) 
Kommunikationsfähig zu machen. Somit könnte ich alle per I2C Verbundenen 
Geräte übers Netz ansteuern. Möchte ihn gerne als "Hauptsteuerelement" 
nutzen.

Die Frage die sich mir jetzt stellt, ist folgende:

Gibt es einen Weg, beide in der gleichen Sprache zu programmieren ?
Denn soweit ich das jetzt recherchiert habe ist es nicht ganz so 
unkompliziert das Programm von Arduino auf meinen AVR zu bekommen.

Ich besitze das STK500, sonst nichts weiteres an Programmierhardware.
Beim NodeMCU Board stecke ich ja quasi nur das USB Kabel ein und kann es 
flashen, allrdings weiss ich nicht wie ich über das STK500 mit Arduino 
flashen kann, soll.

Natürlich bleibt ja noch die Option beides getrennt zu entwickeln.
Da würde mich interessieren, ob das schonmal jemand gemacht hat, oder 
mir Tipps diesbezüglich geben kann.

Vielen Dank im vorraus,
Gigi

von Stefan F. (Gast)


Lesenswert?

Marcel B. schrieb:
> Gibt es einen Weg, beide in der gleichen Sprache zu programmieren ?

Ja sicher, Arduino ist primär für AVR gemacht worden.

Arduino unterstützt das STK500 als Programmieradapter für AVR. 
Alternativ kannst du Dir irgendeinen anderen ISP Programmieradapter 
kaufen. Oder du verwendest ein Arduino (kompatibles) Modul mit AVR 
Mikrocontroller. Diese werden mit Bootloader ausgestattet verkauft und 
lassen sich einfach über das USB Kabel programmieren. Das ist bei 
Arduino eigentlich die normale Vorgehensweise.

Was den ESP angeht: siehe http://stefanfrings.de/esp8266/index.html#prog

Um den Sketch hochzuladen brauchst du beim NodeMCU Board lediglich ein 
USB Kabel. Bei "nackten" ESP8266 Modulen brauchst du ein USB-UART Kabel.

Wenn der ESP8266 Master sein soll, kannst du I²C verwenden.

Wenn du ihn als Slave verwenden willst, verwendest du besser die UART 
Schnittstelle denn sein I²C Anschluss unterstützt den Slave Modus nicht. 
In dem Buch http://stefanfrings.de/mikrocontroller_buch/index.html ist 
ein entsprechendes Beispiel, wo ein AVR den ESP über UART Schnittstelle 
als Netzwerk-Interface verwendet.

von Acim (Gast)


Lesenswert?

Hallo ich bin neuer Fahn von eletronic hir.

Ein releise macht einen Leuchte an, mit hochspannung!
Kenen Angst ich passe auff?

Ich habe gehöhrt das man das auch mit so einem transitstor anmachen 
kann.
Ich habe einen goldenen Transistor mir einem stahlgehüse mit einer 
kleinen Fahn dran. Da kommen 4 drähte raus.
Ist von einem ser guten freund.
Muss ich dann immer 2 Drähte zusammenschweißen damit ein Schalter raus 
wird?
Ich hab den In den Kasten vom kapputten schalter verklehbt.
Ist sicher so!

Wie kann ich dann den spannungsfluss an und ausmachen?
Wo ist da der Schlater für?

Hab am wochende zeit dafür.
Bekommen wir eine lösungh dafür zusammen?

Danke an die spezialkräfte hier.
Acim

von Max M. (maxmicr)


Lesenswert?

Stefanus F. schrieb:
> Wenn du ihn als Slave verwenden willst, verwendest du besser die UART
> Schnittstelle denn sein I²C Anschluss

Liegt anscheinend daran, dass sich keiner die Mühe gemacht hat, den 
Slave Modus in Software nachzubilden. Hardware-I²C unterstützt der 
ESP8266 nämlich nicht.

von Stefan F. (Gast)


Lesenswert?

Max M. schrieb:
> Liegt anscheinend daran, dass sich keiner die Mühe gemacht hat, den
> Slave Modus in Software nachzubilden.

Dafür müsste der Chip auf Interrupts schnell reagieren, und das kann er 
nicht - jedenfalls nicht zuverlässig.

von Marcel B. (gigi)


Lesenswert?

Danke erstmal für die Antworten,

kann bei Arduino nirgends eine Option finden, wo das STK500 aufgeführt 
wird.
Dann bin ich wohl einfach blind.
In diesem Sinne wäre ich für einen Tipp sehr dankbar.


Da I2C ja dann doch nicht ganz so toll ist, welche Art der Kommunikation 
würdet ihr denn wählen ?


Im Grunde geht es mir nur darum, überhaupt kommunizieren zu können.
Also die Controller, versteht sich. :D


Alles andere kann, können ja dann die einzelnen Controller übernehmen.

von Stefan F. (Gast)


Lesenswert?

Marcel B. schrieb:
> kann bei Arduino nirgends eine Option finden, wo das STK500 aufgeführt
> wird.

Menü Werkzeuge/Programmer/Atmel STK500

> welche Art der Kommunikation würdet ihr denn wählen ?

Stefanus F. schrieb:
> Wenn du ihn als Slave verwenden willst, verwendest du besser die UART
> Schnittstelle

Solange der ESP Master ist, spricht nichts gegen I²C.

von c-hater (Gast)


Lesenswert?

Stefanus F. schrieb:

> Max M. schrieb:
>> Liegt anscheinend daran, dass sich keiner die Mühe gemacht hat, den
>> Slave Modus in Software nachzubilden.
>
> Dafür müsste der Chip auf Interrupts schnell reagieren, und das kann er
> nicht - jedenfalls nicht zuverlässig.

Der Chip selber könnte das (zumindest bei 100kHz-I2C) sehr wohl, sogar 
mit sehr viel Sicherheitsreserve...

Was es nicht kann, ist die Software, die normalerweise darauf läuft...

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Was es nicht kann, ist die Software, die normalerweise darauf läuft...

Das meine ich doch. Klar kannst du auf die Espressif Firmware 
verzichten, nur bleibt dann von den Netzwerk-Fähigkeiten ungefähr nichts 
mehr übrig. Wer will das schon?

von Marcel B. (gigi)


Lesenswert?

Stefanus F. schrieb:
> Menü Werkzeuge/Programmer/Atmel STK500

Oh man, was bin ich für ein Blindfisch!

Wenn du mir jetzt auch noch verrätst, wie ich z.B. einen Attiny 
auswählen kann, bist du mein Held! :D

LG,
Gigi

von Stefan F. (Gast)


Lesenswert?

Marcel B. schrieb:
> Wenn du mir jetzt auch noch verrätst, wie ich z.B. einen Attiny
> auswählen kann, bist du mein Held! :D

Dazu musst du einen Core installieren: 
https://github.com/SpenceKonde/ATTinyCore

Sag mal, ist dein Google kaputt?

von Marcel B. (gigi)


Lesenswert?

Stefanus F. schrieb:
> Sag mal, ist dein Google kaputt?

Ich bin einfach zu dämlich die richtigen Begriffe einzutippen, glaube 
ich.

DANKE! :D

von Max M. (maxmicr)


Lesenswert?

Marcel B. schrieb:
> Da I2C ja dann doch nicht ganz so toll ist, welche Art der Kommunikation
> würdet ihr denn wählen ?
>
> Im Grunde geht es mir nur darum, überhaupt kommunizieren zu können.
> Also die Controller, versteht sich. :D

Der ESP8266 unterstützt Hardware-SPI - das wäre also möglich. Oder UART

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.