諮詢熱線 |
|
|
|
電話: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. 什麽是前景特殊路徑?
A3. 前景特殊路徑是用於在播放MIDI、語音、Action或執行Delay等情況下,插入一些如設置參數、改變IO、啓動背景等簡單的任務,而執行完這些任務後,仍能等播放MIDI、語音、Action或執行Delay結束後,繼續執行其後面的命令。前景特殊路徑在路徑名稱前加“@_”符號,其中不允許有delay、play等需要等待的任務。
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
|