Ik zit al een tijdje me vol te lezen maar er blijven vele vragen over en kom maar niet verder:
Wie bepaalt de UART communicatie snelheid etc, ik heb een FT232RL boardje en wil deze gebruiken met een 8051core met 9600baud of 19200
De PC-protocol (geen ingewikkelde dataprotocol) is vastgebakken in een programma.

Je moet zorgen dat beide kanten dezelfde baudrate gebruiken. Op de PC kan je met de juiste library calls de baudrate aan de PC kant instellen. De USB driver die op de PC doet alsof hij een seriele poort is zorgt er dan voor dat de FT232 zijn baudrate aanpast aan wat jij in je library call opgeeft.

Dat gaat inderdaad automatisch, hoef je veder niet naar om te kijken.

@Wouter; duidelijk aangaande de snelheid. Nu zit ik nog met de library call, ben al even wezen zoeken wat het voor mij betekend maar kan er niets over vinden. Kun je hierover nog iets vertellen?

@Peter; Ik begrijp je antwoord niet helemaal.
Bij een controller moet je wel de UART van parameters voorzien, dat gaat niet automatisch, alleen welke parameters. (snelheid, start/stop en aantal data bits) Dat ben ik nu aan het uitpluizen hoe dat werkt bij USB.

Misschien kun je er nog even op in gaan

p.s. Het USB FT232RL boardje geeft wel al een data-burst op mijn scoop wanneer ik het PC proggie activeer..

Brent

Op 6 augustus 2011 21:42:03 schreef Yellow Walk:
@Wouter; duidelijk aangaande de snelheid. Nu zit ik nog met de library call, ben al even wezen zoeken wat het voor mij betekend maar kan er niets over vinden. Kun je hierover nog iets vertellen?

Dat hangt van de programmeertaal (en de library) af die je gebruikt. het is overigens gewoon de library call die de snelhied van een seriele poort zet. je programma hoeft niet te weten of die seriele poort echt of USB-virtueel is.

Dat hangt er vanaf... Als je tegen VCP aan kletst niet. Als je tegen de DLL aan kletst... nou ja, dan is de situatie duidelijk.

Met de VCP driver krijg je gewoon een COM poort die onder de FTDI driver valt. Die poort kan je gewoon in Putty o.i.d. openen. Daarin geef je een baudrate op, en tadaa, de PC kant is ingesteld.

Als je de DLL gebruikt is het een ander verhaal, en dan moet je even uitzoeken hoe de juiste FTDI poort opzoekt en opent. Maar er zijn ongetwijfeld (ook op internet) anderen die eerder met die DLL hebben gewerkt en daardoor stuk beter/sneller dan mij kunnen uitleggen hoe dat precies gaat in C/C++, C# enz. Volgens mij staat er wel enkele voorbeelden op de ftdi site, als je echt bezig bent met een eigen applicatie.

Op 6 augustus 2011 21:42:03 schreef Yellow Walk:
@Peter; Ik begrijp je antwoord niet helemaal.
Bij een controller moet je wel de UART van parameters voorzien, dat gaat niet automatisch, alleen welke parameters. (snelheid, start/stop en aantal data bits) Dat ben ik nu aan het uitpluizen hoe dat werkt bij USB.

Misschien kun je er nog even op in gaan

p.s. Het USB FT232RL boardje geeft wel al een data-burst op mijn scoop wanneer ik het PC proggie activeer..

Brent

De ftdi chip regelt zijn snelheid automatisch naar welke je heb gekozen in je software, kan snelheid tussen de 300 en 1Megabaud zijn. Of je nu 9600 of 19200 kiest maakt voor de fdti chip niks uit, hoef je niks aan te veranderen die kiest zelf de juiste snelheid.

Maar je moet wel tussen de pc en je microcontroller dezelfde bandbreedte gebruiken, anders snapt de ene de andere niet simpel gezegd. Je moet dus beide instellen, zowel de software op je pc als de micro controller moeten beide op dezelfde snelheid lopen.

Wat actieveer je dan? Je kan gewoon een van de vele serial monitor downloaden en dan kan je al praten met de controller, mits je de serial monitor en microcontroller op dezelfde snelheid laat praten, anders krijg je rotzooi binnen.

@Wouter: ik weet niet wat en hoe het programma dit regelt, maar e.e.a. wordt me wel duidelijker.

Het is een optie welk niet eerder toegepast is in het programma, normaal kun je een LPT poort bit (D0-D7) hoog en laag maken, omdat LPT poorten niet of nauwelijks maar beschikbaar zijn is er een aanpassing gedaan. USB met een simpele bestaand protocol.

Ik kan wel een virtuele compoort instellen en het verstuurd dus ook data wat te zien op de UART uitgang van m'n FT232RL.
Ook hier valt me op dat je moet uitzoeken welke compoort er gebruik wordt voor je FT232RL, wie zoekt zal vinden.

Dat de twee moeten communiceren met dezelfde snelheid is wel bekend, maar de PC kant is vreemd (alleen het protocol is bekend)
Ik mag dus e.e.a. uitzoeken om m'n controller snelheid in te stellen en het liefst 19200 (voorbeeld)
Is dit voor elkaar dan kan ik wel kletsen met de PC.

@EricP; ik weet dus niet waar ik tegen aan moet kletsen met m'n controller. Help van het programma geeft daar geen uitsluitsel over. Maar als ik voldoende info heb verzameld kan ik proberen de ontwerper eens te benaderen. ;-)

@hans1990; Interessant, volgens mij kan ik hier verder mee, putty in het grijs verleden meegewerkt.
Als ik daarmee de snelheid kan instellen van de desbetreffende compoort dan zijn we al verder. Nu zit ik me net te bedenken, kan toch ook in DOS ?
Dat gebruikten we vroeger althans voor de Windows tijdperk.

EDIT:
Op bepaalde plekken krijg je de beste ideeën, ik heb net het protocol even doorgenomen en daar staan de gegevens bij:
9600, no parity, 8data, one stop bit. :P

Ik ben in elke geval heel wat wijzer geworden.

EDIT:
M'n logic analyzer maar even aangesloten en het klopt als een bus.

Iedereen bedankt voor het meedenken, het heeft me even dat duwtje gegeven die ik nodig was en kan me nu bezig gaan houden met de controller software.