Mikrokontroller között kommunikációs gond (UNO-Nano)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 180
Csatlakozott: 2012. január 22. vasárnap, 7:00

Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: aaszabo »

Sziasztok!

Ismét elakadtam. Egy NANO és egy UNO panelt akarok összekötni Rx/Tx kivezetéseiken keresztül direktben. Az UNO-n van egy Ext1 panel és azon egy két soros LCD. A küldő NANO és a vevő UNO teszt program fut, de nem látom, hogy a vevő input-ja bármit is beolvasna.

Lehet egyáltalán használni a panelek Rx/Tx kivezetéseit ilyen direkt összekötésre, vagy azok a letöltésre vannak lefoglalva? A NANO panel Rx (PD0) és Tx (PD1) kivezetéseit kötöttem az UNO panel Tx (PD1) és Rx (PD0) kivezetéseihez. Vagyis keresztbe Tx-Rx és Rx-Tx módon. Mindkét panel külső tápról megy. Az USB csatlakozóikba nincs bedugva semmi.
A vevő oldali UNO program nem jut túl az INPUT soron.
Esetleg van valami, amit figyelmen kívül hagytam?

Adó oldali kód NANO-val:

Kód: Egész kijelölése

'NANO
'{FILE} {EEPROM} COM3 328
$regfile = "m328def.dat"      'target chip on NANO
$crystal = 16000000           'base frequency for chip
$baud = 9600                  '4800 is for Arduino/UNO panel as a workaround for setting the 9600baud speed
$hwstack = 90                 
$swstack = 90                 
$framesize = 90               

Led Alias Portb.5             'NANO, UNO
Config Led = Output

Dim Wtime As Integer
Wtime = 200

Do
   Set Led
   Wait 1
   Reset Led

   Print "ABC"
   Wait 2
   Print "CBA"

   Set Led
   Waitms Wtime
   Reset Led
   Waitms Wtime
   Set Led
   Waitms Wtime
   Reset Led
   Waitms Wtime

Loop
End

Vevő oldali kód UNO+Ext1-vel:

Kód: Egész kijelölése

'UNO
'{FILE} {EEPROM} COM3 328UNO
$regfile = "m328pdef.dat"     'target chip on Arduino/UNO
$crystal = 16000000           'base frequency for chip
$baud = 9600                  'For Arduino/UNO panel 
$hwstack = 90                 
$swstack = 90                 
$framesize = 90               

'Serial data read config
Config Serialin = Buffered , Size = 30

Dim Msgstr As String * 10

Dim Msgarray(11) As Byte At Msgstr Overlay
Msgarray(9) = 13              'CR - Carriage Return
Msgarray(10) = 10              'LF - Line Feed
Msgarray(11) = 0              '0 - String end

Led Alias Portb.5
Config Led = Output

'Config LCD for Ext1 panel
Config Lcd = 16 * 2           'configure lcd screen
Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portb.0 , Db7 = Portb.1 , E = Portd.5 , Rs = Portd.4

Initlcd
Cls                           'clear the LCD display

Lcd "Hello"
Do
      Input Msgarray(1) ; 4
      Cls
      Lcd Msgstr
      Toggle Portb.5
Loop
End
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: RS232 két mikrokontroller között

Hozzászólás Szerző: Robert »

GND-k összekötve?
Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 180
Csatlakozott: 2012. január 22. vasárnap, 7:00

Re: Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: aaszabo »

Igen, GND is össze van kötve.
Ki is mértem, egyik vezeték sem szakadt.
Ennek így működnie kellene, igaz? Vagy bezavar az, hogy ugyan ezt az Rx, Tx vonalat használja a panel a letöltéshez is?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: Robert »

Sima print - input párral próbálkozz...
A karakterlánc elemei nem hivatkozhatóak array()-ként!

Ha belehallgatsz a kommunikációba, mi történik (hisz ott a 2 USB illesztés).
Azok nem kavarnak úgyse be...

Az adó oldalon print "hahó" túloldalt: input a; LCD a
Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 180
Csatlakozott: 2012. január 22. vasárnap, 7:00

Re: Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: aaszabo »

A print és input sorokat használom, ahogy írtad, de nem hoz változást.

Rádugtam az USB-t az adó NANO panelra. Semmi nem látszott a soros porton. Lehúztam az összekötést a Tx lábról. Azonnal megjelent a Terminálon az amit a program szerint küldenie kell: felváltva "ABC", "CBA" külön sorokban.
Sajnos nincs szkópom, hogy lássam a jeleket, de ez gyanús:
Ha az adó NANO panelt nézem magába (lehúzom az UNO-val összekötő Tx, Rx és GND osszekötő vezetékeket) és a Tx vonalra raktam egy LED-et 820R-vel, akkor az nem villog, hanem halványan folyamatosan világít. Ennek villognia kellene a PRINT utasításkor nem?

Az eredeti összekötés direkt RS232-vel így néz ki.
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: Robert »

Ha az egyik oldalt csak print van, a masikon csak input, akkor a vissziranyu kapcsolatra nincs szukseg.
Fontos!
Az echo off-t add ki a vevo oldalon! nem kell hogy az ado fele visszakuldje!
Ha a nano-n a Tx-en a LED vilagit, akkor tedd at a Rx-re (neha a jeloleseket megcserelik, hogy a processzor felől vagy a soros küldő eszköz felől kell nézni...)
Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 180
Csatlakozott: 2012. január 22. vasárnap, 7:00

Re: Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: aaszabo »

Működik!
Köszönöm az ötleteket és a segítséget! Közben megint tanultam egy halom dolgot.
Végül is működik a sima keresztbekötés, ahogy eredetileg is képzeltem.

Valószínű túlfoglaltam NANO esetén valamelyik területet. Utána nézek majd pontosan, hogy melyik mekkora lehet.
Amikor az előző projektemben kinőttem az UNO-t (328) onnan jöttem rá erre, hogy fordításkor kezdett 90% közelébe menni a Flash kihasználtság és érthetetlen hibákat produkált a program. Ezek a Frame területen a változó felülírásokból eredtek. MEGA-ra való váltás után kezdtem használni ezeket az értékeket. Most meg csak másoltam a sorokat és nem gondoltam a helyes beállításra.

Szóval itt ezt kellet:
$hwstack = 90
$swstack = 90
$framesize = 90

Erre cserélni:
$hwstack = 32
$swstack = 10
$framesize = 40

Viszont továbbra sem villog, hanem állandó jelleggel világít a Tx vonalra kötött LED. Ezt továbbra sem értem. Ha ráteszem a LED-et a kommunikáció a két NANO között nem szakad meg. Működik folyamatosan.
Direktbe kötöm rá. Az ellenállás értéke 820R. Ha bármelyik portra kötöm és külön működtetem, akkor villog a LED. TX-en nem villog, hanem folyamatosan világít.
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: Robert »

stcheck utasítást nézd meg.

Tanulni a memóriakezelésről:
http://avr.tavir.hu/modules.php?name=Co ... age&pid=50
Avatar
aaszabo
Tranzisztorgyógyász
Hozzászólások: 180
Csatlakozott: 2012. január 22. vasárnap, 7:00

Re: Mikrokontroller között kommunikációs gond (UNO-Nano)

Hozzászólás Szerző: aaszabo »

Köszönöm, ez anno is sokat segített az overflow-k elkapásában és a szükséges méret beállításában.
Válasz küldése