TinyMega Home

CH340 USB seriële poort.

Een CH340G is een converter chip die een USB verbinding omzet naar een seriële poort interface. De chip wordt vaak gebruikt om een microcontroller aan te sluiten op een USB connector van een PC.

Zoals alle USB devices heeft ook deze chip een USB-device-driver nodig om te kunnen werken. Maar laten we eerst maar eens kijken wat er gebeurt als we de module aansluiten...

Deze test was gedaan met een "Baite BTE13-009". Dat is een klein printje met een type-A USB connector aan de ene kant, en power en data pinnen aan de andere kant. De power pinnen (Gnd en Vcc) kunnen dienen als voeding voor uw project. Dat moet werken zolang uw project niet meer dan 120 mA aan stroom trekt. Er is ook voorzien in een schakelaar om te kiezen tussen 3.3 Volt en 5 Volt.

PinBeschrijving Baite BTE13-009.
DTRHandshake lijn. Kan vanuit de PC bestuurd worden. Hoog (5Volt) als DTR uit staat. Deze lijn wordt in combinatie met een Arduino gebruikt om de arduino te resetten en daarmee een download sessie te starten.
RxDData ingang. Externe data wordt via deze pin naar de PC verstuurd. Heeft een pullup weerstand naar +5 Volt.
TxDData uitgang. Data van de PC wordt via deze pin naar buiten verzonden. Push-Pull uitgang.
VC Voeding voor de target. 5 Volt of 3.3 Volt afhankelijk van de stand van de schuifschakelaar. Spanning wordt uitgeschakeld tijdens indrukken van de drukknop.
CTSHandshake ingang. Kan vanuit de microprocessor bestuurd worden. Heeft pullup weerstand naar +5 Volt.
GNDMassa aansluiting. Is direkt verbonden met de massa van de PC.

De data pinnen hebben TTL niveau. Dus die pinnen bewegen tussen massa en Vcc. Dus die kunnen direkt gekoppeld worden aan de I/O pinnen van een microcontroller. Level converters zijn dus niet nodig.

Met de schuifschakelaar kun je kiezen tussen 3.3 en 5 Volt op de voedings pin VC. Maar je moet er wel rekening mee houden dat de datalijnen gewoon op 5 Volt blijven staan. Dus de module is eigenlijk alleen bruikbaar voor targets op 3.3 Volt als die 5-Volt tolerant zijn. De Arduino valt niet in die categorie, maar kan wel op 5-Volt worden aangesloten. Dus zolang de schakelaar op 5V staat is er niets aan de hand.

De CH340 aansluiten op de PC USB

Deze test is uitgevoerd op mijn laptop, met "Windows 7 64 bit". De module gaat direkt in een USB poort, kabels zijn nog niet nodig, en er is ook niets op de module aangesloten.

CH340 Module : De LED gaat aan.

Windows reporteert:
- Installing new hardware.

Een kleine 10 seconden later:
-Windows reporteert: New Serial port : COM30

Dus nu is er een nieuwe poort (COM30) beschikbaar. Windows kiest een poortnummer afhankelijk van wat er eerder al op uw PC is aangesloten geweest. Dus het kan goed zijn dat u een andere poortnummer krijgt toegewezen.

DeviceManager opstarten

De windows device manager (apparaatbeheer) is het programma waarmee u kunt zien welke apparaten beschikbaar zijn.

Als je nu loskoppelt dan zul je zien dat de CH340 poort weer verdwijnt uit de device-list in de device manager. Opnieuw inpluggen en het apparaat komt weer terug. Mooi!

-- Let Op --> Als je de module nu aansluit op een andere USB poort, of via aan USB hub dan zul je zien dat Windows weer opnieuw device drivers gaat installeren en dat je een nieuw poort nummer krijgt toegewezen. Dus het poortnummer is afhankelijk van welke USB aansluiting u gebruikt. Dat betekent dat u meerdere modules gelijktijdig kunt aansluiten, maar het betekent ook dat u eventuele scripts moet aanpassen aan de poort die u gebruikt. Als je bijvoorbeeld een script gebruikt om uw arduino via de CH340 te programmeren, dat werkt het script alleen zolang u steeds hetzelfde poortnummer gebruikt.

Eens kijken welke drivers zijn geinstalleerd.

En daar zijn de driver details.

Instellen poort configuratie parameters

De communikatie parameters moeten goed worden ingesteld om te kunnen communiceren. De microcontroller communiceert met bepaalde instellingen op zijn interface pinnen. De instellingen binnen de microcontroller moeten overeenkomen met de instellingen van de CH340 module. De microprocessor wordt ingesteld door de firmware in de processor. De CH340 module wordt ingesteld vanuit de PC.

Kommunicatie parameters voor de CH340 module kunt u instellen via de device manager. Dit zijn echter defaults die meestal door uw communicatie programma worden genegeerd, want de meeste communikatie programma's hebben zo hun eigen methode om de poort in te stellen. Maar doorgaans is het toch een goed idee om de default waarden in te stellen.

Zoals we hebben gezien heeft windows automatisch een poortnummer toegekend. Maar als je wilt kun je het poortnummer aanpassen. Ook dat gaat met de device manager: Zie "Port settings"--> "Advanced"

En werkt de module nu?

Om dat te testen heb je een terminal programma nodig. Er zijn veel van zulke programma's beschikbaar. Een goede keuze is "TeraTerm". Another good program is "TeraTerm". En een andere is Putty. die we ook gebruiken voor de Raspberry Pi.

Instellen van Putty

Als je Putty opent dan krijg je het volgende scherm:

Putty sessie

Zo een Putty data entry window ziet er zo uit:

Klik in het window en u kunt beginnen met tekst in te voeren. Alles wat u intoetst wordt via de USB als seriële data naar de microcontroller verstuurd. En alle data van de microcontroller komt weer tevoorschijn in het putty data window. Dus er gebeurt niets zolang er geen microprocessor is gekoppeld. Als je goed kijkt kun je wel een klein lichtje zien bij elke toets die je aanslaat. Dat lichtje geeft aan dat er weer iets is verstuurd.

Voor een eerste test kunt u de TxD en de RxD pinnen van de CH340 module met elkaar doorverbinden. Dat gaat het gemakkelijkste via een breadboard en een stel male-female breadboard draden. De data die je intoetst gaat via de TxD pin naar buiten, en diezelfde data komt dan weer via de RxD pin terug. Dus daarmee komt alles wat je intoetst ook op het scherm.