Ladda ner artikeln på 200 kbyte här (länk, pdf). Fler tekniska rapporter finns på etn.se/expert |
En av de viktigaste fördelarna med att programmera minnena efter det att de monterats på kretskortet är att det då är möjligt att kombinera testningen och programmering i ett samma steg.
Hur flashminnet används på beror vanligtvis på vilket skede av utvecklingen som man befinner sig på. I många tillämpningar använder konstruktörerna flashminnet under utvecklingsfasen för att lagra och köra firmware och applikationsprogramvara. Metoden med att programmera flashminnet på kortet används ofta under utvecklingen av nya applikationer eller firmware. Koden är skriven, kompilerad och laddas ner till flashminnet på utvecklingskortet för att sedan testköras på det riktiga kortet.
Brian Bradford startade sin karriär på Intel där han arbetade med halvledarprocesser. Därefter arbetade han med teknisk marknadsföring för Intels embeddesektion som sedermera fördes över till Micron. Den här e-postadressen skyddas mot spambots. Du måste tillåta JavaScript för att se den. |
Möjligheten att utnyttja befintliga tillverkningssystem för testning, tillsammans med de snabbt programmeringshastigheterna som flashminnena har, gör det möjligt att programmera dem efter det att de monterats på korten. Förutom att man inte sänker produktionstakten finns fördelar som:
• Kortare tid till marknaden: om en ändring görs av programmet kan den nya versionen av koden skickas direkt till produktionslinan vilket kortar tiden till produktion.
• Förbättrad kvalitet: Genom att inte ha några programmerade kretsar på lager minskar risken för att fel version av firmware, operativsystem eller tillämpningsprogram hamnar i produkterna vilket i sin tur spar tid för att spåra upp och programmera om enheter med fel version på koden.
• Enklare supply chain: Traditionella tillverkningsprocesser spårar både programmerade och oprogrammerade enheter. Med programmering på korten räcker det med att hålla reda på de oprogrammerade kretsarna.
Flera olika typer av tekniker används för att ladda programvara och data i ett flashminne efter lödprocessen. Det är ICT, Jtag, och externbussar.
ICT eller nålbäddstest är en metod som används för att test om det uppstått fel i tillverkningsprocessen. Med nålbäddstest hittar man bland annat kortslutningar och olödda förbindningar. Efter att ett kort testats och godkänts, kan flashminnet programmeras. Tiden för att ladda ner programmet måste vara mycket kort (ca 1 till 4 sekunder) för att inte sakta ned tillverkningslinan. Dessutom kräver metoden vanligen få anslutningar vilket spar stift i testfixturen.
Jtag är en IEEE-standard (IEEE 1149.1) som använder arkitekturen i Boundary Scan för att testa att kretsarna på ett kort är förbundna korrekt. Jtag-porten kan också användas för att programmera flashminnen på kortet. Under testfasen ger gränssnittet direkt kontroll över minnesbussen vilket gör det möjligt att ladda ner programmet i flashminnet. Jtag-programmerare skickar vanligtvis program och data till flashminnet över databussen på liknande sätt som firmware till processorn uppdateras.
Nålbäddstest och Jtag används vanligtvis för att programmera små datamängder (mindre än 16 MByte) på NOR-flash på grund av den låga bandbredd som krävs (få anslutningar eller långsamma klockfrekvenser). Tabell 2 jämför teoretisk skrivprestanda för olika typer av NOR-flash.
Externa bussar och nya typer av nålbäddstestare är de bästa teknikerna för överföring av större datamängder som kräver en högre bandbredd. Nålbäddstestare har nyligen nått programmeringshastigheter på 20 Mbyte/sek.
Det finns två metoder för att använda externa bussar vid programmering av flashminnen. Med en mikroprocessor överförs data till flashminnet via en befintlig kontakt (t.ex. USB). Mikroprocessorn används för att styra och övervaka processen. Saknas mikroprocessor överförs data till flashminnet via en befintlig anslutning (t.ex. UART) men då behövs också dedicerad logik på kretskortet för att hantera programmeringen.
Externa bussar och moderna nålbäddstestare kan överföra data mycket snabbt. Tabell 3 visar den bandbredd som kan uppnås för NAND-minnen med en bit per cell och för inbyggda minnen, eMMC. I alla varianter ligger begränsningarna snarare i minnet än i gränssnittet.
Kritiska faktorer för programmering på kortet.
När du väljer metod för att programmera minnet på kortet har minnestypen, filstorleken, kortlayouten och vilken utrustning som finns tillgänglig i tillverkningslinan betydelse för valet av metod.
Storleken på firmware, data och operativsystem kan variera från ett tiotal kilobyte till hundratals megabyte. För filer mindre än 8 Mbyte passar nålbäddstestare och Jtag bra på grund sin låga bandbredd. Idag finns det Jtag och nålbäddstestare i många produktionslinor för att testa korten för produktionsfel. Därmed behöver man inte skaffa någon ny hårdvara för att programmera flashminnena. NOR-flash kan programmera med 1-2 Mbyte/s och metoden fungerar därför bra så länge programmeringstiden inte överskrider 4 sekunder.
Programmering av större datamängder (32 Mbyte till 1 Tbyte) till NAND-flash underlättas inbyggda funktioner i kretsarna.
SLC NAND är den snabbaste (5 till 60 Mbyte/s). Dock är marknaden på väg mot lösningar med inbyggda minnen som eMMC som har programmeringshastigheter från 10 till 35 Mbyte/s.
För minnen med hög bandbredd används två olika tekniker för att överföra stora datamängder: nålbäddstestare och externbussar.
Moderna nålbäddstestare har höga programmeringshastigheter och klarar därmed stora minnen. Externa kantkontakter kan antingen använda den inbyggda processorn eller programmera flashminnet direkt. Båda dessa tekniker kräver antingen en kretskortsdesign där datavägen kan styras av processorn eller annan logik som isolerar bussen.