• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (Libra)




Re: samd21 / samL22 的 ADC conversion Time 如何決定
管理員
管理員


以SAMD21來說,
ADC max clock 為 2.1MHz

ADC Free running max conversion rate 為 350ksps @ Gain x1
也就是 每sample 最短需要, 1/350k = 2.857142 us, (包含Sampling and Conversion)

ADC Single shot max conversion rate 為 300ksps @ Gain x1
也就是 每sample 最短需要, 1/300k = 3.3333 us, (包含Sampling and Conversion)

這是上面兩種模式下可接受的最快時間,
如果, 少於這個時間時, 可能讓ADC轉換產生不可靠的結果,
實際應用時, 也需要看你要取樣的Source是否需要這麼快,
如果Source變化不大, 太快去Sample時, 會不斷取得相同的值也耗電,
或者是這個MCU的ADC最大取樣速度, 是否足以應付Source的變化速度,
一般來說, ADC取樣的速度, 需要是Source最大變化頻率的兩倍速度,
假設一個Source最大變化頻率是 150kHz時,
則300ksps的ADC速度是一個基本要求

縮圖

Attach file:



jpg  SAMD21_ADC_sps.jpg (155.32 KB)
67979_61418c97e3cb4.jpg 984X352 px

發表於: 2021/9/15 14:03

Edited by Libra on 2021年09月16日 08:50:26
Edited by Libra on 2021年09月16日 08:57:23
Edited by Libra on 2021年09月16日 08:58:04
頂部


Re: Harmony USART Driver對MAX485傳收的方向控制問題
管理員
管理員


由於選用了 Asynchronous USART Driver, 因此一旦Submit transfer task後App即可馬上做其他事, 但真正的Transfer就必須等到Driver處裡到Queue中的Transfer Request才會發生, 唯一可以攔截Rx/Tx的Driver Transfer Callback卻都是在完成後才會Callback.
如果因為傳送或是接受前需要"同步"做的一些事, 那可以選擇Synchronous USART Driver mode, 則每次傳送及接收時都必須等到完成才會往下做, 這樣就可以在下達Read/Write Transfer前, 先控制DE/~RE pin了, 並且在傳送完成後關閉DE/~RE pin

如果要保有Asynchronous USART Driver的Queue排隊方式時, 目前USART Driver沒有可在Rx/Tx發生前可以插入"Callback"的API, 因為Callback是Interrupt發生時才會做的, 時間點不對也就不是Callback.

正確應該是想辦法在Driver Transfer Queue中, 每次處裡要Read/Write request前, 可以正確地插入DE/~Re pin控制的code才是, 那這樣就必須要去改Gen出的code了!

Harmony 沒有規定不能去改他Gen出來的Code, 很多時候是需要去改的, 所以在Gencode時, 才會有Merge User code的選項, 只是如果自己改了code, 就必須要確保加上去的code不會影響Framework的運作.

以下幾點方向可以嘗試看看
1. 因為 SERCOM PLIB已經被USART Driver給全權管理了, 因此絕對不能再去呼叫SERCOM PLIB下的API不然會造成Driver混亂, 比如去呼叫SERCOMx_USART_WriteCallbackRegister()等等,
2. 可以去Driver中尋找Queue的Transfer Request, 何時被抓出來交給SERCOM PLIB執行 Read/Write, 基本上在這個Moment時的動作幾乎是馬上被PLIB執行的, 因此在這時去控制 DE/~RE pin應該不會有問題, Driver中的static function為 _DRV_USART_ReadSubmit() 與 _DRV_USART_WriteSubmit()
3. 由於 Driver全部使用 Function Pointer來進行操作, 所以可以在Driver initialization時, 查出PLIB的Function在Driver中變成什麼樣子, 這樣比較好找到PLIB在哪個地方被Driver給呼叫執行, code改在這裡就比較safe.
const DRV_USART_PLIB_INTERFACE drvUsart0PlibAPI = {
    .
readCallbackRegister = (DRV_USART_PLIB_READ_CALLBACK_REG)SERCOM5_USART_ReadCallbackRegister,
    .
read = (DRV_USART_PLIB_READ)SERCOM5_USART_Read,
    .
readIsBusy = (DRV_USART_PLIB_READ_IS_BUSY)SERCOM5_USART_ReadIsBusy,
    .
readCountGet = (DRV_USART_PLIB_READ_COUNT_GET)SERCOM5_USART_ReadCountGet,
    .
readAbort = (DRV_USART_PLIB_READ_ABORT)SERCOM5_USART_ReadAbort,
    .
writeCallbackRegister = (DRV_USART_PLIB_WRITE_CALLBACK_REG)SERCOM5_USART_WriteCallbackRegister,
    .
write = (DRV_USART_PLIB_WRITE)SERCOM5_USART_Write,
    .
writeIsBusy = (DRV_USART_PLIB_WRITE_IS_BUSY)SERCOM5_USART_WriteIsBusy,
    .
writeCountGet = (DRV_USART_PLIB_WRITE_COUNT_GET)SERCOM5_USART_WriteCountGet,
    .
errorGet = (DRV_USART_PLIB_ERROR_GET)SERCOM5_USART_ErrorGet,
    .
serialSetup = (DRV_USART_PLIB_SERIAL_SETUP)SERCOM5_USART_SerialSetup
};

