4 + 1 Soros port kezelése, avagy 4 Soros port összefésülése?

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

4 + 1 Soros port kezelése, avagy 4 Soros port összefésülése?

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

Ü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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

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...
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

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

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
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

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

Huh. Még egy lehet buta kérdés:

Ma van akkor ha Pl.: a BASCOM-ban nincs benne a ATMega640/1280 .dat állomány? Be tudom valahonnan szerezni?

Köszönettel: Sanci
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Melyik Bascom?
Mintha a 1.11.9.1-ben már benne lenne... de meg kell lesnem....
A régebbieket nem tudom hírtelen. De azokban mintha nem lenne, mert elég új IC-k...
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

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

Jelenleg Bascom 1.11.8.3 használom, bár 1.11.8.7 is van, de abban sincs benne :(
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

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

Közben letöltöttem az Uj Bascom demó verziót, és abban megleltem.
Bízva abban hogy kezelni fogja az én Bascom-om egyszerűen bemásoltam az uj típusokat a megfelelő könyvtárba.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Hááááát.....
A 1.11.9.1-ben elég sokminden változott... a regiszterneveket remélem jól kezeli a régi, és akkor nyert ügyed van:).
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

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

Sajnos a projekt elmarad.
Lecserélték az összes eszközt fejlesztés miatt, így a szóban forgó kütyüre már nincs szükség. :(
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Ilyenkor kell előadni, hogy de a kütyü kész van:)...
Illetve mégis milyen fontos és így csak bele lehet folyni az új megoldásba (az elejétől!)...
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

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

Igen, szoktam úgy csinálni :wink: (hisz egy kis munka azért már van benne.)
Sajnos ez most nem járható út. 8)
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: 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. :lol:
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 :D (No meg egy picit kisérletezgettem 8) )

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?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Hülye tipp (nem próbáltam még):

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
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.

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
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...
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

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

Nagyon köszönöm!
megpróbálom :)
Hooligan01

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

De a beállítások miért stringben vannak? Nem jó byte alapon?

Ill. ez így elég homályos :D
Válasz küldése