咨询热线 |
|
|
|
电话:0755-33033839 |
电话:0755-33033839 |
电话:0755-33033817 |
Email: sz_webfae#ealpha.com.tw |
请把#更改为@ |
AM4E 常见问题
Q1.EzCode4E是什么工具?
Q2.AM4E系列IC从上电或Reset到IC开始执行,需要多长时间?
Q3.什么是前景特殊路径?
Q4.什么是系統路径?如何使用系統路径?
Q5.什么是特殊Procedure? 如何使用特殊 Procedure?
Q6.Voice Output中的PWM與PWM Channel的PWM有沒有关係?
Q7.爲什么EzCode4E介面下方指示的Program Rom還很多,但程式編譯时卻提示ROM超出?
Q8.爲什么在程式中间連續加Sdelay命令,程式會重定?那又該如何避免?
Q9.AM4E是否可以使用晶體振蕩器?
Q10.EzCode v4.31默認的Debounce时间是多長?
AM4F 常见问题
Q1.在EzCode4F中,客戶可以使用哪些寄存器?
Q2.在4F中,不清除看門狗(Watch Dog),多長时间會重定?
Q3.在AM4F中,如何清除看門狗(Watch Dog)?
Q4.EzCode4F v2.x中,亂数的應用要注意什么?
Q5.EzCode4F中使用Volume(vol1, vol2),當DAC1或DAC2等于0时,爲什么會有PO聲?
Q6.EzCode4F使用cout輸出,2個channel模式播放聲音时,爲什么會聽不到聲音?
Q7.播放MIDI或语音时,如果使用寄存器索引?
Q8.EzCode4F可以支援多少個通道的Action?
Q9.EzCode4F IR發射接收有何規定?
Q10.EzCode4F條件分支指令如“Switch(R0)=[x,p1,p2],p3”,如果程式跳至x的位置,會如何执行?
AM8EB 常见问题
Q1. AM8EB051重定功能不正常?
1. 用戶PCB板的VDD和GND之间接了大电容,導致上电/去电較慢。
2. 使用一顆主控IC同时控制幾顆AM8EB051,主控IC重定后,會與AM8EB051通信,並且主控IC重定較快,輸出的通信信號打亂了AM8EB051的重定。
Q2. 请,把I/O腳接上一個NPN的三極管來推动繼电器,當I/O设爲輸出后,上电时發現繼电器會跳一下,有什么改善的方法?
Q3. 已經進入SLEEP Mode爲何還有耗电?
Q4. 使用T0計时器並給它賦了初值,爲何定时时间不正確?
Q5. IC在裝機過程出現加熱开啓或关断中,發現各種各樣的死機現象,換一顆单片機就會好,
懷疑是這批单片機抗干擾问題?
Q6. 如何實現查表功能?
Q7. 如何實現间接定址?
Q8. 如何正確设置PWM功能?
Q9. 如何正確设置IR功能?
Q10. 如何正確设置Buzzer功能?
Q11. 如何设置外部INT中断?
Q12. T0計时器设置步驟。
Q13. T1計时器设置步驟。
Q14. T2計时器设置步驟。
Q15. 低电壓Reset(LVR)在SLEEP时,是否會耗电?
Q16. 低电源重定(LPR)和低电壓重定(LVR)的區別?
Q17. 低电壓重定(LVR)设置步驟?
Q18. 低电壓重定(LVR)不准怎么辦?
Q19. AM8EB单片機支援幾種振蕩模式?
Q20. AM8EB单片機與EMC单片機在埠操作上的差異?
Q21. 如何離线燒录客戶應用程式?
AM4E 常见问题解答
Q1. EzCode4E是什么工具?
A1. EzCode4E 是針對AM4E系列IC开發的編程工具,集成了播放WAV、MIDI、Action,掃描按鍵,埠輸出、IR通迅等功能,可以極大提高开發的效率。
Back to top
Q2. AM4E系列IC从上电或Reset到IC开始执行,需要多長时间?
A2. 大約爲384ms~512ms之间。當AM4E用作被控IC时,打开被控AM4E IC电源后,應延时大于512ms,才能开始對被控IC操作。
Back to top
Q3.什么是前景特殊路径?/font>
A3. 前景特殊路径是用于在播放MIDI、语音、Action或执行Dela等情况下,插入一些如设置参数、改变IO、启动背景等简单的任务,而执行完这些任务后,仍能等播放MIDI、语音、Action或执行Delay结束后,继续执行其后面的命令。前景特殊路径在路径名称前加“@_”符号,其中不允许有delay、pla等需要等待的任务。
Back to top
Q4. 什么是系統路径?如何使用系統路径?
A4. 系統路径是EzCode中提供的,有專用的名称,在 [ Path ] 段落中編寫。在系統路径中編寫的程式段,會自动插入到系統程式中执行。如 Fourms: r1++ ,那么r1++ 這條指令每4ms就會执行一次。
系統路径中只能做標誌设定等一些簡单的任務,不允许有條件语音或帶延时的指令等,詳見EzCode4E用戶手冊。
Back to top
Q5. 什么是特殊Procedure? 如何使用特殊 Procedure?
A5. 特殊Procedure是EzCode中提供的,有專用的名称,在 [ Procedure ] 段落中編寫,用作一些特殊的用途,如遮罩IO、在中断程式中插入程式等。特殊Procedure只需要在 [ Procedure ] 中編寫程式,EzCode會自动將此程式加入系統程式中。在 [ Path ] 段落不需要聲明。
Back to top
Q6. Voice Output中的PWM與PWM Channel的PWM有沒有关係?
A6. 沒有关係。Voice Output中的PWM是语音輸出的方式,IC上有專門的兩個引腳。PWM Channel說的PWM是指使用程式在輸出口上輸出不同占空比的脈衝。
Back to top
Q7. 爲什么EzCode4E介面下方指示的Program Rom還很多,但程式編譯时卻提示ROM超出?
A7. Data Rom是全部ROM的使用情況,Program Rom未用完时,Voice的資料會自动緊隨存放,如果Data Rom提示空间滿了,就不可以再寫程式。注意,程式和MIDI資料只能存放在Program部分,超出也會發生錯誤。
Back to top
Q8. 爲什么在程式中间連續加Sdelay命令,程式會重定?那又該如何避免?
A8. Sdelay命令是一個即时的等待,在等待期间,不會清除WDT,所以當Sdelay命令連續出現超過4ms,程式就有可能因爲WDT計滿發生重定。要避免發生重定,可以在Sdelay之间,加入指令:ASM(movaf WDT)。
Back to top
Q9. AM4E是否可以使用晶體振蕩器?
A9. AM4E系列IC中,只有大于等于20秒的AM4EE與AM4EG支援晶體振蕩器,其他型號IC都只有RM模式。詳見AM4E用戶手冊。
Back to top
Q10. EzCode v4.31默認的Debounce时间是多長?
A10. 40ms。
Back to top
AM4F 常见问题解答
Q1. 在EzCode4F中,客戶可以使用哪些寄存器?
A1. 在EzCode4F中,當編譯完程式后,EzCode4F右下角有一個提示欄:User RAM,后面跟著R0~Rx(x是数位),在此範圍內的RAM,客戶都是可以使用的。
Back to top
Q2. 在4F中,不清除看門狗(Watch Dog),多長时间會重定?
A2.如果選擇8MHz振蕩,是64ms。如果選擇16MHz振蕩,爲32ms。
Back to top
Q3.在AM4F中,如何清除看門狗(Watch Dog)?
A3. 在AM4F中,清除WDT只需要讀一次地址爲0x10的SFR(特殊功能寄存器)即可, 即 : movra 0x10。在EzCode4F中,SFR 0x10定義有一個標識:INT,因此也可以寫成:movra int。
Back to top
Q4. EzCode4F v2.x中,亂数的應用要注意什么?
A4. 首先要在OPTION中選擇RANDOM並设定好範圍。其次,RandomL和RandomH的值只有在按鍵觸發时和每隔4ms才會被改变。如果這兩個條件都沒有出現,則RandomL與RandomH的值不會改变。
Back to top
Q5. EzCode4F中使用Volume(vol1, vol2),當DAC1或DAC2等于0时,爲什么會有PO聲?
A5. Volume()命令是控制DAC1或DAC2的輸出音量的,vol1用于控制Dac1的輸出音量,Vol2控制DAC2的輸出音量。但當Vol1或Vol2等于0时,則會將相應的DAC关闭;如果播放聲音后未做Ramp down,而关闭DAC1或DAC2,DAC1或DAC2的輸出电壓突然降爲0,从而引起喇叭有PO聲。
Back to top
Q6. EzCode4F使用cout輸出,2個channel模式播放聲音时,爲什么會聽不到聲音?
A6. AM4F系列IC使用2個Channel模式时,只能使用Channe0及channel1,Cout 模式下,聲音只能从DAC2輸出,選錯Channel或使用DAC1都不會有聲音輸出。
Back to top
Q7. 播放MIDI或语音时,如果用寄存器索引?
A7. EzCode4F v2.,0編程时,可以用一個或兩個寄存器來索引播放MIDI或语音,寄存器的值爲0,指第一個MIDI或语音。Voice File中有音效时,音效與WAVE要合併計算位置。 MIDI或WAVE的位置計算跟別名沒有关係,都是从第一個开始往后数。
Back to top
Q8. EzCode4F可以支援多少個通道的Action?
A8. EzCode4F中最多可以支援8個通道的Action。
Back to top
Q9. EzCode4F IR發射接收有何規定?
A9. 1) IR發射接收必須先在OPTION中设定好發送或接收寄存器,若發送還須在發送前设置好寄存器的值。
2) 發送或接收时應设定好bit数。如 TxIR(8)、RxIR(8),表示發送或接收8Bit資料。
3) 接收时一定要使用特殊路径名,並在確認前一直使用特殊路径名。因为只有使用特殊路径名,當收到不想要的碼,程式才能返回到收碼前的路径中继续执行。
Back to top
Q10. EzCode4F條件分支指令如“Switch(R0)=[x,p1,p2],p3”,如果程式跳至x的位置,會如何执行?
A10. 如果程式跳至x的位置,程式會直接执行[](中括弧)后面的命令或路径,即问題中的P3。但若中括弧后面沒有命令或路径,則程式會继续执行底層中的掃鍵等动作,並判断是否有播放ACTION、MIDI、WAVE或执行背景路径,若都不存在則會進入sleep。
Back to top
AM8EB 常见问题解答
Q1. AM8EB051重定功能不正常?
1. 用戶PCB板的VDD和GND之间接了大电容,導致上电/去电較慢。
2. 使用一顆主控IC同时控制幾顆AM8EB051,主控IC重定后,會與AM8EB051通信,並且主控IC重定較快,輸出的通信信號打亂了AM8EB051的重定。
A1. 爲AM8EB051獨立供电或減小VDD和GND之间的大电容。
Back to top
Q2. 请,把I/O腳接上一個NPN的三極管來推动繼电器,當I/O设爲輸出后,上电时發現繼电器會跳一下,有什么改善的方法?
A2. 這個現象是因爲IC上电时,I/O口的狀態爲輸入,如果I/O口帶有上拉电阻的話,一上电的瞬间會因爲上拉电阻的作用而産生一個高电平,把上拉电阻关闭即可。
Back to top
Q3. 已經進入SLEEP Mode爲何還有耗电?
Back to top
A3. MCU進入SLEEP會將系統OSC关闭,但WDT OSC (如果WDT Enable) 仍在工作,而且全部I/O會保持SLEEP前狀態,除了WDT OSC會耗一些电外,最要注意的是Input Port是否浮接或者Output Port是否仍有負載,這些I/O处理要非常小心,否則會産生大电流。
Back to top
Q4. 使用T0計时器並給它賦了初值,爲何定时时间不正確?
A4. 由于T0不能自动重裝,所以需要用戶在中断服務副程式中手工设置,而T1、T2則可以自动重裝。
Back to top
Q5. IC在裝機過程出現加熱开啓或关断中,發現各種各樣的死機現象,換一顆单片機就會好,懷疑是這批单片機抗干擾问題?
A5. 經過對不良品測試,發現IC电氣特性和功能都正常,將控制板打EFT測試,也能通過2000V。但在繼电器关闭时會産生大电流和火花,造成晶片重定或當機。解決辦法是在繼电器端加473电容和510歐电阻,消除干擾。
Back to top
Q6. 如何實現查表功能?
A6. 有兩種方法可以實現查表
1.
使用PCL查表
BCD EQU 0x10
PORTB EQU 0x6
CONVERT:
MOVR BCD,0
ADDAR 0x2,1
;==========gfedcba
RETIA B‘00111111’ ; "0"
RETIA B‘00000110’ ; "1"
RETIA B‘01011011’ ; "2"
RETIA B‘01001111’ ; "3"
RETIA B‘01100110’ ; "4"
RETIA B‘01101101’ ; "5"
RETIA B‘01111101’ ; "6"
RETIA B‘00000111’ ; "7"
RETIA B‘01111111’ ; "8"
RETIA B‘01101111’ ; "9"
…
MOVIA 0x1 ;顯示‘1’
MOVAR BCD
CALL CONVERT
MOVAR PORTB
2. 使用TABLEA查表
MOVIA MID(DIS_TAB)
SFUN TBHP
MOVIA LOW(DIS_TAB)
ADDAR BCD,0
TABLEA
MOVAR PORTB
…
DIS_TAB:
;===============gfedcba
DW B‘00000000111111’ ; "0"
DW B‘00000000000110’ ; "1"
DW B‘00000001011011’ ; "2"
DW B‘00000001001111’ ; "3"
DW B‘00000001100110’ ; "4"
DW B‘00000001101101’ ; "5"
DW B‘00000001111101’ ; "6"
DW B‘00000000000111’ ; "7"
DW B‘00000001111111’ ; "8"
DW B‘00000001101111’ ; "9"
Back to top
Q7. 如何實現间接定址?
A7. 间接尋找主要通過间址寄存器R0以及间址指標R4配合使用完成。例如要清除所有RAM的內容:
IAR EQU 0x0
FSR EQU 0x4
MOVIA 0x10
MOVAR FSR
Clr_All_RAM_Lp:
CLRR IAR
INCR FSR,1
MOVR FSR,0
ANDIA 0x3F
BTRSS 0x3,2
LGOTO Clr_All_RAM_Lp
…
Back to top
Q8. 如何正確设置PWM功能?
A8. 设置PWM功能请遵循以下5個步驟
1. 设置預分頻器及时鐘源。
2. 设置T1模式寄存器。
3. 设置T1計数初值。
4. 设置PWM Duty值。
5. 使能PWM。
例:産生脈衝寬度500us,占空比爲50%的PWM信號(指令周期1us)
MOVIA 0x01 ;預分頻係数1:4,时鐘源爲內部时鐘
SFUN S2
MOVIA 0x02 ;T1自动重裝,高电平有效
SFUN S1
MOVIA 125D ;500=125*4
SFUN S0
MOVIA 63D ;50%占空比
SFUN S3
SFUNR S1
IORIA 0x81 ;使能PWM,开始計数
SFUN S1
當用戶在PWM輸出口輸出高电平时,硬體就會在PWM口上自动載入PWM脈衝信號。
Back to top
Q9. 如何正確设置IR功能?
A9. 當用戶使用到IR功能时,需要確定以下幾點:
1. 时鐘源(455K或者3.58M)
2. IR載波頻率(38K/57K可選)
3. 有效电平選擇(高电平有效還是低电平有效)
4. IR使能位
例:使能455K下38K載波輸出,低电平加載波
MOVIA 0x05
SFUN S6
如果用戶需要使能大电流輸出,還需要將FE寄存器的Bit2置1(這时灌入电流最大爲40mA)。
IOSTR 0xE
IORIA 0x4
IOST 0xE
Back to top
Q10. 如何正確设置Buzzer功能?
A10. 當用戶需要使用Buzzer功能时,可以按如下步驟设置
1. 设置預分頻器和时鐘源
2. 设置Buzzer控制寄存器
3. 开啓計数
例:设置2K Buzzer信號(假定指令周期1us)
MOVIA 0x03 ;預分頻係数1:16,时鐘源爲內部时鐘
SFUN S2
MOVIA 0x8C ;分頻係数1:32
SFUN S5 ;輸出頻率=1M/(16*32)
MOVIA 0x1
SFUN S1 ;开始計数
Back to top
Q11. 如何设置外部INT中断?
A11. 用戶需要外部中断功能时,可以按以下步驟操作
1) 设置外部INT Pin爲輸入口
2) 设置中断觸發沿
3) 设置系統控制寄存器SCR的EIS Bit爲1
4) 使能外部中断(EXIE置1)
5) 使能全局中断
MOVIA 0x01
IOST 0x6 ;设置爲輸入口
MOVIA 0xFE
IOST 0xD ;輸入上拉
MOVIA 0x3
T0MODE ;下降沿中断
MOVIA 0x40
IOST 0xE ;INT Pin選擇爲外部中断(EIS=1爲外部中断口,否則爲通用IO)
MOVIA 0x4
IOST 0xF ;使能外部INT中断
ENI
Back to top
Q12. T0計时器设置步驟
A12. 共分爲四個步驟
1)设置預分頻器及时鐘源
2)设置計时器初值
3)使能T0中断
4)使能全局中断
實現1ms定时(假定指令周期爲1us)
TCC EQU 0x1
IntReq EQU 0xF
MOVIA 0x3 ;預分頻係数1:16,时鐘源爲內部时鐘
T0MODE
MOVIA 193D ;设置T0初值爲193
MOVAR TCC ;定时时间爲(256-193)*16=1008us
MOVIA 0x1 ;使能T0中断
IOST IntReq
ENI ;使能全局中断
Back to top
Q13. T1計时器设置步驟
A13. 共分爲五個步驟
1)设置預分頻器及时鐘源
2)设置計时器初值
3)使能T1中断
4)使能全局中断
5)开始計数
實現1ms定时(假定指令周期爲1us)
S0 EQU 0
S1 EQU 1
S2 EQU 2
MOVIA 0x3
SFUN S2 ;預分頻係数1:16,时鐘源爲內部时鐘
MOVIA 0x2
SFUN S1 ;设置自动重裝模式
MOVIA 63D ;设置T1初值爲63
SFUN S0 ;定时时间爲63*16=1008us
MOVIA 0x80 ;使能T1中断
IOST IntReq
ENI ;使能全局中断
SFUNR S1
IORIA 0x1 ;开始計数
SFUN S1
Back to top
Q14. T2計时器设置步驟
A14. 共分爲五個步驟
1)设置預分頻器及时鐘源
2)设置計时器初值
3)使能T2中断
4)使能全局中断
5)开始計数
實現1ms定时(假定指令周期爲1us)
S9 EQU 9
SA EQU 0xA
SB EQU 0xB
MOVIA 0x3
SFUN SB ;預分頻係数1:16,时鐘源爲內部时鐘
MOVIA 0x2
SFUN SA ;设置自动重裝模式
MOVIA 63D ;设置T2初值爲63
SFUN S9 ;定时时间爲63*16=1008us
MOVIA 0x20 ;使能T2中断
IOST IntReq
ENI ;使能全局中断
SFUNR SA
IORIA 0x1 ;开始計数
SFUN SA
Back to top
Q15. 低电壓Reset (LVR) 在SLEEP时,是否會耗电?
A15. LVR在SLEEP时會自动关闭,所以不存在耗电问題。
Back to top
Q16. 低电源重定(LPR)和低电壓重定(LVR)的區別?
A16. 低电源重定(LPR)的主要目的是提供確保IC能夠正常工作的最低工作电壓,一般大約爲1.8V左右;低电壓重定(LVR)主要目的是提供系統可工作的最低电壓保護,在Configuration Word中共有6組(2.0V、2.6V、2.8V、3.2V、3.6V、4.3V)低电壓重定選項供選擇。用戶可以根據實際情況選擇其中的一種电壓保護方式。
Back to top
Q17. 低电壓重定(LVR)设置步驟?
A17. 共分爲兩步:
第一步:在程式中將LVR Bit置1
第二步:在Configuration Word選擇合適的LVR值
Back to top
Q18. 低电壓重定(LVR)不准怎么辦?
A18. 由于制程漂移的原因,不同批次的IC低电壓重定电壓會有所差異,當客戶發現LVR值不準时可以
通過AM8EB_Writer v1.40提供的Trim Bit來微調LVR值,以期達到較爲準確的电壓值。
Back to top
Q19. AM8EB单片機支援幾種振蕩模式?
A19. AMEB支援6種振蕩模式
IRC:內部RC振蕩
EXT-R:外部R內部C振蕩
LF:低頻晶體振蕩
XT:標準晶體振蕩
HF:高頻晶體振蕩
ERC:外部RC振蕩
Q20. AM8EB单片機與EMC单片機在埠操作上的差異?
Back to top
A20. 當使用位元操作指令對埠進行寫操作,AM8EB遵循先讀后寫的原則(無論是輸出口還是輸入口,都先讀IO埠上的狀態,然后执行位元邏輯運算,最后寫埠);而EMC单片機輸出口是从埠鎖存器中讀取資料,輸入口是讀取IO埠上的狀態,然后执行位元邏輯運算,最后寫埠。
Back to top
Q21. 如何離线燒录客戶應用程式?
A21. 當使用IntRc时需要做如下幾個步驟
1) 將客戶Bin檔下載到燒录器的Memory1或Memory2
2) 將Trim Bit值下載到燒录器的Memory1或Memory2
3) 離线燒录
注意:请儘量避免从IC讀出程式到燒录器的Memory1或Memory2,然后直接燒录。
Back to top
|