Hallo allemaal,
het leek mij leuk om te gaan experimenteren met een USB naar serieel converter, en ben uitgekomen bij de FT232RL. Het werkt niet zoals het hoort; dus ik zal even het verloop van mijn experimentjes typen:
Ik heb het schema uit de datasheet nagebouwd voor self-powered configuration. Ook heb ik met MProg het EEPROM ge-update zodat deze is ingesteld op self-powered.
Toen kwam de test: ik sloot de Tx aan op zijn eigen Rx, en probeerde met Terminal verbinding te maken. Dat werkte; wat ik intypte in het Transmit veld kwam vrijwel direct ook te staan in het Receive veld. Hieruit trek ik dus de conclusie dat mijn schakeling goed werkt.
Mijn doel was om deze FT232RL te verbinden met een PIC. Dus ik heb een programma'tje geschreven voor de PIC dat precies terugstuurt wat hij ontvangt op z'n Rx/Tx pinnen. Voordat ik dit echter uitprobeer op de FT232RL, heb ik het eerst met een MAX233 getest; en dat werkte. Wat ik in het Transmit veld intyp -> max233 -> PIC -> max233 -> Receive.
Nu komt mijn probleem: vervang ik de max233 door de FT232RL, en ik krijg iets anders terug. Gelukkig wel consequent hetzelfde (dus geen last van ruis), maar niet het goede. Voor ieder character wat ik intyp komen er twee terug. Ik zal een aantal voorbeelden geven, misschien dat jullie een verband en mogelijke oplossing zien;
de hoofdletter A (in hex: 0x41) wordt gereturned als zijnde 0xC1 en 0xFF.
de hoofdletter B wordt gereturned als zijnde 0xC2 en 0xFF.
de hoofdletter C wordt gereturned als zijnde 0xC3 en 0xFF.
etc.
Ik snap niet waarom er twee berichten terug komen, en hoe ik dit kan verhelpen. Heeft iemand enig idee?
Ook goede baudrate voor de FTDI chip ingesteld. Dus niet alleen in hypertherminal en in de pic, maar ook in de FTDI chip.
Ergens in windows apparatenbeheer zal even zoeken
Edit:
Hier staat het in http://www.ftdichip.com/Documents/AppNotes/AN232B-05_BaudRates.pdf
[Bericht gewijzigd door xantus op (49%)]
Oh nu snap ik wat je bedoelt; de instellingen in apparaatbeheer. Die staan standaard op 9600 baud - en dat is precies de snelheid die ik gebruik.
Dus het zit hem ergens anders in. Iemand?
check ook eens het aantal bits en de parity settings. Lijkt daar ergens in te zitten. Vergeet je het 0xff byte en maskeer je het msb bit dan krijg je precies wat je verzonden hebt.
High-Voltage
Het probleem bij een maatschappelijke samenleving is dat je geen "normale" uitzondering kan zijn...
Heb ook eens problemen gehad met zo een RS232-USB converter. Ik heb toen tussen de PIC en de converter een MAX-232 geplaatst. Toen was het probleem opgelost. Waarschijnlijk gaat dit bij jou niet werken, ik kreeg namelijk constant andere tekens doorgestuurd en met een FT232 deed ie het wél zonder MAX232.
Check eens wat je PIC ontvangt. Laat je PIC eens iets uitsturen en kijk wat je PC'tje ontvangt. Zo kan je controleren of de communicatie in beide richtingen mis gaat of maar in één richting...
@ driessens nl: kun je uitleggen wat je daarmee bedoelt? Heb jij hier een verklaring voor? Ik snap je post niet helemaal. (en beide parity: none, 1 stopbit, 9600 baud)
ah idd...
0x41 = 0100.0001
0xC1 = 1100.0001
goed opgemerkt..! Maar waar zou het aan kunnen liggen / hoe lossen we het op?!
[Bericht gewijzigd door Dark_Knight op (29%)]