TTL-USB -muunnin

Olen tehnyt sormiharjoituksia oheisella gsm-modeemilla, laite kytkettynä tietokoneeseen USB-väylän kautta.

finch.am/projects/arduinogsm/

Laitteen saisi yksinkertaisella tinaamisella kytkettyä TTL-lähtöön juottamalla Tx ja Rx -piuhat piirin PL2303 nastoihin 1 ja 5. MUTTA. Pinnit ovat niin pieniä, että epäilen hieman juottamista noin pieniin täppiin. Minulla kun on käytettävissä vain normaali kolvi ja isot kädet.

Toinen vaihtoehto lienee käyttää TTL-USB -adapteria. Vinkkejä adapteriksi? Joko ostettuna tai tehtynä.

Hyvin se menee! Normaalilla kolvilla sitä kaiken saa juotettua, joten eikun harjoittelemaan :wink:

Ite olen tässä tapellu tuon samaisen värkin kanssa kohta jo parikuukautta mutta en vaan saa yhteyttä arduinolla siihen. :frowning:
Ton PL2303 piirin kanssa toimii tietokoneella loistavasti mutta kun yrittää käyttää ton ohjeen mukaisesti arduinolla niin ei toimikkaan millään… :frowning:

Meillä on sitten sama ongelma. Otin yhteyttä artikkelin laatijaankin (Michael joku) ja hän jopa vastasi. Ensimmäinen asia oli artikkelin ensimmäinen lause: Rx - ja Tx -nastat ovat artikkelin kytkentäkaaviossa väärinpäin! Vaihdoin nastat päikseen, mutta ei toimi ei.

Suunnitelma B on nyt se, että yritän laittaa väliin RS232-USB -muuntimen. Saan tällä viikolla muunninkaapelin Elfalta, ja pääsen kokeilemaan. Idea on siis syöttää muunninta Arduinolla ja gsm-mokkulaa siinä olevalla USB liittimellä. Kömpelöä, mutta eipähän tarvitse availla gsm-mokkulaa. Minä menin repimään siitä PL2303-piirin irti, ja nyt minulla on käytännössä käyttökelvoton mokkula… no toinen on jo tulossa. Elfa myy myös RS-USB -muunnoksen tekevää adapteria, joka oli loppu Suomen varastosta (hinta noin 12e ilman alvia).

Kerron sitten miten kävi, kun saan tilaamani kamat käsiini.

Ton PL2303 piiri juotettuna levyyn data kulkee kyllä modeemilta arduinolle ja siis 5-pinni on todellakin se lähtevä pinni eikä 1-pinni tuossa modeemissa mitä tolla sivulla oleva kuva väittää.

Joo, näin on.

Katson “oman käteni” loppuun sen RS-USB -muuntimen kanssa. Ans kattoo miten käy :slight_smile:

Jos käy huonosti, niin voin ainakin myydä pari toimivaa mokkulaa huuto.netissä…

Sinä tarviat siihen arduinon ja ton mokkulan väliin USB Host Shieldin jos haluut suoraan käyttää sitä USB:n kautta…
circuitsathome.com/mcu/inter … gprs-modem
Mä sain tässä jo tuhottua yhen tollasen Host shieldin…tai siis sen shieldin piirilevyn oikeastaan…lähti levyltä USB-liittimen pädit vittuun. :blush:

Tässähän nyt ei ole yhtään järkeä. UART → USB → UART.

Olen vähän ymmälläni että teillä ei ole tuo homma lähtenyt toimimaan. ankastin kanssa olen yksityisviestejä vaihtanut tähän DX-modeemihommaan liittyen ja luulen että ongelmana on jännitetasot. En ole missään vaiheessa sanonut että olisin saanut tuota toimimaan nimenomaan Arduinon kanssa (en sellaista omista, tosin nyt kun voitin Ruuvipenkin lukija-artikkelikilpailun niin sellaisen saan), vaan olen käyttänyt sitä PC:n kanssa erillisen UART-USB -sillan kanssa (tarkemmin sanottuna SparkFunin protokortti jossa on FT232RL-siltapiiri samassa). Huomatkaa että moduulille pitää syöttää 5V käyttöjännite mutta UART-puoli toimii 3,3 voltilla. Tämä selvennyksenä, tosin saattaa olla jo tiedossa.

