Changeset 2630


Ignore:
Timestamp:
Oct 22, 2011, 5:40:03 AM (4 years ago)
Author:
wmb
Message:

OLPC XO-1.75 - added watch-dc-biased and watch-dc-unbiased commands for checking sensor input mode.

Location:
cpu/arm/olpc/1.75
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpu/arm/olpc/1.75/alc5631.fth

    r2598 r2630  
    3131   \ In our system, SPKVDD is 5V and AVDD is 3.3V, so we need a gain ratio <= 1.51 .
    3232   \ The value 3 gives a ratio of 1.44, and value 4 gives a ratio of 1.56 .  We use 3.
    33    h# 3e00 h# 40 codec!  \ Speaker Amp Ratio GAIN is 1.44x, no HPFs
     33   h# 3e00 h# 40 codec!  \ Speaker Amp Ratio GAIN is 1.44x, HPF on ADC and DAC
    3434
    3535   h# 0000 h# 42 codec!  \ Use MCLK, not PLL
     
    4343: mic-bias-on   ( -- )  h# 000c h# 3b codec-set  ;
    4444
    45 : mic1-high-bias  ( -- )  h# 80 h# 22 codec-clr  mic-bias-on  ;  \ 0.90*AVDD, e.g. 3V with AVDD=3.3V
    46 : mic1-low-bias   ( -- )  h# 80 h# 22 codec-set  mic-bias-on  ;  \ 0.75*AVDD, e.g. 2.5V with AVDD=3.3V
    47 : mic2-high-bias  ( -- )  h# 08 h# 22 codec-clr  mic-bias-on  ;  \ 0.90*AVDD, e.g. 3V with AVDD=3.3V
    48 : mic2-low-bias   ( -- )  h# 08 h# 22 codec-set  mic-bias-on  ;  \ 0.75*AVDD, e.g. 2.5V with AVDD=3.3V
     45: mic1-high-bias  ( -- )  h# 80 h# 22 codec-clr  ;  \ 0.90*AVDD, e.g. 3V with AVDD=3.3V
     46: mic1-low-bias   ( -- )  h# 80 h# 22 codec-set  ;  \ 0.75*AVDD, e.g. 2.5V with AVDD=3.3V
     47: mic2-high-bias  ( -- )  h# 08 h# 22 codec-clr  ;  \ 0.90*AVDD, e.g. 3V with AVDD=3.3V
     48: mic2-low-bias   ( -- )  h# 08 h# 22 codec-set  ;  \ 0.75*AVDD, e.g. 2.5V with AVDD=3.3V
    4949
    5050: depop!  ( value -- )  h# 54 codec!  ;
     
    202202: adc-stereo-reversed  ( -- )  h# c000 adc-source  ;  \ L->R, R->L (channels swapped)
    203203
     204true value mic-bias?
    204205: open-in-specific  ( -- )
    205    h# 000c h# 3b codec-set  \ Power on MIC1/2 bias
     206   mic-bias?  if  mic-bias-on  else  mic-bias-off  then  \ Power on MIC1/2 bias
    206207   adc-stereo
    207208   h# 0c00 h# 3b codec-set  \ Power on RECMIXLR
  • cpu/arm/olpc/1.75/sound.fth

    r2598 r2630  
    401401
    4024020 value mono?
     403: stereo  false to mono?  ;
     404: mono  true to mono?  ;
     405
     406: average-channel  ( adr -- n )
     407   0 swap  /audio-buf  bounds  do   ( accum )
     408      i <w@ +                       ( accum' )
     409   /l +loop                         ( accum )
     410   /audio-buf /l /  /               ( average )
     411;
     412: average-in  ( -- )
     413   my-in-desc 2 la+ l@           ( adr )
     414   (cr  push-decimal             ( adr )
     415   dup average-channel           ( adr average )
     416   6 .r space                    ( adr )
     417   wa1+ average-channel          ( average )
     418   6 .r                          ( )
     419   pop-base                      ( )
     420   my-in-desc 3 la+ l@ to my-in-desc
     421;
     422: audio-watch  ( -- )
     423   setup-sspa-rx               ( )
     424   make-in-ring                ( )
     425   start-in-ring               ( )
     426   master-rx                   ( )
     427   begin                       ( )
     428      wait-in                  ( )
     429      average-in               ( )
     430   key? until                  ( )
     431   disable-sspa-rx             ( )
     432   stop-in-ring                ( )
     433   reset-rx                    ( )
     434;
     435: watch-dc  ( bias? -- )
     436   to mic-bias?
     437   d# 143 gpio-set   \ DC input mode
     438   h# 0400 h# 40 codec-clr
     439   open-in
     440   stereo  0 set-adc-gain  0 set-mic-gain
     441   \ High bias gets us closer to the top of the digital range - but bias can
     442   \ be turned off completely with "false to mic-bias?"
     443   mic1-high-bias mic2-high-bias
     444   audio-watch
     445   close-in
     446;
     447
    4034480 value in-adr0
    4044490 value in-len0
     
    504549   set-adc-gain
    505550;
    506 
    507 : stereo  false to mono?  ;
    508 : mono  true to mono?  ;
    509551
    510552: init-codec  ( -- )
     
    570612
    571613end-package
     614
     615: (watch-dc)  ( bias? -- )
     616   " /audio" open-dev >r          ( bias? r: ihandle )
     617   " watch-dc" r@ $call-method    ( r: ihandle )
     618   r> close-dev                   ( )
     619;
     620: watch-dc-biased  ( -- )  true  (watch-dc)  ;
     621: watch-dc-unbiased  ( -- )  false  (watch-dc)  ;
     622
    572623
    573624\ LICENSE_BEGIN
Note: See TracChangeset for help on using the changeset viewer.