手機版 | wap版 | 網站主頁 | HOME | 3G網頁
<button id="ewwgn"><acronym id="ewwgn"></acronym></button>

<dd id="ewwgn"></dd>
<button id="ewwgn"></button>
      1. <progress id="ewwgn"></progress>
        <tbody id="ewwgn"><track id="ewwgn"></track></tbody>
        <em id="ewwgn"><tr id="ewwgn"></tr></em>
        發 帖  
        原廠入駐New
        [討論] 【高手問答】從事MCU方案開發18年工程師,與你討論方案設計(搶樓送開發板)
        2019-12-4 14:10:48  42551 MCU ARM 單片機 電機驅動
        分享
        編者導讀:
        本期我們邀請了單片機/MCU版主滿工@阿寶jf  ,來解答大家在單片機/MCU設計上遇到的問題,活動時間是12月4日—12月30日。

        高手簡 介:
        滿工,開發近18年,從事MCU方案開發多年,主要在家電方案,風機、水泵等電機驅動等方面,熟悉嵌入式方案開發,熟悉電機原理及其控制方法,對電機驅動,工業控制與智能家居等方面的開發及應用方案都有豐富的從業經驗。

        從事MCU單片機方案的開發多年,包括51核ARM核,各種應用:
        1. 通信基站環境控制箱控制板;
        2. 智能MP3播放器方案開發;
        3. 智能點菜系統手持機方案開發;
        4. 智能升降床方案開發,包括電機驅動;
        5. 參與多個電機驅動方案開發;
              
        若有相關MCU設計問題,你都可以在本帖下面,跟帖+並
        @阿寶jf  
        說不定你的問題在下個樓層或是下一頁的樓層會有一個指引方向給你,或者是問題被解決了。
        Elecfans高手問答,根據主題回帖提問,解答你的疑惑。
        —————————————————————————————————————

        問答獎勵規則:
        1、在論壇帖子中回帖,參與互動(要有價值的提問,刷評論除外),將獲得5個積分;
        2、關注並轉發分享本帖到朋友圈,截圖發布在評論下方,將獲得電子發燒友社群VIP入群資格
        3、在帖子中回貼參與提問,按樓層將獲得SWM181RCT6-50開發板(提供五個,圖示如下)
        SWM181RCT6-50開發資料介紹.txt (1.08 KB, 下載次數: 63)
        樓層獎勵開發板規則.txt (93 Bytes, 下載次數: 8)
        —————————————————————————————————————
        社區高手招募
        不限專業領域、不限技術方向,只要你是一個有活力並樂於分享的開發者,只要你願意把自己的經驗收穫分享給大家,幫助眾多從業者共同學習、共同進步,我們就歡迎你來做客社區高手問答。
        聯繫方式:liuyong@elecfans.com快來聯繫編者吧!
        ———————————————————————————————————————

        往期回顧


        9

        本帖被以下淘專輯推薦:

        2019-12-4 14:10:48   2 評論 分享淘帖1 舉報
        2 條評論
        59 個討論
        支持一下,滿工
        2019-12-4 14:47:56 1 評論

        舉報

        1 條評論
        @阿寶jf 歡迎滿工
        1 條評論
        這個220v-60v的電動車充電器,后級有個16腳晶元末字了,大概是哪些晶元可能啊,前端用的是UC3843的晶元起震的,我是想破腦袋瓜子了,這個16腳的晶元

        image.jpg (64.56 KB, 下載次數: 388)

        image.jpg
        2019-12-4 16:02:07 4 評論

        舉報

        4 條評論
        滿工您好,我有個項目,負載是交流12V同步電機,而整機是直流12V供電,所以需要將直流轉為交流給同步電機供電,我打算用H橋類似的方案,通過給電機兩端的電壓不停的切換正負方向來實現。我有個疑問,如果按這樣操作的話,這樣電機端實際上是方波,而正常的交流電是正玄波,這樣的方波控制對交流電機性能是否有影響?影不影響電機的正常工作?您是電機驅動方面的專家,請幫忙解答,多謝!!!
        2019-12-4 16:28:33 4 評論

        舉報

        4 條評論
        • 阿寶jf 2019-12-4 18:00

          交流12V同步電機?我頭一回聽說,應該是三相12V同步永磁電機吧,這樣的話,就需要3個半橋組成驅動電路,採用FOC或方波驅動方式,很簡單的就實現驅動了

          aj8889 回復 阿寶jf: 2019-12-5 08:32

          電機確實是交流的,銘牌上寫的是爪極式永磁同步電動機,電機兩根線。我的意思是我用這種方波驅動的話,會不會對電機有影響,畢竟真正的交流電是正玄波驅動。

          阿寶jf 回復 aj8889: 2019-12-5 21:40

          那我明白了,是罩極式永磁電機,用你說的方波時沒有問題的,對電機影響不大,但是可能對外干擾比較大而已;而且可能在低速時,電機的雜訊比較大;

          aj8889 回復 阿寶jf: 2019-12-6 09:04

          感謝大神的耐心解答!!!

        我買了一塊51單片機的開發板,它上面有各種模塊,都是已經可以開發使用了。現在我想另外買一個晶元,但是我看了看晶元的引腳,發現開發板上的VCC引腳已經用跳冒連接起來了,我自己的晶元就沒有地方可以接了,另外就是新的晶元要接一個電阻,這個也是沒有辦法的。現在我想問:有沒有這樣的開發板,就是只有電源和51晶元,以及晶振介面,或者還有些LED等?

        2019-12-4 16:38:00 3 評論

        舉報

        3 條評論
        滿工@阿寶jf ,升壓模塊接入超聲波模塊后斷路是什麼原因?如何解決?相關圖我也上傳下

        2019-12-4 16:40:39 1 評論

        舉報

        1 條評論
        我用STM32製作平衡小車,然後想用紅外線遙控器來控制。但是一用到接受紅外線外部中斷時候,平衡小車控制平衡的中斷就會被延遲導致小車沒有那麼靈敏了(就是很難平衡),請問下有什麼辦法嗎?
        1 條評論
        • 阿寶jf 2019-12-4 18:11

          接收紅外線的外部中斷程序,應當採取必要措施,保證每次運行的時間最短,不要試圖在一次中斷接收完遙控碼,你可以每次僅接收1bit,保存在全局變數裡面,接收完后,觸發成功接收的事件

        你好!
        觸摸屏可以和單片機通訊連接嗎?
        2019-12-4 17:48:57 1 評論

        舉報

        1 條評論
        請問STM32L4系列晶元上電運行後為什麼所有的全局變數、地址變數的數據全都變成了最大值(0xffff)?

        具體情形:

        程序運行后,全局變數不可控,debug模擬發現寄存器內存儲的值全部變為FF。定時器工作正常,板子上的工作指示燈能正常閃爍,通過MOSFET驅動的LED模塊也能正常閃爍。但是因為全局變數出問題,導致部分功能不正常。

        程序有一年的工程實踐,一直用的沒問題。硬體的PCB和器件也是按照之前的PCB和boom採購焊接的,只是舊的板子用起來完全沒問題,新的板子就出現了上面的問題。下面附上最小系統的電路圖,希望給點意見。





        我估計是因為EPROM存儲晶元的初始值導致的,因為第一批貨裡面寄存器所有值都是00,這一批初值都是FF,導致上電讀取的值不正常。



        2019-12-4 18:09:51 2 評論

        舉報

        2 條評論
        • 阿寶jf 2019-12-4 18:22

          這款是M4內核的32位MCU,一般情況下,ARM核MCU的編譯工具,可以設定程序載入時,全局變數的初始值的,默認情況下,是00的,如果工程特意指定,可以是ff。你這個情況,可能要核實一下工程的配置

        • 阿寶jf 2019-12-4 18:26

          可能我寫的也不一定正確,是否是,程序啟動時從Flash內部讀取了部分數據然後賦值給到RAM?而Flash內部數據並未初始化,或是燒寫程序時,沒有把常用數據表的數據燒寫到指定空間

        請問滿工,串口通信發送回來的數據多了該怎麼辦?
        1. 下面這個代碼進行串口通信,
        2. 我一直發送的都是數據0x01。
        3. 每次單片機發回的值都應該是 (序號 01)。
        4. 但是到第十次發送的時候,發送的是(0D 0A 01)呢?
        5. //1.以2400bps從計算機發送任一位元組數據,
        6. //當單片機收到該數據后,
        7. //在此數據前加上一序號然後連同此數據一起發送至計算機,
        8. //當序號超過255時歸零。
        9. #include<reg52.h>
        10. #include<stdio.h>
        11. #define uchar unsigned char
        12. #define uint unsigned int
        13. uchar a,flat,num;
        14. void init()
        15. {
        16.         TMOD=0X20;
        17.         TH1=0xf4;  //2400波特率對應定時器1初值
        18.         TL1=0xf4;        
        19.         TR1=1;
        20.         SM0=0;
        21.         SM1=1;
        22.         REN=1;
        23.         EA=1;
        24.         ES=1;
        25. }
        26. void main()
        27. {
        28.         init();
        29.         while(1)
        30.         {
        31.                 IF(flat==1)
        32.                 {
        33.                         flat=0;
        34.                         ti=1;
        35.                         num++;
        36.                         printf("%c",num);
        37.                         while(!TI);
        38.                         TI=0;
        39.                         TI=1;
        40.                         printf("%c",a);
        41.                         while(!TI);                        
        42.                         TI=0;
        43.                         ES=1;
        44.                 }
        45.         }
        46. }
        47. void ser() interrupt 4
        48. {
        49.         ES=0;               
        50.         RI=0;         
        51.         a=SBUF;                 
        52.         flat=1;
        53. }
        複製代碼

        2019-12-4 18:43:19 2 評論

        舉報

        2 條評論
        • 阿寶jf 2019-12-4 22:24

          跟printf()的實現有關,庫裡面,可能自動的把0x0a翻譯成0x0d 0x0a兩個字元了;這是windows格式的回車換行符。想避免這個問題,可以避免使用printf()函數,直接用SBUF=num,就可以了;

        • 阿寶jf 2019-12-4 22:27

          後面一句,也用SBUF=a來代替就可以了

        希望高手能介紹幾款最為簡潔的mcu
        2019-12-4 22:11:57 4 評論

        舉報

        4 條評論
        • 阿寶jf 2019-12-4 22:33

          簡潔的MCU,其實是需要跟具體應用場景來判斷的,有些時候簡潔了,功能不夠用;目前來說,需要觸摸的簡單控制,合泰最合適,有段碼顯示的簡單功能華芯微特SWM181就好

          王棟春 回復 阿寶jf: 2019-12-4 22:36

          滿工對語音存儲晶元了解嗎  最近項目需要用到  還望專門開貼講解一下  謝謝

          阿寶jf 回復 王棟春: 2019-12-5 20:31

          語音存儲晶元不是很了解,知道一些,還是把開講機會留給高手吧

          王棟春 回復 阿寶jf: 2019-12-5 21:44

          就你所知的語音存儲晶元 還望滿工能推薦一下 謝謝

        @阿寶jf 歡迎滿工指導!
        2019-12-4 22:31:34 評論

        舉報

        單片機請教兩個問題
        1.單片機外接晶振起振的條件除了需要起振電容,還需要哪些條件?是否還需要程序呢?
        2.單片機的高阻狀態電平也是0,低電平也是0,這兩個狀態外部如何識別呢?

        2019-12-5 10:26:03 1 評論

        舉報

        1 條評論
        • 阿寶jf 2019-12-5 20:37

          1、起振跟程序還真沒關係,一般跟電容,Vdd電壓的大小有關;
          2、高阻狀態電平並非零,只是說,你讀取外設埠時得到0而已,這個狀態其實對單片機本身來說,是無法區別的,如果單純pin腳,應該很難判斷,或者加個電容,然後判斷其電壓的變化來確定,我用這個辦法做過模擬觸摸;

        請教滿工SDIO讀取SD卡碰到的一些問題,最近在學習STM32內部的SDIO介面來讀寫SD卡, 卡用的是大容量16GB的HCSD卡, 主控為STM32F103RC;採用官方的SDIO讀寫常式為基礎進行測試修改, 現在已經可以把卡識別並將卡帶入到數據傳輸狀態(Transfer Mode);
        碰到的問題:
        ①在卡已經進入到Transfer State狀態的情況下, 依照SD卡的技術說明, 想通過發送CMD7(攜帶卡的RCA地址) 讓卡返回到StandBy狀態; 但是發送CMD7卡卻無響應, 用示波器查看CMD線上確實無響應; 但此時發送CMD13(攜帶同樣的RCA地址為參數) 卻能得到卡的R1響應, 響應的數據為CSR寄存器內容: 0x0000 0900;
        想問下為何卡已在Transfer State 狀態下發CMD7命令卻無響應;

        ②在卡初始化過程中, 每次初始化過程得到卡的RCA地址都為43690 (Hex: 0xAAAA); 想問下此RCA地址對於一個SD卡來說是固定的嗎? 即是否每次初始化過程中發送CMD3 都會得相同的RCA地址;?

        ③像CMD7等響應為R1b的命令,它的響應和R1響應有何不同呢, 網上搜索是R1b說有一個忙碌狀態位要檢測, 想問下這個忙碌狀態位是存在於什麼地方, 具體做怎樣的檢測;

        麻煩大佬了,望解答
        2019-12-5 10:48:45 2 評論

        舉報

        2 條評論
        • 阿寶jf 2019-12-5 20:52

          本人寫過模擬SPI方式讀寫SD卡的程序,其實你說的CMD7無相應,應該是你沒有選中該卡並且把其他全部不選中,如果你只有一張卡,那就先選中該卡(CM3命令),再發CMD7命令;

        • 阿寶jf 2019-12-5 20:57

          2、RCA地址是固定的,初始化時需要識別並保存該RCA,並在後續訪問時使用;

        想問下滿工這個電路有什麼用 在某個項目中看到的

        我模擬了一下結果如圖


        結果就是把正弦波轉成4V脈衝波,我看很多電路也有同樣的用途,這個電路不同之處在哪呢
        2019-12-5 10:53:46 1 評論

        舉報

        1 條評論
        • 阿寶jf 2019-12-5 21:15

          實際上相當於一個滯回式信號濾波整形電路;其用途是把干擾比較多的信號中提起出有用的方波信號,這個電路抗干擾性很強


        這是同事畫的原理圖,外接25MHz的有源晶振。 一般使用無源晶振時OSCI、OSCO分別和晶振引腳相連。我在cubeMX上配置時,只要使能外部高速晶振這兩個引腳都會被佔用,無法配置成普通IO口,後來我在代碼里IO口初始化時直接將OSCO配置成普通IO口,可是時鐘就不對了,達不到72MHz,貌似外部晶振沒有啟振。
        所以問一下,使用外部有源晶振時,能否只使用一個時鐘引腳OSCI?
        2019-12-5 10:54:15 1 評論

        舉報

        1 條評論
        • 阿寶jf 2019-12-5 21:23

          應該是不能的,不只你這個,很多晶元,如果使用外部有源晶振,OSCO一般都懸空的,高阻態

        請問C51中關於4X4矩陣鍵盤的問題?


        我把P0口接在矩陣鍵盤上的,當我按下矩陣鍵盤中的某個按鈕時,我去檢測
        發現都是0xff,我感到很奇怪。矩陣鍵盤中的任一一個按鈕的兩端都與P0口
        中的某兩條線相連,當按下時,這兩條線就會變成低電平,可是我去檢測時
        怎麼會沒有變化呢?
           while(1)
           {   
              IF(P0 != 0xff)
              {
                 //顯示1;
              }
              else
              {
                   //顯示2;   
              }
           }

        這個例子中都是顯示2,請問這是為什麼?

        2019-12-5 16:42:42 2 評論

        舉報

        2 條評論
        • 阿寶jf 2019-12-5 21:28

          你沒發圖出來,不好判斷;如果你的鍵盤沒有排阻下拉,那需要把行或列配置為輸入下拉,然後,把相應pin置0后,讀取,要掃描方式操作讀取的。

        • liuyongwangzi 2020-1-2 10:32

          恭喜18層用戶,請提供相關信息給我,郵寄相關禮品

        @阿寶jf 滿工,請問如何讓 步進電機 按這樣的一條曲線進行周期性轉動呢?

        我目前的想法是對 曲線方程求導,得出速度方程,然後在看看 速度 和 頻率之間的對應關係,看能否指點指點,感激不盡


        2019-12-5 16:46:00 1 評論

        舉報

        1 條評論
        • 阿寶jf 2019-12-5 21:33

          步進電機,需按照確定順序的步數去驅動,自然就按照這個曲線轉動了。速度都是你給定的,我不是很get到你的問題點

        開發環境:CS+ for CA,CX V4.02.00
        問題:
        1.怎麼將常量數組定義到Flash中?
        2.怎麼將Flash中的常量數組拷貝到Ram中?
        2019-12-6 11:35:06 1 評論

        舉報

        1 條評論
        • 阿寶jf 2019-12-6 21:19

          你這個是瑞薩平台,其實定義常數到Flash,跟其他平台一樣的,用const就可以了,比如:
          const unsigned char ArrayStr[8]={'H','e','l','l','o','!',0,0};
          而如果想要拷到Ram,那就直接取數組ArrayStr[n]賦值到內部Ram即可,比如:
          unsigned char TempA;
          TempA=ArrayStr[0];

        撰寫討論

        你正在撰寫討論

        如果你是對討論或其他討論精選點評或詢問,請使用「評論」功能。

        高級模式
        您需要登錄后才可以回帖 登錄 | 註冊

        聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴
        123下一頁
        發討論
        關閉

        站長推薦 上一條 /8 下一條

        快速回復 返回頂部 返回列表
        <button id="ewwgn"><acronym id="ewwgn"></acronym></button>

        <dd id="ewwgn"></dd>
        <button id="ewwgn"></button>
            1. <progress id="ewwgn"></progress>
              <tbody id="ewwgn"><track id="ewwgn"></track></tbody>
              <em id="ewwgn"><tr id="ewwgn"></tr></em>