Itselläni tulee siis käyttöjännite USB-väylästä (5V) ja sen jälkeen alligaattoriklipsuilla vedän TX- ja RX-linjat SparkFun Protoboardiin. Homma toimii. Äsken juuri koitin varmistaakseni ja samantien lähti tulille… Tosin nyt ei ollut SIM-korttia modeemissa niin vastaukset oli suurimmaksi osaksi erroria. Ohessa liitteenä pari kuvaa jotka toivottavasti selventävät…

dxgsm.jpg

Lopuilta sain itsekkin toimimaan…ilmeisesti oli mulla syynä jännitetasot.
Tämä värkki vaatii tarkalleen ottaen sen 3.3v ykköseksi…ei riitä ~3.2v
Kokeilin ekaksi nimittäin ihan perinteisella vastus jaolla toteuttaa tuon ettei tarviis 3.3v regua tuota varten mutta en vaan saanu toimimaan millään.
Ja sitten minä en kans ymmärrä että sitä että miten diodi voi tässä oikeen toimia estosuuntasena…

3.3volttiin kytketty ylösvetovastus pitää laitteen 1 tilassa kun diodin toisella puolen on 5 voltin 1 tila.
5 voltin puolen 0 tila pudottaa 3.3v 0 tilaksi 0.3 -0.6 volttia (ts. siihen mitä se diodin kynnysjännite on).

0 tilan toteutumiseksi jännite tulee olla esim. 0 - 1 volttia ( 0 - 1 vetäisty hatusta, oikeat arvot löytyy käytetyn piirin datalehdykästä) tällöin diodin kynnysjännitteen avulla muodostettu jännite riittää pitämään portin 0 tilassa.

jkaart, laitoitko regulaattorista (3.3V) jännitteen siihen piirroksen pinniin, jonka jälkeen on 10k vastus?

Juu, kyllä!

Thangyou vastauksesta! Eli 3.3V regulta. Oliko se tosiaan noin kriittinen toi 3.3V? Ymmärsin että oli, vaan enpä pääse testaamaan ennen maanantaita, kun saan regun…

Niin vielä jkaart, eli pinnit Rx ja Dx kytketään sitten ristiin, eikä niinkuin kuvassa?

Niin siis noilta Arduinoilta löytyy suoraan tuo 3.3v regu ja sen ulostulo löytyy reset nastan ja 5v välistä.
Ja siis Rx ja Tx kytketään ristiin mitä tuolta sivultan löytyvä kuva sanoo…

Vai mihinkä siä oot tuota yrittämässä kytkee?

Moi,

Sain vihdoin viimein toimimaan. Olipa tuskallista. Joko kytkentä oli liian vaativa (diodi ja vastus), tai sitten juottaminen moduulin mikroskooppiseen karvaan.

AT-komennot toimivat, mutta viestiä lähettäessä en saa ctrl-z -merkkiä lähetettyä. Ascii 26. Olen käytellyt toistaiseksi vain alkup. rakentelulinkissä olevaa newserial… ohjelmapätkää.

Mitenkään mistään mitään tietämättä, oletko testannut muut kontrollimerkit? Jos laite on komentotilassa, ei sen pitäisikään hyväksyä controlleja komentoriviltä. Ehkä jollain escapoinnilla voi lähettää Osaisiko piirin datasheetti kertoa mystiikasta AT komentojen parsimisessa?

Joskus tullut vastaan noissa yhteyksissä lauseke if( merkki & 0x60 && !(merkki & 0x80)) jolla efektiivisesti tutkitaan tekstin olevan 7-bit printattavaa ASCIIta. Estetään törkeyksien tulo ruudulle.

Tuota ehdottamaasi merkkiä en ole kokeillut. Luulen, että joudun ohjelmoimaan “RS-käyttöliittymän” uusiksi, mutta se on ihan jees. Ohjelmointi on kuitenkin tutumpaa kuin mikroskooppiin tinailu.

Hyperterminaalilla olen kokeillut, siellä CTRL-Z toimii juuri niin kuin pitääkin - eli laite haluaa tämän Ascii 26:n. Löytyisikö jkaartilta tai Entropialta vinkkiä tähän?

Ei nyt kyllä löydy tähän vinkkiä…mutta syy taitaa olla tuossa Arduinon puutteellisessa Serial Monitorissa jos kerta Hyperterminalilla toimii?!
Ite olen käyttäny sites.google.com/site/terminalbpp/ -ohjelmaa tuon Arduinon oman systeemin tilalla.