發表於: 2021/9/14 8:18
頂部


Re: ATSAMD51J18A 有關Code Protect相關文件
管理員
管理員


關於您的問題, 是否有使用Bootloader呢?
1. 如果要避免Flash被debugger讀出來時,請設定NVM Fuse 中的 Security bit,但是您的問題這個應該無效.
2. 如果是Flash前面幾個Byte被不明破壞(寫入)時,請設定NVM Fuse中的Boot Protect,可以指定要保護開機區的Byte數.
3. 如果想要保護整個Flash或是大區域時,請設定NVM Fuse中的 Region Lock,可以指定要Lock的區塊
4. 電壓不穩時,一樣要去設定NVM Fuse中的 BOD值,避免讓MCU在電壓不穩時工作.

注意! 一但設定Boot Protect或是Region Lock時,則被保護及鎖定的Flash區域,將無法再被燒錄新程式,
Erase All 可以清除Flash全部內容, 但是無法解除(清除)Boot Protect及Region Lock的設定,
因此 要 Reprogram 之前一定要先解除(清除)Boot Protect及Region Lock的設定後,才能釋放被保護或鎖定的Flash區域,否則 Reprogram 會失敗

Note: Atmel studio 7中可以找到Fuse的設定介面,如果是使用MPLAB X IDE時,則在 Configuration bit中設定。

發表於: 2021/9/11 18:28

Edited by Libra on 2021年09月23日 10:25:18
頂部


Re: ATSAMD51J18A 有關Code Protect相關文件
管理員
管理員


不是很清楚您的問題, 可否詳述?

發表於: 2021/9/9 8:12
頂部


Re: 請問如何匯出MCH的Pin Configuration
管理員
管理員


這個功能在新版的Harmony v3已經拿掉
請先用截圖方式替代

發表於: 2021/9/9 8:11
頂部


Re: ATSAMC21J18A FLASH 模凝 EEPROM
管理員
管理員


這部分SAMC2x/D2x沒有參考應用, 可參考類似的範例,
\HarmonyFramework\csp_apps_sam_c20_c21\apps\nvmctrl\nvmctrl_flash_read_while_write

SAMD5x/E5x的範例可以研究
https://microchip-mplab-harmony.github ... rom_emulation/readme.html

發表於: 2021/9/6 8:12
頂部


Re: ATSAMC21J18A WDT
管理員
管理員


課程目的是舉一反三, 給上課的學員建立Harmony應用的基礎,
Harmony的範例都可以在Framework的目錄下找的到,
不是每一顆晶片的所有周邊都有做成範例,
因此有時候需要也需要參考別的晶片的範例來觸類旁通.
\HarmonyFramework\csp_apps_sam_c20_c21\apps\wdt\wdt_timeout

發表於: 2021/9/6 8:08
頂部


Re: ATSAMC21j18a adc 參考電壓pin
管理員
管理員


因為這是ADC的科普知識, 建議先自行學習

發表於: 2021/8/30 18:44
頂部


Re: ATSAMC21j18a adc 參考電壓pin
管理員
管理員


你用這個算是Bandgap電壓, 內部電壓一般是指供應給MCU的電壓後, 由MCU內部自己的某組電壓來當參考電壓, 因此ADC轉換值, 就會與系統電壓VCC/VDDANA產生一定的計算關聯, 用Bandgap電壓可以當成校準值

發表於: 2021/8/30 13:52
頂部


Re: ATSAMC21j18a adc 參考電壓pin
管理員
管理員


看來大家上完 RTC 與 CAE空中教室 的SAM課程後 ,大家都開始在這個園地相互討論SAM的設計不再只是PIC系列了, 很棒呢!
Dginlon說的沒錯喔! 空中教室上的 SAMD21, ADC 沒有設計rail to rail 的internal ADC Vref,
同一時期開發的兄弟SAMC21也是沒有rail to rail的Internal ADC Vref,
但是! SAMD21的bandgap 只能有 1.1V的選項!
而SAMC21的bandgap可以有1.024V, 2.048V及4.096V的選項, 也就是ADC的 INTREF,
其中若選擇INTREF = 4.096V時的VDDANA必須大於4.5V
所以當 VDDANA = 4.5V時也還是沒有 rail to rail INTREF = 4.5V 的選項, 只能到4.096V

回答jxchenpp01的問題:
在Harmony中請選擇ADC vref為 bandgap, 另外新增 SUPC component可以選擇INTREF(1.024/2.049/4.096V)
因為這個功能少用, 我自己沒設定過, 可否請你測完跟大家說是否還有缺甚麼呢? 謝謝!
縮圖

縮圖

縮圖

縮圖

Attach file:



jpg  SAMC21_ADV_INTREF.jpg (197.07 KB)
67979_612c6155abe55.jpg 907X501 px

jpg  SAMC21_ADC_INTVREF.jpg (123.67 KB)
67979_612c6188a7771.jpg 630X343 px

jpg  SAMC21_ADV_INTREF_MHC.jpg (138.05 KB)
67979_612c61a5df626.jpg 811X317 px

jpg  SAMC21_ADC_SUPC.jpg (190.23 KB)
67979_612c61be31404.jpg 911X379 px

發表於: 2021/8/30 12:41
頂部



« 1 ... 12 13 14 (15) 16 17 18 ... 33 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------