Projets:Perso:2015:SoftMp3AlarmClock

From Electrolab
Revision as of 00:49, 21 November 2015 by Steve (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

(WiP - formattage et edition en cours - j'aime le mediawiki!)

Presentation

Il s'agit d'un petit projet consistant a fabriquer un petit radio-reveil MP3 fiable et agreable.

Besoin

Ce sont ceux que je m'impose:

  • Reveil en douceur: augmentation (tres) progressive du volume sur une plage (parametrable) de plusieurs minutes, afin de sortir tranquillement de sa torpeur
  • Controle et regulation de la puissance audio des morceaux joues
  • Support au minimum MP3 (mais pkoi pas theora/autres)
  • Qualite audio correcte (surtout aucun clic), pas de parasites
  • Interface simple et agreable
  • Fiabilite (RTC en cas de coupures de courant nocturnes)

Plateforme Materielle

Il n' est pas question pour moi d'utiliser des modules MP3 tout faits, dont la qualite audio et les interface de pilotage laissent a desirer.

Je me suis donc oriente vers un decodage software (libmad en virgule fixe) sur un MCU suffisamment puissant (LPC176x: ARM @100-120MHz), la sortie audio numerique etant envoyee en I2S vers un DAC, puis amplifiee par un petit ampli du lointain-est.

Microcontroleur

Pour l'instant j'ai le medium gun: du LPC 1768/1769, qui est un ARM Cortex-M3 (32bits) 512KiB flash, 64KiB sdram. Plein d'IOs (100pins). C'est le microcontroler utilise par le projet Smoothie, donc tres overkill pour un reveil, mais je compte m'en servir pour un autre projet d'imprimante multifonction, et je veux le maitriser a fond.

J'ai 2 devboards avec ce MCU:

(et puis l'ARM c'est fun et baleze, meme si moins ouvert qu'un duino)

Il n'est pas exclu pour moi d'envisager de reduire le BOM dans le futur si des personnes sont interessees, en prenant par exemple du M4. (pour info, le LPC1768 nu coute quand meme 10E par 10 chez farnell).

DAC I2S

Tres simple a utiliser, supporte jusqu'a 24bits en 192kHz stereo. 3 euros le bouzin a l' unite chez farnell, que demande le peuple ?

Ampli

Pour l'instant un bete module chinois a un euro. A voir a terme, mais je n'ai aucun besoin de puissance

RTC

Idem un module achete il y a qq temps. pas besoin d'une super precision. Pilotage en I2C si mes souvenirs sont bons

Ecran

Pour l'instant le 320x200 de la carte mini-DK2, pilote en SPI. J'arrive a taper du 50FPS en DMA dessus, ca ne sera pas le point bloquant. Il faudra quand-meme travailler sur un pilotage efficace, car ca fait 64kpixels pour 64K de ram... Au pire peut-etre un LCD 2/4 lignes, mais bon le tactile c'est quand meme plus classe. Quelques bidouilles a faire au niveau de l' affectation des GPIOs, car il me semble qu' il y a des conflits entre la dalle tactile et l' I2S sur la mini-Dk2.

Stockage

Encore un bete module chinois a 1 boule, en spi, avec n'importe quelle carte SD. Peut etre une interface mass-storage via l'USB du MCU, mais pas prioritaire.

Alimentation

La je me tate. L' alim par usb actuelle est suffisante pour le dev. J' envisage des options piles/batteries, mais pour un reveil fixe, un petit transfo et un bete regul sont amplement suffisants (voir les evolutions possibles)

Et le reste

HPs, boitier, ... a voir


Plateforme logicielle

  • C++ barebone (plus fun!)
  • libmad pour le decodage mp3 en FFP (Fixed-floating point). Pas de FPU sur le MCU, evidemment !
  • GUI a definir, soit home made, soit autre si je trouve un truc vraiment light et pas trop hideux
  • Transferts I2S en DMA, pas le choix !

Avancement

  • 12/11/2015: QQ problemes de bits de bits de poids faible qui bavent d'un canal a l'autre sur le DAC
  • 19/11/2015: Enfin une belle sinusoide a 440Hz en sortie du DAC en clippant les bits, mais c' est un probleme de conf je pense