MIDI-in op ESP32

flok

Nieuwkomer
Lid sinds
1 augustus 2021
Berichten
11
Locatie
Nederland
Hi,

Ik heb een schema bedacht om MIDI in en out te doen op de ESP8266. PCBtjes van laten maken en werkt perfect (getest met sound modules en een yamaha synth).
Nou wil ik dit ook met de ESP32. Nou dacht ik: hooguit wat pinnetjes omwisselen maar nee: er komt data binnen maar het is allemaal rommel. 0x90 is 0x80 geworden soms bijvoorbeeld. Alsof bitjes niet op 1 komen.
Het schema is: https://vps001.vanheusden.com/~folkert/midi-wemos.pdf
Bij de ESP32 heb ik uart1 (itt uart0) gebruikt op pin GPIO16/GPIO17 (omdat met uart0 er helemaal niets in komt). Voor de pull-up heb ik 470 Ω en 1k Ω geprobeerd; geen verschil.

Iemand enig idee?
 
Ik heb weinig met de ESPs gedaan dus weet niet helemaal wat die kunnen, ik heb zelf iets dergelijks met STM32s gemaakt maar die werken weer anders.
Het eerste waar ik naar zou kijken is of de digitale input goed geconfigureerd is. Kan je een hoog en een laag signaal ontvangen? En staat je UART goed geconfigureerd, baud rate, stopbits, parity enzovoort.

Je kan hier mijn uitvoering vinden GitHub - mendelt/micro-midi: Kicad project for Midi breakoutboard for microcontroller projects (moet je wel even in kicad openen) maar ik gebruik een 6n137 als optocoupler dus daar heb je weinig aan ben ik bang.
 
Ik heb weinig met de ESPs gedaan dus weet niet helemaal wat die kunnen, ik heb zelf iets dergelijks met STM32s gemaakt maar die werken weer anders.
Het eerste waar ik naar zou kijken is of de digitale input goed geconfigureerd is. Kan je een hoog en een laag signaal ontvangen? En staat je UART goed geconfigureerd, baud rate, stopbits, parity enzovoort.

Je kan hier mijn uitvoering vinden GitHub - mendelt/micro-midi: Kicad project for Midi breakoutboard for microcontroller projects (moet je wel even in kicad openen) maar ik gebruik een 6n137 als optocoupler dus daar heb je weinig aan ben ik bang.

Dank je. Ja de uart is zeker goed geconfigureerd. Het is vrijwel 1-op-1 overgenomen van de ESP8266 versie (afgezien van uart-nr).
Hoog/laag komen beiden binnen anders verwacht ik uberhaupt geen data (start/stop zouden dan ook 0 zijn).

Mijn schema is de 3.3v versie van de specificaties, zou goed moeten zijn. Heb alleen een beveilings-diode weggelaten.

Heb net ook de 2 andere GND-pinnen op de ESP32 aangesloten en op punten direct op de print gesoldeerd (o.a. de gnd van de optocoupler) maar dat helpt niet helaas.
 
The plot thickens: met een logical analyzer gekeken en er komt rommel uit de optocoupler. Dus ik ga de weerstanden controleren en misschien de optocoupler vervangen.
 
Misschien een overbodige opmerking, maar als je voor de optocoupler meet moet je even opletten waar je de ground aansluiting van de logic analyzer aansluit. Wat uit je midi kabel komt heeft een andere ground reference dan de rest van je schema. Dus daar moet je met je logic-analyzer tussen pin 4 en 5 van je midi aansluiting meten.
Hoog/laag komen beiden binnen anders verwacht ik uberhaupt geen data (start/stop zouden dan ook 0 zijn).
Kijk nog even goed hoe de pinnen geconfigureerd staan. Het kan zijn dat je nog interne pull-ups of pull-downs kan inschakelen of iets dergelijks. Dan kan ik me voorstellen dat er wel iets van data binnenkomt maar dat het niet de nette blokgolven worden die je nodig hebt voor seriele communicatie.
 
Oplossing voor de rommel (naast de 6N138 optocoupler): pin 7 met 'n 1k ohm weerstand aan gnd (NIET 4.7k wat je her & der ziet).
 
Heb je de WiFi nodig? Anders zou ik die ESP's lekker laten voor wat ze zijn, en gewoon een M3/M4 gebaseerd bord pakken. Die hebben veel beter I/O.
 
Heb je de WiFi nodig? Anders zou ik die ESP's lekker laten voor wat ze zijn, en gewoon een M3/M4 gebaseerd bord pakken. Die hebben veel beter I/O.

Ja, maar de esp's zijn zo lekker goedkoop en die wifi zo handig. En ik heb nu al een pcbtje in de post liggen :-) (sunk cost fallacy)
 
Back
Top