Bygga en AVR Xmega Prototyping ombord! (2 / 7 steg)
Steg 2: ATXmega programmering styrelsen Design
Utformningen
Min primära design för styrelsen kom från förslagen i Atmel's AVR042: hårdvara överväganden guide och eyeballing olika referensdesign. Styrelsen godkänner likström och har en inbyggd regulator för ren 3.3V makt. Jag beslutade att använda den interna 32MHz oscillatorn och inkluderar bara en 32kHz klockan kristall för realtid klocka förvaltning. Den har också stöd för USART-till-USB-via en FTDI chip på en USB-BUB från Moderndevice.com för $14, så pin huvuden är i styrelsen för det. Jag är ett stort fan av visuell indikering av handlingen, så jag har tagit med en grön 3mm LED att visa makt och en röd 3mm LED ansluten till växeln reset för att kontrollera en hård återställning av chip.
Mitt primära mål, dock var att producera en styrelse som får tillgång till de flesta alla stift utan att behöva installera många frikoppling kondensatorerna behövs för varje nytt chip att programmeras. Som nämnts, programmeringsgränssnittet är PDI eftersom den inte stöder SPI och jag har inte en JTAG debugger/programmerare (det är på min önskelista) så det ingen finns JTAG i styrelsen.
Ingår nedan är bilder på den senaste designen tillsammans med Örnen CAD Schematisk och styrelsen filer. Jag har också skapat en panel i botten, speglade topp och silkscreen lager med 300dpi (överväga utskrift på 1200dpi) i PDF-format. Detta är vad jag använder för att skriva ut på öppenhet eller toner överföring papper, så jag har tagit det som en service. Ta en minut att titta på layouten för styrelsen.
Idiom av hårdvarudesign
Om du har tagit en minut att titta på styrelsen har du förmodligen märkt att det kan brytas i små bitar som jag vill kalla hårdvara Design idiom (eller mönster). Detta är små kretsar som du gör om och om igen för alla (eller många) mönster. Jag har delat hela konstruktionen i det följande idiom:
- Power
- Återställa
- Frikoppling
- USB
- Crystal
- Programmering
- Sockets
Power
Delsystemet makt är den komponent som jag gör mest på min styrelser eftersom jag har hittat dra för många mA från USB kan orsaka allvarliga problem (jag brände en USB-hubb en gång). Plus att ha sin egen makt-undersystemet kan du bara ansluta den till en DC mur vårta från 5V till ~ 20V och kör det fristående medan du programmet. Yttre kraftkΣlla är nödvändigt om du använder AVRISP mkII som det inte förse styrelsen med makt som några av de andra programmerarna där ute.
Den grundläggande utformningen av komponenten makt är enkel och rättfram. En DC-jack accepterar en plugg som ger effekt med en ganska stor polariserat kondensator över positiva och negativa rälsen. Kör (+) i en LDO följt reglerare av fast 3.3V av två mer filtrering kondensatorer på 1uF och 0.1uF. De behöver inte vara polariserad som schematiskt antyder.
Final (+) järnväg ur sista kondensatorn är en mycket stabil, reglerad 3.3V. Du kan välja att använda hålmontering komponenter över de SMD komponenter jag använt och det är helt upp till dig. Jag använder vad jag har på handen för det mesta. Jag har också använt en 27uH induktor på AVCC port för att göra analoga strömmen en lite renare.
Jag har också tagit med två andra power beståndsdelar: ett dubbla huvud för export av makt, och en 3-polig bygel används för att ange om kraften kommer från DC-uttaget eller USB. Det är dina alternativ. Bilden nedan.
Återställa
Jag har nästan alltid en reset krets i min design. Det är praktiskt. Denna hårdvara mönstret består av följande:
- Dra upp! ÅTERSTÄLLA till Vcc
- Ansluta en sida av taktila växla till den! Återställ med den andra sidan ansluten till en resistor/LED par kommer att marken.
- Remmen en 0.1uF kondensator mellan båda sidor av växeln (dvs båda stiften du använt).
Obs: Var försiktig med alternativet kondensator som det kommer att inaktivera användningen av debugWIRE, om du använder den. Då igen, om du använder det, måste du lägga till din egen koppling till design.
Tryck på reset-knappen, den röda LED tänds och släpp. ATXmega chip är hårdvaran reset och omstarter. Se bilden nedan.
Frikoppling
I analog mönster används frikoppling (eller bypass här) till shunt högfrekventa signaler på kraftledningen till marken. Detta finns på analog Vcc ingång. I digital design är syftet olika. Strömstyrka dragningen från MCU och inbyggda enheter är ett genomsnitt och när många stift är i användning och drift, nuvarande dragningen kan vara hundratals mA eller mer. Kondensatorerna placerade över Vcc och marken act som mini reservoarer kostnad som kan leverera en port den nuvarande som den behöver när det är en bit bort. Det är optimalt att placera dessa kondensatorer som vansinnigt hamnen de underhåller som möjligt.
I min design, hittar du frikoppling kondensatorer enligt den transportör chipet (det vill säga mellan dual-rad uttagen denna integration är viktigt vid ATXmega, AVR32, och ARM nivåer eftersom många av dessa marker har många Vcc och AVcc anslutningar som måste alla frikopplas. Det är en smärta att göra det manuellt... bara gör det inte. Gör det i programmering styrelsen och blir gjort med den.
USB
Jag gillar ofta att ha ett utlopp för debug utmatning. En LCD-skärm kan vara alltför begränsande för att få massor av debug data från din firmware. Därför innehålla jag ofta en 6-stifts vinkelrätt pin headern som gränssnitt till den moderna enheter USB BUB modul. Det kan du helt enkelt skriva till din RS232 USART och skickas via USB via en FTDI chip. På datorn använder jag sedan AVR Terminal för att visualisera min debug data. Detta är ovärderligt (för mig åtminstone).
Du kan välja att ta bort detta om du inte har USB-funktionerna, även för $14 USB BUB är ett bra köp. Bilden nedan.
Crystal
Tvärtemot hårdvarudesign finns i många AVR mönster, en 16 MHz eller 20 MHz används extern crystal inte riktigt för systemklockan på Xmegas. Jag använder den interna 32MHz oscillatorn och endast omfatta en 32kHz klockan kristall för användning i realtid klocka tidtagning. Det är inte nödvändigt att använda, men det är ombord om du behöver tidtagning funktionalitet. Igen, det har parallella kapacitiv och använder två små (oftast 18pF till 22pF) kondensatorer till GND.
Ytterligare en fördel, kan PLL använda externa 32kHz kristallen för runtime ersättning av temperatur och drift, vilket ytterligare förbättrar noggrannheten i 32MHz oscillatorn.
Bilden nedan.
Programmering
Nu, vad skulle en programmering styrelse vara utan ett programmeringsgränssnitt? Här använder vi en enkel 2 x 3 manliga pin rubrik; samma som används för SPI programmering. Kolla nedan för pinut av PDI-gränssnittet. Jag helt enkelt ge makt och göra två lämpliga PDI anslutningar och kalla det en dag. PDI eliminerar behovet av SPI isolering motstånd.
Sockets
Så, för ATXmega programmering/devel styrelsen, du hittar det bristling med socket headers. Det finns fyra (2 i parallell) dual-2 x 8 kvinnliga radrubriker acceptera 2 x 8 manliga huvuden från Xmega carrier board. Jag har också försökt att få fram så många MCU stift till rubriker för åtkomst i utveckling och dessa kan hittas i de enda kvinnliga radrubrikerna runt ytterkanterna. Dessa är markerade med ett silk screen lager som visar vilken pin förs till vilket uttag.