Changeset 2630


Ignore:
Timestamp:
Oct 22, 2011, 5:40:03 AM (2 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.