大部分玩 Arduino 的朋友,都還是從 UNO板子上開始玩,而這些板子的共性,就是都是用了 DIP(直插)28 腳封轉的主芯片。而轉為 Nano 的話,其實芯片核心并沒有變化,但是封裝從 DIP28 改為 TQFP32,兼容版的UNO用的和nano版是同樣的芯片,軟件方面都不需要變動,程序都是通用的。硬件方面又有什么不同呢?32 – 28 = 4,多了4個引腳。
如上圖,多了 VCC 和 GND,沒什么好說,而多的 ADC6 和 ADC7,就是是之前 DIP 封轉的芯片所沒有的東西了,為了兼容UNO原版,兼容版這兩個引腳也是沒有引出的,而在 nano 中是把這2個ADC引腳引出來了。
上圖很明顯,在A6,A7引腳上有個紅色的驚嘆號,說明需要我們注意,大家注意看datasheet中的管腳定義,就會發現這 ADC6 和 ADC7 實際上和 ADC0-ADC5 是不太一樣的。ADC0-ADC5 其實是作為 PC0-PC5 的第二功能存在的,分別對應 Arduino 定義 A0-A5。也正因為次,在Arduino 的官方指南中提到,“The analog input pins can be used as digital pins, referred to as A0, A1, etc. ”。說的是,模擬輸入口可以當數字口一樣用。對于A0-A5來說,確實不錯。但對于第一功能就是ADC(模數轉換)而不兼有普通 IO 口功能的 ADC6 和 ADC7 來說。這句話就要打折扣了。A6 和 A7 只能作為模擬輸入使用,不要把它當成 類似于 PC PB 這樣的 IO口去使用。
而且,這本并不是 Arduino 內核的問題,而是硬件本身的設計就是這個樣子。A6 和 A7 確少作為 標準IO口 所需的必要硬件配置。
實測中確實是這樣,在 A6、A7 引腳上,想運行 Blink 例程,使用 pinMode(A6, OUTPUT),digitalWrite(A6, HIGH) 都不會得到你所需要的效果。更崩潰的是,你可能改變了芯片內部你原本不想改變的寄存器配置,沒準會有詭異意外發生。玩 Nano,或者是貼片AVR的 Arduino 朋友們,可要注意。
總結來說,就是在nano版中,A6,A7只能用作ADC轉換用,而不能用作數字口來使用。
-
芯片
+關注
關注
453文章
50397瀏覽量
421796 -
引腳
+關注
關注
16文章
1181瀏覽量
50281 -
Arduino
+關注
關注
187文章
6464瀏覽量
186645
原文標題:關于Arduino Nano你沒有經歷過的坑
文章出處:【微信號:chuxue_MCU,微信公眾號:單片機技術宅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論