Lite smällande
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 8 maj 2018; kontroller kräver
5 redigeringar .
Bit-bang är en teknik för att organisera en seriell anslutning med mjukvaruemulering istället för en specialiserad hårdvaruenhet. Programmet ställer direkt in tillståndet för GPIO- stiften på mikrokontrollern (eller LPT på datorn), vilket ger de önskade signalegenskaperna till fullo. Används vanligtvis i billiga enheter. [1] [2]
Begränsningar
- Hastigheten på den emulerade enheten begränsas av stiftinställningstid och kodexekveringstid. Därför används Bit-bang i allmänhet för att emulera låghastighetsenheter eller låghastighetsversioner av enheter.
- Det är svårt att garantera den exakta exekveringstiden för koden, vilket kan skapa problem vid implementering av synkroniseringskänsliga protokoll
- Programemulering förbrukar CPU-resurser
- Den mottagna signalen kan ha högt jitter , speciellt om processorn utför andra uppgifter än kommunikation.
- Kräver manuell matchning av signalnivåer och strömmar [3] , utan vilken det är möjligt att skada GPIO-stiften eller den andra enheten som deltar i protokollet
Applikation
Linux -kärnan har stöd för I²C - emulering via GPIO [4] .
Med hjälp av Bit-banging-tekniken kan du lägga till seriell port [5] och I2C-stöd till PIC-enheter.
Ibland implementeras även JTAG- programmerare , till exempel på Arduino- enheter . [6]
Det finns implementeringar av de enklaste USB- enheterna [7] på GPIO-stift utan användning av speciella chips som implementerar det fysiska lagret (PHY).
Vissa USB-till-serie-adaptrar, som FT232, tillåter bitbang-drift. [åtta]
Vissa MMC/SD-kontroller kan sättas i ett läge där de ger ut 4-5 högfrekventa signaler. Till exempel, med hjälp av styrenheten från Jz4720 SoC, var det möjligt att skapa en VGA- signal [9] [10] .
Anteckningar
- ↑ Michael Predko. Programmering och anpassning av PICmicro-mikrokontroller . — 2:a. - McGraw-Hill Professional, 2000. - S. 10–12. - ISBN 978-0-07-136172-9 .
- ↑ Mike Szczys . Bitar genom en USB-adapter för parallellport Arkiverad 30 december 2013 på Wayback Machine . - 2013. - 21 februari.
- ↑ USB-differentialen | Dr Dobbs . Datum för åtkomst: 30 december 2013. Arkiverad från originalet 31 december 2013. (obestämd)
- ↑ Linux-kärna: i2c-gpio.c källkod (nedlänk) . Hämtad 15 maj 2011. Arkiverad från originalet 26 juli 2013. (obestämd)
- ↑ Arkiverad kopia (länk ej tillgänglig) . Datum för åtkomst: 30 december 2013. Arkiverad från originalet 30 december 2013. (obestämd)
- ↑ Lär dig JTAG genom att skriva en bitande programmerare . Datum för åtkomst: 30 december 2013. Arkiverad från originalet 30 december 2013. (obestämd)
- ↑ It's Alive: Bit-banking full-speed USB-värd för propellern: scanlime . Datum för åtkomst: 30 december 2013. Arkiverad från originalet 30 december 2013. (obestämd)
- ↑ Arkiverad kopia . Datum för åtkomst: 30 december 2013. Arkiverad från originalet 31 december 2013. (obestämd)
- ↑ Universal Breakout Board - VGA . Datum för åtkomst: 1 januari 2014. Arkiverad från originalet den 17 april 2014. (obestämd)
- ↑ Mike Szczys . Lite smällande VGA från en SD-kortplats (10 maj 2011). Arkiverad från originalet den 2 januari 2014. Hämtad 1 januari 2014.
Länkar