4 + 1 Soros port kezelése, avagy 4 Soros port összefésülése?
4 + 1 Soros port kezelése, avagy 4 Soros port összefésülése?
Üdv néktek!
Egy kis segítségre lenne szükségem a következő témában:
Szükségem van 5 db soros port használatára.
4 db soros port egymástól eltérő átviteli sebességgel dolgozik.
Beérkezik egy 8 bit hosszú adat Pl.: az 1 portba.
Ott ha beérkezett az adat, le kell nyugtáznom egy Pl.: x karakterrel hogy megjött. Aztán várok a következő adatra, azt is lenyugtázom, s így tovább...
ez vonatkozik a 4 db. soros port-ra.
Viszont mindezeket az adatokat amik beérkeztek ki kell kűldenem az 5. Sorors port-on.
Vagyis a négy Soros porton bejövő adatokat, ki kell kűldenem az 5. Soros porton. Esetleg ott is visszanyugtázom. Ez már csak szoftv. megoldás kérdése. (Esetleg SD kártyára is mentené)
Attól hogy eltérő soros porton két egyforma adatcsomag érkezik, nem kell tartani, mert az nem fordulhat elő. Így válogatni sem kell.
Az adatcsomagok 8 Bit hosszú és Kb. 5-10 s-ént érkezik 1-1 adat.
Az idő nem kritikus.
Én arra gondoltam hogy az 4 kontroller az 5.-el egymás között RS485 kommunikálhatna? (egy panelre szeretném az egészet ültetni.)
Valami 5-let esetleg a megoldásra?
(Esetleg I2cBus-on, de ahhoz elvileg meg kellene vásárolnom a LIB-et.)
Üdv.: Sanci
Egy kis segítségre lenne szükségem a következő témában:
Szükségem van 5 db soros port használatára.
4 db soros port egymástól eltérő átviteli sebességgel dolgozik.
Beérkezik egy 8 bit hosszú adat Pl.: az 1 portba.
Ott ha beérkezett az adat, le kell nyugtáznom egy Pl.: x karakterrel hogy megjött. Aztán várok a következő adatra, azt is lenyugtázom, s így tovább...
ez vonatkozik a 4 db. soros port-ra.
Viszont mindezeket az adatokat amik beérkeztek ki kell kűldenem az 5. Sorors port-on.
Vagyis a négy Soros porton bejövő adatokat, ki kell kűldenem az 5. Soros porton. Esetleg ott is visszanyugtázom. Ez már csak szoftv. megoldás kérdése. (Esetleg SD kártyára is mentené)
Attól hogy eltérő soros porton két egyforma adatcsomag érkezik, nem kell tartani, mert az nem fordulhat elő. Így válogatni sem kell.
Az adatcsomagok 8 Bit hosszú és Kb. 5-10 s-ént érkezik 1-1 adat.
Az idő nem kritikus.
Én arra gondoltam hogy az 4 kontroller az 5.-el egymás között RS485 kommunikálhatna? (egy panelre szeretném az egészet ültetni.)
Valami 5-let esetleg a megoldásra?
(Esetleg I2cBus-on, de ahhoz elvileg meg kellene vásárolnom a LIB-et.)
Üdv.: Sanci
Csak HW sorosport jöhet szóba. Az RS485 az biza szintén sorosport:). Összekötésre ~230kBps lehetséges.
A sorosportokat tessék bufferelni, különben adatvesztés.
I2C sem rossz örtlet (így elég pl. egy M8-as IC minden végpontra
Árban, időben viszont lehet hogy én már ATMega640/1280-ban gondolkodnék. Ebben 4 HW sorosport van. Esetleg a 2 HW sorosportos 164/324/162/644 (DIP) vagy 128/64(TQFP).
Muszály a HW+bufferes sorosport, különben adatvesztés.
Az egyes mester/client-ek beszélgethetnek I2C vagy SPI-n.
SDre mentés esetén Min ATMEGA64/644 kell. (memóriaigényes)
Esetleg serial port multiplexer, de az nem szereti az eltérő sebességeket.
Az I2C lib megvétele nem összeg (~3000 Ft). És szabadon felhasználhatod utána... Viszont a SW I2C nem jó, mert nagyon terhel. Így a M48/88/8/168 kell legalább...
A sorosportokat tessék bufferelni, különben adatvesztés.
I2C sem rossz örtlet (így elég pl. egy M8-as IC minden végpontra
Árban, időben viszont lehet hogy én már ATMega640/1280-ban gondolkodnék. Ebben 4 HW sorosport van. Esetleg a 2 HW sorosportos 164/324/162/644 (DIP) vagy 128/64(TQFP).
Muszály a HW+bufferes sorosport, különben adatvesztés.
Az egyes mester/client-ek beszélgethetnek I2C vagy SPI-n.
SDre mentés esetén Min ATMEGA64/644 kell. (memóriaigényes)
Esetleg serial port multiplexer, de az nem szereti az eltérő sebességeket.
Az I2C lib megvétele nem összeg (~3000 Ft). És szabadon felhasználhatod utána... Viszont a SW I2C nem jó, mert nagyon terhel. Így a M48/88/8/168 kell legalább...
Szia Róbert!
Nagyon köszönöm a gyors segítséget!
Ha jól értem akkor ésszerűbb lenne Pl.: egy ATmega640
Ezzel lekezelhetném a 4 Db. Soros Portot hardveresen.
Majd ehhez Pl.: SPI-on csatlakozhatna egy ATMEGA64(644)
Ami viszont már a PC felé kommunikál, illetve Mehetne az SD kártya is később..., esetleg LCD..
az SPI -t még nem programoztam, de gondolom BASCOM alól nem lesz különösebb akadálya.
Ebben a felállásban véleményed szerint működhet a dolog?
ha igen, elészítem a nyákot, terveket és elérhetővé teszem mindenki számára!
Üdvözlettel: Sanci
Nagyon köszönöm a gyors segítséget!
Ha jól értem akkor ésszerűbb lenne Pl.: egy ATmega640
Ezzel lekezelhetném a 4 Db. Soros Portot hardveresen.
Majd ehhez Pl.: SPI-on csatlakozhatna egy ATMEGA64(644)
Ami viszont már a PC felé kommunikál, illetve Mehetne az SD kártya is később..., esetleg LCD..
az SPI -t még nem programoztam, de gondolom BASCOM alól nem lesz különösebb akadálya.
Ebben a felállásban véleményed szerint működhet a dolog?
ha igen, elészítem a nyákot, terveket és elérhetővé teszem mindenki számára!
Üdvözlettel: Sanci
Alakul a project.. változtak az igények. 
Kicsit megcsonkítva, mert végűl nem kell egyszerre kezelni a 4 soros port i kapcsolatot, és ráadásúl az AVR kezdeményezi.
Így egy Mega32 lett az áldozat és CD4052 multiplexer ic-t használom az adott soros port kiválasztásához. Grafikus LCD, Infra Adó-Vevő, Encoder kapcsoló, 5 gomb,4x MAX232
"kezdő" létemre aránylag minden szépen műkszik.
Köszönet Robert-nek és a fórum minden tagjának!
Hisz sok kérdést már kiveséztetek a fórumon, így én kerestem és találtam is választ
(No meg egy picit kisérletezgettem
)
Amire nem találtam választ:
Szeretném a belső epromba elmenteni a beállításokat.
Viszont string a forrás (van belőlle egy jópár darab..) -> Convert be -> EEPROM majd onnan ->convert ki -> string
Amit nem tudok, hogy a Convert be és convert ki -t hogyan tudnám megoldani korrekten.
1-1 karakterrel meg tudtam valósítani, de többel sajnos nem.
Tudna valaki ebben segíteni esetleg?
Kicsit megcsonkítva, mert végűl nem kell egyszerre kezelni a 4 soros port i kapcsolatot, és ráadásúl az AVR kezdeményezi.
Így egy Mega32 lett az áldozat és CD4052 multiplexer ic-t használom az adott soros port kiválasztásához. Grafikus LCD, Infra Adó-Vevő, Encoder kapcsoló, 5 gomb,4x MAX232
"kezdő" létemre aránylag minden szépen műkszik.
Köszönet Robert-nek és a fórum minden tagjának!
Hisz sok kérdést már kiveséztetek a fórumon, így én kerestem és találtam is választ
Amire nem találtam választ:
Szeretném a belső epromba elmenteni a beállításokat.
Viszont string a forrás (van belőlle egy jópár darab..) -> Convert be -> EEPROM majd onnan ->convert ki -> string
Amit nem tudok, hogy a Convert be és convert ki -t hogyan tudnám megoldani korrekten.
1-1 karakterrel meg tudtam valósítani, de többel sajnos nem.
Tudna valaki ebben segíteni esetleg?
Hülye tipp (nem próbáltam még):
illetve:
ERAM variables only can be assigned to SRAM variables, and ERAM variables can be assigned to SRAM variables. You can not use an ERAM variable as you would use a normal variable.
Illetve a Bascom 1.11.9.0-es sample alatt a EM4095 Rf kártyaolvasó is EEPROMot így használja:)
Viszont mindenütt csak Byte illetve Byte alapú tömbbel voltaka minták...
Kód: Egész kijelölése
$regfile = "m48def.dat"
$crystal = 4000000
$baud = 19200
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
$default Xram
Dim A As Byte , B As Byte , C As Byte
'a,b and c will be stored into XRAM
$default Sram
Dim D As Byte
'D will be stored in internal memory, SRAM
$default ERam
Dim E As Byte
'E will be stored in internal EEPROM memory
ERAM variables only can be assigned to SRAM variables, and ERAM variables can be assigned to SRAM variables. You can not use an ERAM variable as you would use a normal variable.
Kód: Egész kijelölése
Dim b as byte, bx as ERAM byte
B= 1
Bx=b ' write to EEPROM
B=bx ' read from EEPROM
Viszont mindenütt csak Byte illetve Byte alapú tömbbel voltaka minták...
-
Hooligan01