Seite 1 von 7 1234567 LetzteLetzte
Ergebnis 1 bis 15 von 97
Like Tree1Likes

Thema: für xorg1990

  1. #1
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.598

    für xorg1990

    ich bekomme es nicht hin, die anhänge in ner pn zu senden, deswegen hier
    Unbenannt.png

    Unbenannt2.png

    Unbenannt3.png

    Unbenann4t.png

    - - - Aktualisiert - - -

    wir können das ja auch hier weiterführen, in der pn ist das umständlicher
    also: das wird vermutlich nicht der timer sein, sondern der gpio
    Code:
    extern "C"
    {
      #include "user_interface.h"
    }
    
    os_timer_t timer;
    
    void setup() {
      system_timer_reinit();
      os_timer_setfn(&timer, myTimerFunc, NULL);
      ets_timer_arm_new(&timer, 1500, true, 0);
      pinMode(2,OUTPUT);
    }
    
    void myTimerFunc(void *pArg)
    {
      digitalWrite(2, !digitalRead(2));
    }
    
    void loop() {
    
    }

  2. #2
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Ja das PN System ist fürchterlich.
    Mach die Timing Messung bitte mal anders.
    Pack mal den Timer callback analogWrite und toggle immer zwischen 0 und 100% duty.
    Das ganze musst du dir 30min ansehen weil meist hat der Timer nach 10min die Aussetzer.


    Apropos Timer, Timer1 hab ich probiert und bringt sofort dem wdt, Timer0 hat ja wenigstens ein paar callbacks gebracht.
    Die callback Funktion in den ICACHE_RAM_ATTR zu packen bringt auch nix.

    PWM hab ich mir angesehen unterm Oszilloskop. Ast rein. Bei PWM_RANGE 511 habe ich bei 255 50% duty wie gewünscht.

    Den Resampler und Tiefpass habe ich raus genommen ich geht direkt von den Scriprocessor Callback zum ESP.
    Timer Intervall 22us bei 44100Hz und PWM Frequenz 44100Hz.

    Ändert aber an der Qualität nix. Es klinkt auf gut deutsch einfach nur scheiße.
    Weit entfernt vom dem hier:
    https://www.youtube.com/watch?v=3euFJSkDcFI
    Der hat aber auch 4 ordentliche Kondensatoren davor. Tiefpass nehme ich an.
    Geändert von xorg1990 (20-04-2017 um 00:39 Uhr)

  3. #3
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.598
    Zitat Zitat von xorg1990 Beitrag anzeigen
    Mach die Timing Messung bitte mal anders.
    kann ich mal machen bei gelegenheit, wird aber nichts bringen.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Pack mal den Timer callback analogWrite und toggle immer zwischen 0 und 100% duty.
    analogWrite mit 0 und 255 ist ja das gleiche wie digitalWrite mit 0 und 1
    für mich sieht das so aus, als würden die gpios nicht mit dieser frequenz geschaltet werden können. das glaube ich eher als timerprobleme.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Das ganze musst du dir 30min ansehen weil meist hat der Timer nach 10min die Aussetzer.
    das klingt eher nicht nach timer

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Die callback Funktion in den ICACHE_RAM_ATTR zu packen bringt auch nix.
    die timer isr (für sich) hat ja auch nicht soviel code, dass das ein problem bei dieser frequenz werden sollte

    Zitat Zitat von xorg1990 Beitrag anzeigen
    PWM hab ich mir angesehen unterm Oszilloskop. Ast rein. Bei PWM_RANGE 511 habe ich bei 255 50% duty wie gewünscht.
    bei dieser frequenz? dann kann es aber kein problem mit den gpios sein, wonach es aber für mich aussieht.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Den Resampler und Tiefpass habe ich raus genommen ich geht direkt von den Scriprocessor Callback zum ESP.
    Timer Intervall 22us bei 44100Hz und PWM Frequenz 44100Hz.
    wo genau bist du jetzt bei pwm? js? was für ein timer? was für eine pwm? wenn, dann musst du dir auf js-seite gerade den resampler-output ansehen.

  4. #4
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Zitat Zitat von tsseh
    analogWrite mit 0 und 255 ist ja das gleiche wie digitalWrite mit 0 und 1
    Nicht ganz digitalWrite bringt keine 50% duty zu stande.

    Zitat Zitat von tsseh
    bei dieser frequenz? dann kann es aber kein problem mit den gpios sein, wonach es aber für mich aussieht.
    Ja bei 32768Hz, ein absolut perfekter duty. Ich habe auch ein Bild gemacht, und auf stick gespeichert. Nur dummerweise haben wir gestern noch ein paar Variometer einstellung gemacht und da hat es mein Stick eliminiert. Tja den sollte man eben aus der Tasche nehmen



    Zitat Zitat von tsseh
    wo genau bist du jetzt bei pwm? js? was für ein timer? was für eine pwm? wenn, dann musst du dir auf js-seite gerade den resampler-output ansehen.
    Also um Problem mit dem Resampler auszuschließen gehe ich direkt von Scriprocessor calback zum ESP.
    JS läuft bei mir mit 44100Hz, SP Buffer steht auf 8192 macht 1/44100*8192 mach aller 0,185759637sec ein callback
    Code:
    		function handleAudio(e){
    				var inpLE = e.inputBuffer.getChannelData(0);
    				 let Uint8Buf = new Uint8Array(inpLE.length)
    			for (var i=0;i<inpLE.length;i++){
    		        var s = Math.max(-1, Math.min(1, inpLE[i]));
    		        s = parseInt(s*127+128);
    		        Uint8Buf[i] = s;
    		    }
    		    WsConnection.send(Uint8Buf);
    		}
    Im ESP:
    PWM Frequenz 44100HZ
    PWM Range 0-511

    Timer Interrupt aller 22us .

    Hier ist ein Atmega beispiel, eventuell kannst du da was erkennen
    Arduino Playground - PCMAudio

    Kumpel hatte noch ein Bild:
    oszi2.jpg
    Geändert von xorg1990 (20-04-2017 um 13:46 Uhr)

  5. #5
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.598

    AW: für xorg1990

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Nicht ganz digitalWrite bringt keine 50% duty zu stande.
    was für 50% duty? ich will nur wissen, wie genau die timer isr aufgerufen wird. dazu toggle ich ein gpio mit einem 33us timer (die 1500us aus meinem 1. post sind falsch, die sind noch aus deinem serial.print test den du mal gepostet hattest).
    rauskommen sollte im idealfall also ein signal 33us low gefolgt von 33us high.
    raus kommt aber ein low/high wechsel ca. 10us periode gefolgt von fast 300us high. was auch immer das bedeutet.
    meiner vermutung nachgehend, es ligt am gpio hab ich folgendes gefunden:
    ESP8266 Frequency generator
    bei 160MHz mit digitalWrite(1)/digitalWrite(0) in einer schleife hat er 3us high/1us low
    wobei ich die 1us low so nicht sehe, für mich sieht das eher gleich aus, nehmen wir mal die angegebenen 124kHz sind das 8us was dann 4us high + 4us low bedeuten würde. irgendwas ist da auch nicht ganz sauber.
    aber angenommen das stimmt, 4us für EIN digitalWrite - alter, was soll das denn? EIN digitalWrite kostet 4us? was machen die da?
    wäre die frage, was passiert, wenn man direkt ins gpio-register schreibt und nicht die arduino funktion nutzt.
    so ganz erklärt das aber nicht das verhalten im timer isr. ganz brutal von 160 auf 80MHz approximiert sind das 8us für ein digitalWrite und weitere 8us für das read sind also ca. 16us pro isr mit mehr als doppelt soviel luft.
    die 33us aus meinem test sollten also eigentlich zu sehen sein. doch der timer?

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Im ESP:
    PWM Frequenz 44100HZ
    ...
    Timer Interrupt aller 22us.
    naja, das klingt auch nicht gut. wenn du bei 44kHz PWM Frequenz dem mit 45kHz neue werte vorsetzt, ist das resultierende signal vermutlich grütze, weil vermutlich jede 2. periode abgewürgt wird und der neue wert zum tragen kommt. als resultat ist das dann unbrauchbar

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Hier ist ein Atmega beispiel, eventuell kannst du da was erkennen
    was erkennen?

  6. #6
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Zitat Zitat von tsseh
    was für 50% duty?
    Was willst du mit 100 duty. Auf Oszilloskop hättest du ein nichtssagenden geraden strich. Kommst du über 50% duty produziert mann Oberwellen die auch bloß scheiße sind.

    Zitat Zitat von tsseh
    rauskommen sollte im idealfall also ein signal 33us low gefolgt von 33us high.
    Hm, das ergibt aber kein sinn für Audio. Es heißt ja aller 33us ein Sample. Was bringt es wenn das Sample für 33us ansteht.

    Zitat Zitat von tsseh
    raus kommt aber ein low/high wechsel ca. 10us periode gefolgt von fast 300us high. was auch immer das bedeutet
    das bedeutet Unsinn

    Zitat Zitat von tsseh
    aber angenommen das stimmt, 4us für EIN digitalWrite - alter, was soll das denn? EIN digitalWrite kostet 4us? was machen die da?
    Du kannst digitalWrite nicht in der Main loop bei 160mHz toggeln, da kommt der wdt machst du aber eine kleine pause 5us delay geht es. soweit war ich auch schon mal.

    Zitat Zitat von tsseh
    wäre die frage, was passiert, wenn man direkt ins gpio-register schreibt und nicht die arduino funktion nutzt.
    Da frage ich wie das geht. Bestimmt über eine diser __asm__ __volatile__("rsil %0,15 ; esync":"=a" (r)) Methoden.

    Zitat Zitat von tsseh
    ganz brutal von 160 auf 80MHz approximiert sind das 8us für ein digitalWrite und weitere 8us
    Ich glaube nicht dass da einen Zusammenhang gibt.

    Zitat Zitat von tsseh
    dem mit 45kHz neue werte vorsetzt
    Woher nimmst du die 45kHz?

    Zitat Zitat von tsseh
    was erkennen?
    Irgendwelche Timer Einstellungen?
    Weil, das klingt echt gut:
    https://www.youtube.com/watch?v=XLm-QY0Bmno

  7. #7
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.598

    AW: für xorg1990

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Was willst du mit 100 duty. Auf Oszilloskop hättest du ein nichtssagenden geraden strich.
    nein, abwechseln 0 und 1

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Hm, das ergibt aber kein sinn für Audio.
    das ist mir egal, ich will ja nur sehen, ob der timer überhaupt geht.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Es heißt ja aller 33us ein Sample.
    das ist ja die frage, so wie es aussieht heißt es das eben nicht.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Was bringt es wenn das Sample für 33us ansteht.
    dann weißt du, das der timerinterrupt alle 33us zuschlägt und die isr aufruft.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Du kannst digitalWrite nicht in der Main loop bei 160mHz toggeln, da kommt der wdt machst du aber eine kleine pause 5us delay geht es. soweit war ich auch schon mal.
    doch, bis der watchdog zuschlägt kannst du das, das reicht ja für den test

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Da frage ich wie das geht.
    direkt über die adresse im adressbereich

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Woher nimmst du die 45kHz?
    22us

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Irgendwelche Timer Einstellungen?
    was nutzen dir timer einstellungen beim mega für den esp?

  8. #8
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Zitat Zitat von tsseh
    das ist ja die frage, so wie es aussieht heißt es das eben nicht.
    Wie dann? Deswegen der link zu Arduino PWM Aduio

    Zitat Zitat von tsseh
    22us
    Dann eben 23us 1/44100*1000000

  9. #9
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.598
    Zitat Zitat von xorg1990 Beitrag anzeigen
    Wie dann? Deswegen der link zu Arduino PWM Aduio
    wie "wie dann"? reden wir über das selbe? ich versuche rauszubekommen (also so nebenbei) ob der timer bei 33us noch vernümpftig läuft, mehr nicht. sollte er eigentlich. und ob sich die gpio's bei der frequenz überhaupt noch ansprechen lassen.
    der link zum mega macht da keinen sinn, da das ganz andere hardware ist. (und dort auch mit ganz anderen frequenzen gearbeitet wird. und ich nicht mal weiss, was du überhaupt machen willst.)
    das einzig interessante an dem link war die aussage dort, dass man die arduino pwm nicht nutzen kann, wenn man den timer0 anderweitig verwendet. sprich du musst noch checken, ob die pwm beim esp noch richtig läuft, wenn du den (einzigen hardware) timer beim esp verstellst. bisher bin ich davon ausgegangen, die lesen den aus und richten mit diesen werten die pwm ein. vielleicht verlassen sie sich aber auch auf die default werte.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Dann eben 23us 1/44100*1000000
    das machts ja nicht besser. du benötigst als pwm frequenz ein vielfaches der frequenz mit der du neue werte setzt(je größer um so besser), um die werte-wechsel zu kaschieren.

  10. #10
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Also für den Timer messen würde ich eine 2ten ESP herholen und dann über eine Falken-wechsel die Zeiten messen. Oder da hast ein gutes Oszilloskop wo man die Peaks sieht. Meines ist DDR.

    Zitat Zitat von tsseh
    und ob sich die gpio's bei der frequenz überhaupt noch ansprechen lassen.
    Ich habe mal folgendes Probiert.
    PWM Frequenz bis 96000Hz und 8 Bit funktioniert.
    Aber wenn ich den duty in einer schleife verringere fängt er an bei 30% zu springen unter 10% kommt er auch nicht irgendwann ist dann 0 und es geht von vorne los.
    Bei PWM 8000Hz funktioniert das Tadellos.

    Duty 0-50% funktioniert 50-100 auch.
    PWM Signal ist bei 96khz auch schlecht:
    DSCN56892.JPG

    Zitat Zitat von tsseh
    und ich nicht mal weiss, was du überhaupt machen willst.)
    Ich möchte mir sowas Wireless Speaker bauen.
    Die Aufmodulierte Bandbreite ist mir fast egal, aber Soundkarten Samplerate 8000Hz sollten schon drinnen sein das Sprache wenigsten zu verstehen ist. Mehr wäre natürlich klasse.

    PWM Auflösung ist mir auch egal. 8bit ist erstmal vernünfig, da ich 10bit werte in JS in ein 16Bit Aray packen müsste und das als Arraybuffer Übertagen, da die Websocket klasse uni8_t entgegen nimmt. Und im ESP wider richtig zusammen setzen alles sehr umständlich.

    Die Pwm Frequenz sollte höher als 30kHz sein, da man bei niedrigen Frequenzen ein lästiges piepsen auf den Ohren hat.


    Zitat Zitat von tsseh
    das machts ja nicht besser. du benötigst als pwm frequenz ein vielfaches der frequenz mit der du neue werte setzt(je größer um so besser), um die werte-wechsel zu kaschieren
    Ja schon klar, aber wenn ich im 8khz Intervall die Werte wechsle und ein 32kHz PWM Frequenz habe ändert das nix an der Tatsache das ich ein Absolut lautes Rauschen und knarzen auf den Kopfhörern habe.
    Das rauschen ist so Wehrelement, das ich alle Regel und Mikrofonverstärkung voll aufdrehen muss das ich mich überhaupt höre.

    Ach und der Duty darf nur von 0-50 oder 50-100 gehen.

    - - - Aktualisiert - - -

    Bin nicht der einzige mit dem Problem:
    When the file plays there is a constant clicking noise that is significantly louder than the music I uploaded. I didn't notice this same sound in the demo videos on youtube of esp PWM audio. - See more at: http://www.esp8266.com/viewtopic.php?f=6&t=8562&start=8#sthash.kYAhMgVh.dpuf

  11. #11
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Habe mal ein bisschen gegoogled und gesucht ob nicht schon mal wer pwm Audio mit dem esp probiert hat...keiner.
    Die machen alle nur mit dem i2s rum.

    Wiederum bei den avr's findet man 100 Beiträge über PWM audio.

    Also Plan B.

    Man verbinde einen Attiny mit dem ESP. Vorzugsweise den Attiny85.
    Der mach PWM bis 64Mhz bei eingeschalteter PLL, da komme ich bei 8bit auf 250kHz PWM Frequenz.
    Das einzige was kritisch ist wie bekomme ich die Daten rüber zum esp Seriel? Aber wo sind die max Baud beim ESP und avr?
    Software Serial oder Hardware? alles solche fragen.

  12. #12
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.598
    Zitat Zitat von xorg1990 Beitrag anzeigen
    Also für den Timer messen würde ich eine 2ten ESP herholen und dann über eine Falken-wechsel die Zeiten messen. Oder da hast ein gutes Oszilloskop wo man die Peaks sieht. Meines ist DDR.
    ich hab ein saleae logic analyser

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Ich habe mal folgendes Probiert.
    PWM Frequenz bis 96000Hz und 8 Bit funktioniert.
    Aber wenn ich den duty in einer schleife verringere fängt er an bei 30% zu springen unter 10% kommt er auch nicht irgendwann ist dann 0 und es geht von vorne los.
    Bei PWM 8000Hz funktioniert das Tadellos.
    bei pwm bin ich noch nicht, das ist dann das nächste, wenn klar ist ob der timer läuft

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Ich möchte mir sowas Wireless Speaker bauen.
    Die Aufmodulierte Bandbreite ist mir fast egal, aber Soundkarten Samplerate 8000Hz sollten schon drinnen sein das Sprache wenigsten zu verstehen ist. Mehr wäre natürlich klasse.
    ok, 8kHz klingt auch schon besser als 30 oder 45

    Zitat Zitat von xorg1990 Beitrag anzeigen
    PWM Auflösung ist mir auch egal.
    das wird das nächste problem

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Ja schon klar, aber wenn ich im 8khz Intervall die Werte wechsle und ein 32kHz PWM Frequenz habe ändert das nix an der Tatsache das ich ein Absolut lautes Rauschen und knarzen auf den Kopfhörern habe.
    8 khz sample rate und 32 khz pwm sind zwar besser als 44khz und 45khz aber auch noch nicht gut

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Habe mal ein bisschen gegoogled und gesucht ob nicht schon mal wer pwm Audio mit dem esp probiert hat...keiner.
    Die machen alle nur mit dem i2s rum.
    hast du nicht im beitrag vorher zu einem esp pwm audio beispiel verlinkt?

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Wiederum bei den avr's findet man 100 Beiträge über PWM audio.
    es kann durchaus sein, dass das mit dem esp nicht (so einfach) geht, da der esp nur einen hw-timer hat und alles über sw-timer gelöst werden muss.
    sw timer sind natürlich weniger genau, was wiederum bedeuten würde, man müsste eigentlich mit höheren frequenzen arbeiten.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Man verbinde einen Attiny mit dem ESP. Vorzugsweise den Attiny85.
    Der mach PWM bis 64Mhz bei eingeschalteter PLL, da komme ich bei 8bit auf 250kHz PWM Frequenz.
    Das einzige was kritisch ist wie bekomme ich die Daten rüber zum esp Seriel? Aber wo sind die max Baud beim ESP und avr?
    Software Serial oder Hardware? alles solche fragen.
    geht vermutlich besser und einfacher als mit dem esp alleine
    115200 baud sind 14400 byte pro s, mit 8khz samling rate benötigst du ja nur 8000 für die nutzdaten, ob der rest reicht für die steuerinformation? ich würde vermuten ja.
    i2c mit 100 kbit/s nettodatenrate sollte auch gehen.
    spi? müsste man mal sehen

  13. #13
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Zitat Zitat von tsseh
    ich hab ein saleae logic analyser
    Sagt mir nix, ich bin von diesem USB Powerd Zeugs nicht so beidruckt, da die USB Spannung auch nur müll ist.
    Merkt man schon bei den USB Soundkarten.

    Zitat Zitat von tsseh
    hast du nicht im beitrag vorher zu einem esp pwm audio beispiel verlinkt?
    Ja habe ich, aber was die da machen versteht kein mensch.

    Wenn man PWM_HACK setzt generiert man ein 5bit PWM. 5Bit für audio.. das ist nix.
    Zitat Zitat von https://github.com/espressif/ESP8266_MP3_DECODER
    To not use an I2S DAC chip, please edit mp3/user/playerconfig.h and define PWM_HACK. This uses some code to abuse the I2S module as a 5-bit PWM generator.
    Im Quellcode bin ich bis dahin gekommen:
    https://github.com/espressif/ESP8266...ser_main.c#L65
    Was die dann mit dem 16bit Werten und den 32bit Werten in dem Array machen weiß ich auch nicht.
    Am ende landet der Salat auch nur wieder i2s Buffer:
    https://github.com/espressif/ESP8266...reertos.c#L287

    Zitat Zitat von tsseh
    115200 baud sind 14400 byte pro s, mit 8khz samling rate benötigst du ja nur 8000 für die nutzdaten, ob der rest reicht für die steuerinformation? ich würde vermuten ja.
    i2c mit 100 kbit/s nettodatenrate sollte auch gehen.
    spi? müsste man mal sehen
    Also der Atmega hat keine Hardware Serial und mit Software serial soll wo nicht so dufte sein bei 115200baud. Außerdem brauch ich die Timer für die PWM und die Blockieren sich mit dem Software Serial.

    SPI kann zwar der Atmel, aber des ESP-01 nicht, es fehlen die Pins

    i2c geht mit dem ESP-01, direkt mit dem rx/tx Pins:ESP8266-01 Pin Magic How to use the ESP8266-01 pins .
    Was ich noch nicht Verstanden habe ist die Datenrate von i2c.

    Zitat Zitat von https://www.mikrocontroller.net/articles/I%C2%B2C
    Die genormte Übertragungsrate beträgt beim sogenannten "standard mode" 100 kbit/s, beim "fast mode" 400 kbit/s und beim "fast mode+" 1000kbit/sec. Im sogenannten high-speed mode, der mit etwas anderen Spannungs- und Stromrandbedingungen arbeitet sind es zu 3,4 MBit/s. Die Raten beziehen sich auf die festgelegten Taktraten. Andere sind möglich, jedoch nicht genormt.
    Weiter unten steht dann
    16,000MHz - schafft sauber bis zu 700KHz
    18,432MHz - schafft sauber bis zu 950KHz
    JA wie jetzt kHz oder kbit/s.

    Der Atmel wird mal mit 16Mhz getaktet und der ESP mit 80 oder 160Mhz.
    Der ESP muss master sein, da die slave klasse irgendwie buggy ist.

    Ja und wo setze ich die Datenrate? heir:
    https://github.com/esp8266/Arduino/b...ire/Wire.h#L58
    und muss dam bei Atmel/slave die gleiche sein oder macht das die Clock Leitung?.

    Zitat Zitat von tsseh
    115200 baud sind 14400 byte pro s, mit 8khz samling rate benötigst du ja nur 8000
    Irgendwas ist hier falsch. Bei 8kHz habe ich 8000byte/s bei 8Bit pro Sample.
    Die Baud sind nicht wirklich definiert bit/s oder Byte/s .
    Dann ist aber i2c vieeeel zu langsam.
    ja und nun?

    Zitat Zitat von xorg1990
    Irgendwas ist hier falsch. Bei 8kHz habe ich 8000byte/s bei 8Bit pro Sample.
    Die Baud sind nicht wirklich definiert bit/s oder Byte/s .
    Dann ist aber i2c vieeeel zu langsam.
    ja und nun?
    8Bit sind ja ein byte^^ total aussetzter

    und
    Zitat Zitat von xorg1990
    JA wie jetzt kHz oder kbit/s.
    1Bit/s = 1Hz.
    Musste noch ei paar Beerdigungs-Sachen erledigen, da kann das schon mal vorkommenxD
    Geändert von xorg1990 (24-04-2017 um 23:14 Uhr)

  14. #14
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.598
    Zitat Zitat von xorg1990 Beitrag anzeigen
    Wenn man PWM_HACK setzt generiert man ein 5bit PWM. 5Bit für audio.. das ist nix.
    soll ja aber funktionieren,

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Im Quellcode bin ich bis dahin gekommen:
    https://github.com/espressif/ESP8266...ser_main.c#L65
    Was die dann mit dem 16bit Werten und den 32bit Werten in dem Array machen weiß ich auch nicht.
    die 16 bit samples werden in 32 verschiedene 32bit werte gewandelt(5bit auflösung).

    Zitat Zitat von xorg1990 Beitrag anzeigen
    SPI kann zwar der Atmel, aber des ESP-01 nicht, es fehlen die Pins
    über SPI hängt der flash am esp-01, ob da über cs was zu machen ist, um einen 2. chip ranzuhängen, keine ahnung.
    für bitbanging spi gibt es eine klasse, dann müsstest du die entsprechenden pins anlöten

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Was ich noch nicht Verstanden habe ist die Datenrate von i2c.
    ...
    JA wie jetzt kHz oder kbit/s.
    kHz und kbit/s. mit jedem takt ein bit.

    Zitat Zitat von xorg1990 Beitrag anzeigen
    Ja und wo setze ich die Datenrate? heir:
    https://github.com/esp8266/Arduino/b...ire/Wire.h#L58
    die musst du nicht setzen, vermutlich arbeiten um die 400kbit/s noch sauber, aber selbst mit 100kbit/s hast du 12kbyte/s
    das ist mehr als ausreichend, wenn du 8k samples/s übertragen willst. musst du mal probieren. bei 100khz musst du pakete zusammenfassen, da ja zusätzlich zu den nutzdaten noch adresse, start/stop/ack übertragen wird.

  15. #15
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    20-12-2013
    Beiträge
    772

    AW: für xorg1990

    Zitat Zitat von tsseh
    soll ja aber funktionieren,
    Naja, 8bit ist schon Untere grenze.

    Zitat Zitat von tsseh
    über cs was zu machen
    cs?


    Zitat Zitat von tsseh
    die musst du nicht setzen
    Ja aber irgendwo muss doch mal definiert werden bei 16Mhz Takt so schnell und bei 8Mhz Takt so schnell.

    Zitat Zitat von tsseh
    bei 100khz
    Bei 16Mhz ist bei 16khz ende mit dem 2 Timern die der Attiny85 hat. Ein Timer macht die PWM 64Mhz mit PLL, einer Schiebt die Samples nach.

    - - - Aktualisiert - - -

    Auch interessant:
    -There is no hardware I2C peripheral.
    -There is no hardware SPI peripheral
    -There is no hardware UART support.
    Dachte Wenigstens eins von dreien ist dabei.
    https://github.com/SpenceKonde/ATTin...s/ATtiny_x5.md
    Denke i2c ist immer noch das beste auch in Software.

Seite 1 von 7 1234567 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •