summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/debug-as3525.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525/debug-as3525.c')
-rw-r--r--firmware/target/arm/as3525/debug-as3525.c43
1 files changed, 41 insertions, 2 deletions
diff --git a/firmware/target/arm/as3525/debug-as3525.c b/firmware/target/arm/as3525/debug-as3525.c
index ab70f73165..b8c5d883e9 100644
--- a/firmware/target/arm/as3525/debug-as3525.c
+++ b/firmware/target/arm/as3525/debug-as3525.c
@@ -437,6 +437,14 @@ end:
437 return false; 437 return false;
438} 438}
439 439
440void adc_set_voltage_mux(int channel)
441{
442 ascodec_lock();
443 /*this register also controls which subregister is subsequently written, so be careful*/
444 ascodec_write(AS3543_PMU_ENABLE, 8 | channel << 4 );
445 ascodec_unlock();
446}
447
440bool dbg_ports(void) 448bool dbg_ports(void)
441{ 449{
442 int line, btn, i; 450 int line, btn, i;
@@ -510,10 +518,22 @@ bool dbg_ports(void)
510 "I_CHGact", 518 "I_CHGact",
511 "I_CHGref", 519 "I_CHGref",
512 }; 520 };
521
522 static const char *adc_mux_name[10] = {
523 NULL,
524 "AVDD27 ",
525 "AVDD17 ",
526 "PVDD1 ",
527 "PVDD2 ",
528 "CVDD1 ",
529 "CVDD2 ",
530 "RVDD ",
531 "FVDD ",
532 "PWGD ",
533 };
513#endif 534#endif
514 535
515 lcd_clear_display(); 536 lcd_clear_display();
516
517 while(1) 537 while(1)
518 { 538 {
519 line = 0; 539 line = 0;
@@ -550,6 +570,7 @@ bool dbg_ports(void)
550 for(; i<16; i++) 570 for(; i<16; i++)
551 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i)); 571 lcd_putsf(0, line++, "%s: %d mV", adc_name[i], adc_read(i));
552#endif 572#endif
573
553 lcd_update(); 574 lcd_update();
554 575
555 btn = button_get_w_tmo(HZ/10); 576 btn = button_get_w_tmo(HZ/10);
@@ -558,7 +579,25 @@ bool dbg_ports(void)
558 else if(btn == (BUTTON_DOWN|BUTTON_REL)) 579 else if(btn == (BUTTON_DOWN|BUTTON_REL))
559 break; 580 break;
560 } 581 }
561 } 582#if CONFIG_CPU == AS3525v2 /*extend AS3543 voltage registers*/
583 lcd_clear_display();
584 while(1)
585 {
586 line = 0;
587 for(i=1; i<9; i++){
588 adc_set_voltage_mux(i); /*change the voltage mux to a new channel*/
589 lcd_putsf(0, line++, "%s: %d mV", adc_mux_name[i], adc_read(5) * 5);
590 }
591 lcd_update();
592
593 btn = button_get_w_tmo(HZ/10);
594 if(btn == (DEBUG_CANCEL|BUTTON_REL))
595 goto end;
596 else if(btn == (BUTTON_DOWN|BUTTON_REL))
597 break;
598 }
599#endif
600 }
562 601
563end: 602end:
564 lcd_setfont(FONT_UI); 603 lcd_setfont(FONT_UI);