AVR Chronograph från koncept till PCB (2 / 13 steg)
Steg 2: Kraft och minimal AVR anslutningar
På power input, J1 är helt enkelt + 12VDC och marken från ett 12 volts vägg vårta som jag hade liggande. Det är perfekt för att driva sensorer, och det är en mycket vanlig storlek till bärgning från någonstans. Omedelbart efter J1 ser du D1. Denna diod fungerar bara som skydd från att ansluta strömförsörjningen bakåt. (och det sjunker spänningen av ca 0.7V minska värmen skingras av LM7805 något, men det är bara en lyckligt lottade bieffekt...)
Eftersom jag använder 12 volt sensorer, behövde jag ett sätt att föra det 12VDC till en nivå som är lämplig för att driva AVR, 7-segment-avkodare, och - ja - allt annat men sensorerna. LM7805 är en + 5 volt regulator som passar ändamålet perfekt. Tillsynsmyndighetens uppgift är att övervaka det är egna utspänningen på stift 3 och justera det är aktuell utgång tills spänningen är 5V. Vi behöver inte oroa sig för hur den gör detta. bara att den gör, och att det avleder den "extra" spänningen som värme. Kondensatorerna på indata och utdata för tillsynsmyndigheten är där för att se till att det finns lite extra ström om lasten snabbt ändras. Detta ger 7805 tid att reagera på eventuella ändringar på sidan belastning, som alla lampor tända plötsligt eller reset-knappen intryckt och släppt. ** Obs ** jag testat denna krets med leverans spänning sträcker sig från om 9VDC >> 20VDC. Regulatorn hanterar detta intervall bra, men börjar bli varmt på högre spänningar. Av denna anledning lagt jag en kylfläns till 7805.
Power LED bör vara självförklarande. R5 är det strömbegränsande motståndet att skydda D3 och de är anslutna direkt till tillsynsmyndighetens produktionen och marken. Om det är 5V, blir det en upplyst LED.
Nu till roligt grejer! Självklart i centrum för hela kretsen är våra ATMega328P utsedda uC1. Denna sak har 28 pins, så räkna noga! Stiften är anlagd på schematiskt precis som de är på chip och märkt precis som de är i tillverkarens datablad (om du inte har hämtat databladet PDF ännu, gå vidare och göra det - http://www.datasheetarchive.com/ - gå vidare och få datablad för dekoder och displayer och transistorer också - du kan behöva dem!) Detta chip är kommer att kräva + 5V, GND, en klocka källa, en pull-up resistor på Återställ PIN-koden och programmering port anslutningar innan det kan göra något annat än sitta där och titta som något slags konstig robotic tusenfoting, så låt oss komma till den.
Märkte du på den förenklade schematiskt att VCC och AVCC binds tillsammans på 5V leverans? VCC är den normala spänningen och AVcc är utbudet för ombord analog till digital omvandlare. AVcc ska anslutas till Vcc även om inte används för att ADC. Jag hoppas att du visste att GND går till en marken punkt i kretsen, eller 0V sidan av nätaggregatet.
Kristall resonator ansluter till stift 9 och 10 med ett par parallella kondensatorer. Dessa kondensatorer är mycket små (22p.) och hela gruppen av 3 komponenter ska monteras så nära till stift 9 och 10 som möjligt för att förhindra att ströva kapacitans påväxt med oscillatorn. Tillverkarens datablad för kristallen används anges rekommenderade storlekar för kondensatorer, så kolla upp först. Återigen, om du tänker använda en inre RC-oscillator, du måste konfigurera din AVR lite annorlunda. När vi får in ATMEL Studio 6 vi ska få till inrättandet av dessa saker med säkring bitar och sådant... Kul grejer
Du kanske har märkt att det finns flera beskrivningar för de flesta av stiften. Det beror på att du kan programmera att de har olika funktioner beroende på din ansökan. Även Återställ PIN-koden kan omprogrammeras för att vara en annan allmänna i/o pin, men gör inte det eftersom förlorar du din förmåga att programmera chip så fort du gör ändringen! Här är varför... titta på pin 19. Det är märkt PB5, vilket innebär PORTB 5. Det har en alternativ funktion för programmering märkt SCK (master/slave klockan.) Märker att detta SCK stift och Återställ pin-båda gå till ISP6 programmering hamnen. Programmering funktioner på stiften är endast aktiva när Återställ PIN-koden är jordad. Programmerare (AVR Dragon i mitt fall) gör jordanslutningen till Återställ PIN-koden automatiskt när den kommunicerar med chip att aktivera programmeringsfunktioner lämpligt stift. Så, om ditt program anger Återställ PIN-koden som en digital ingång... kan du inte längre använda det för att aktivera funktionerna programmering på andra programmering stiften! Kort sagt, bör "reset" alltid vara "reset" - om inte du tillverkning av 1 000 000 enheter och din programvara kille berättar du under den första produktionen kör som han behöver "bara ett mer ingående".
Så, det innebär att andra programmering stiften (SCK, MISO, MOSI) kan användas som I/O pins! På den full schematiskt, kan du se att jag använt pin 17 som båda MOSI för programmering och en digital utgång för en bit till 7-segment dekoder. Detta fungerar bra så länge Återställ PIN-koden inte får dras av misstag låg nog att AVR "tror" att det är jordad i normal drift. Det är syftet med pull-up resistor R1. R1 garanterar att om ingenting ansluter Återställ pin till marken, då är det hög- eller 5V. I den fullständiga schematiskt ser du en tryckknapp switch ansluten från pin1 till marken också. Det är praktiskt om ditt chip behöver en omstart av någon anledning under utveckling (av misstag gör det dividerar med 0 är ett bra sätt att få det att verka dum! Fråga inte hur jag vet detta...)
I den andra bilden ser du ett diagram över rubriken 6 pin ISP och namnen på sina anslutningar. Allt som finns kvar att göra är gör anslutningen mellan dessa header stift och matchande stiften på AVR, och vi bör vara beredda att driva upp och testa våra programmerare!
Som jag nämnde tidigare, SCK är master/slav klockan - pin 19 detta är hur programmeraren och målet chip vet de talar med samma hastighet.
MISO/MOSI - master input, slave output och master output, slav ingång - pins 18/17 detta är stiften som faktiskt sköta snacket.
VCC/GND - är bara makt leverans anslutningar - stift 7/8 programmering hamnen har en Vcc anslutning för att driva målet, eller, om AVR Dragon, tillåter programmeraren att matcha den målenheten spänning.
Och slutligen, återställa - stift 1 sätter chip i programmeringsläget när jordad, återställer till uppstart tillstånd när det ändras från låg till hög, och fungerar som kommunikation stift under DebugWire läge (felsökning funktionen stöds av ATMEL Studio, det är coolt, men jag använder inte det mycket.) Detta stift är också används för att ange HVPP (högspänning parallell programmering) läge när 12V tillämpas, men vi kommer inte att behöva göra det. Det är värt att notera att Återställ PIN-koden är bara PIN-koden som du tryggt kan lägga 12V, och endast för HVPP.
Det är dags att få denna lilla krets på bakbord (jag hoppas du vet hur en skärbräda verk.) om inte:
Kolla in de 3 och 4 bilderna för breadboarded programmering krets och programmerare anslutningen. Kristalloscillator finns inte i bilder, men det bör ingen roll på denna punkt om du lägga den där eller inte. Efter att vi avslutar konfigurera AVR för att använda kristallen fungerar det inte längre utan det förrän du konfigurera om den om du vill använda en annan klocka källa.
Nu när vi har denna enkla krets byggd för strömförsörjning och programmering våra chip, kan vi gå vidare till ATMEL studio och börja konfigurera saker!