如何使用 Atmel Studio 或 MPLAB X 通過 USBASP 或 AVRISP MKII 來進(jìn)行編程
小型編程接口(TPI)
Atmel® 微型編程接口(TPI)僅在部分低端 Atmel AVR® 微控制器上配備,它使外部編程器能夠訪問設(shè)備的非易失性存儲(chǔ)器(NVM)。該接口可訪問設(shè)備鎖定位、程序閃存以及簽名、配置和校準(zhǔn)部分。
TPI 可通過三個(gè)引腳進(jìn)行接入:
?復(fù)位:TPI 使能輸入
?TPICLK:TPI 時(shí)鐘輸入
?TPIDATA:TPI 數(shù)據(jù)輸入/輸出
因此,實(shí)際上只有 AVR ATtiny 系列微控制器中的極少數(shù)型號采用了 TPI 編程方式。以下是這些型號的列表。
?ATtiny4
?ATtiny5
?ATtiny9
?ATtiny10
?ATtiny102
?ATtiny104
?ATtiny20
?ATtiny40
這些 AVR ATtiny 器件可以通過 ATMEL 提供的工具進(jìn)行編程,也可以直接使用 USBASP(其主要采用 ATMEGA8A)來進(jìn)行編程。
ATMEL STUDIO 和 MPLAB X 都支持 ATtiny 控制器程序的開發(fā)以及設(shè)備的編程操作。
我們既可以使用 AVRISP MKII 或 USBasp 來對設(shè)備進(jìn)行編程。此外,還有其他第三方供應(yīng)商提供的集成開發(fā)環(huán)境和編譯器可供選擇。同樣,也有來自 MICROCHIP 或其他供應(yīng)商的其他工具可供使用。
在本項(xiàng)目中,我們將學(xué)習(xí)如何使用 TPI 協(xié)議通過 ATMEL STUDIO、MPLAB X 開發(fā)環(huán)境以及 AVRISP MKII 和 USBasp 調(diào)試器來對 ATtiny 芯片進(jìn)行編程。該項(xiàng)目的范圍僅限于 ATtiny4/5/9/10 控制器。
ATMEL STUDIO 與 AVRISP MKII:
這是開發(fā)和編程 ATtiny 芯片最簡單直接的方法之一。只需用 C 語言或匯編語言編寫代碼,并使用包括 AVRISP MKII 在內(nèi)的多種工具進(jìn)行編程即可。
ATtiny4/5/9/10 系列芯片有兩種封裝形式。較為易于操作的是 SOT23-6 封裝。我們可以提供一個(gè)小型的適配板,用于將 SOT23-6 封裝轉(zhuǎn)換為 DIP6 300mil 封裝。我們能夠輕松獲得帶有銑削圓柱形引腳的 6 引腳芯片基板。您也可以從這里找到類似的板子,它同樣包含原理圖和布局文件。
要使用經(jīng)過加工的 6 腳集成電路基板,我們還需要在轉(zhuǎn)接器中配備圓形引腳。
這些圓形的插針非常適合用于安裝帶有 6 腳 IC 底座的集成電路。
其他大多數(shù)用于相同目的的設(shè)計(jì)都使用方形引腳以及與之兼容的方形插頭。我們可以將這些方形引腳用于編程、面包板開發(fā)以及使用公母跳線。但它們無法適配普通的 IC 底座。由于 6 引腳的 DIP IC 底座常用于光耦合器,所以它很容易獲得,并可以直接安裝在電路板上。
現(xiàn)在我們已將這些設(shè)備安裝在 DIP6 型號的 IC 適配板上。絲印上的設(shè)備標(biāo)識是可選的。這樣既便于閱讀也方便操作。第 1 個(gè)引腳有一個(gè)白色圓點(diǎn)的標(biāo)識。
現(xiàn)在我們需要對如何將這些設(shè)備安置在編程器與目標(biāo)集成電路之間做出一些安排。
USBasp編程器使用的是 10 針的 FRC 連接器,而 AVRISP MKII 則使用的是 6 針的連接器。根據(jù)所使用的編程器的不同,我們需要決定哪種目標(biāo)板是適用的。
10 針目標(biāo)連接器:
上述電路板使用的是與 USPasp 編程器類似的 10 針連接器。許多針腳是未使用的。其優(yōu)點(diǎn)是我們可以直接將 IC 和編程器連接器插入到這個(gè)電路板上進(jìn)行編程,而且不需要額外的電源。
整塊組裝好的電路板將會(huì)呈現(xiàn)出如下面圖片所示的樣式。
D3 和 R1 以及僅電源指示燈。D2 和 R2 連接到目標(biāo) IC 的 RB2 端口引腳,該引腳在編程時(shí)未被使用。這兩項(xiàng)功能都是可選的,對于常規(guī)操作并非必需。U4 是 6 針目標(biāo)固定器。在插入目標(biāo) IC 時(shí),請注意引腳 1 的位置。兩個(gè)圓點(diǎn)應(yīng)匹配,且 IC 底部有額外的切口以便于方向的正確對齊。
6 芯目標(biāo)連接器:
另外一些程序員使用的是 6 針目標(biāo)連接器來進(jìn)行編程。與 10 針連接器相比,6 針連接器僅使用其中的 5 個(gè)針腳來進(jìn)行編程。
R5 和 D1 只是電源指示燈,位于 IC 底部下方,正常運(yùn)行時(shí)并非必需。R3 和 PB2(LED)與 PB2 端口引腳相連。這也是可選的。
組裝好的電路板將會(huì)是這樣的樣子。
在上述列表中,有幾件事值得注意。
首先,位于 CON6 附近的紅色跳線器。如果我們使用的是 AVRISP MKII 或任何帶有 6 芯接口的專用 TPI 編程器,那么這個(gè)跳線器應(yīng)處于 TPI 位置。
如果我們使用的是 USBasp 或其他 10 針編程器,那么跳線應(yīng)處于 ISP 位置。這個(gè)跳線是必要的,用于連接 MOSI 或 MISO 信號,而這些信號在 AVRISP MKII 和 USBasp 編程器中的分配方式有所不同。
另外需要注意的是右側(cè)的 PWR_5V 連接器。對于 USBasp 調(diào)試器來說,它會(huì)為目標(biāo)設(shè)備提供電源,并且不依賴外部電源。但 AVRISP MKII 則需要外部 5V 電壓來為目標(biāo)芯片供電。而 AVRISP MKII 只會(huì)提供編程信號,不會(huì)為目標(biāo)芯片供電。
基于上述原因,我們在目標(biāo)設(shè)備上添加了 PWR_5V 接口。我們可以通過 4 針或 5 針接口為板子供電。僅使用 5V 和 GND 電壓。
我們可以插入任何與之兼容的具有 4 或 5 個(gè)針腳的 USB 接口擴(kuò)展板,其底部接口的間距為 2.54 毫米。
要將 USBasp 調(diào)試器連接到這個(gè) 6 針的目標(biāo)板上,我們需要一個(gè) 10 針到 6 針的轉(zhuǎn)換器。
在將 10 針轉(zhuǎn) 6 針轉(zhuǎn)換器插入電路板時(shí),請務(wù)必注意,如果連接器沒有用于正確對齊的鎖定缺口,請不要強(qiáng)行插入。信號名稱已標(biāo)注在電路板底部,以便我們能夠輕松匹配連接。我們還需要將跳線插入 ISP 側(cè),以確保正常運(yùn)行。
在使用 AVRISP MKII 時(shí),紅色跳線應(yīng)置于 TPI 一側(cè),并且我們需要提供額外的電源(+5V 和 GND)。
確保目標(biāo) IC 的安裝方向與目標(biāo)適配板上的引腳 1 對齊。
ATMEL STUDIO 與 AVRISP MKII:
打開 ATMELE STUDIO 并編寫 LED 閃爍程序。編譯該程序。選擇編程器為 AVRISP MKII。提供 5V 電源和 GND 線?,F(xiàn)在我們可以擦除、編程閃存或鎖定位等操作。
ATMEL STUDIO 與 USBasp:
有相應(yīng)的步驟可以將 USBasp 設(shè)備設(shè)置為默認(rèn)編程器,并使其出現(xiàn)在列出的設(shè)備列表中。但我使用的是 AVRDUDE 以及 AVRDUDESS 這款基于圖形界面的工具,而非通過命令行輸入命令。
MPLAB X 與 USBasp:
MPLAB X 支持所有采用 TPI 協(xié)議的設(shè)備。我們可以通過使用 MPLAB X 集成開發(fā)環(huán)境并進(jìn)行相應(yīng)的設(shè)備選擇來輕松編寫程序。
可以通過 USBasp 來選擇并編程 ELF 或 HEX 文件。
最佳選擇是使用帶有 10 腳的 FRC 連接器,這種連接器無需任何額外的轉(zhuǎn)換、跳線或外部電源。
在上述視頻中,我們可以看到為 ATtiny10 開發(fā)的 RunTiny 游戲正在 ATtiny9 上運(yùn)行,該設(shè)備配備有 128x32 SSD1306 OLED 顯示屏、一個(gè)按鈕以及來自單塊鋰電池或經(jīng)過調(diào)節(jié)的輸出電源的 3.3 或 3.2 伏外接電源。
在上述圖片中,ATtiny 芯片是安裝在 SIP6 上的,而非 DIP6 上,這樣可以節(jié)省空間。
此外,還為 ATtiny10 設(shè)計(jì)了《俄羅斯方塊》游戲。
這些游戲?qū)τ谝谫Y源極其有限的情況下完成編碼設(shè)定來說,確實(shí)是一個(gè)巨大的挑戰(zhàn)。
本文編譯自hackster.io





