Sziasztok,
Milyen módon érdemes 2 (mondjuk ATmega8 és ATTiny2313) AVR Chip között kommunikálni, ha az UART-ot a PC felé használom? Az SPI-t pedig a Chipek felprogramozására. Esetleg I2C? Hogyan kell Slave-ként beállitani mondjuk az ATTimy2313-at?
Kerestem a fórum témákban ilyet, de nem találtam. Kérem a segítségeteket.
Üdv: Tamás
Kommunikáció AVR-ek között
I2Cslave - fizetős, 20 EUR.
SPI miért nem jó? A programozás nem kavar nagyon be, hisz ekkor úgyis resetben a chip. A trükk az, hogy ellenálláson át kötöd be a 2 chipet. Így a programozó a chip lábán van közvetlenül. Csak a chip van RESET állapotban, amelyiket programozod. Az ellenállás miatt nem tus a SPI kommunikáció belebeszélni. SPI Master és Slave a Bascom mintá közt megtalálható.
I2C-re (slave) az Arduino SW alapban fel van készítve... Esetleg a slave programot abban megírni?
Illetve 1-Wire s szóbajöhet... Master: adott. Slave: az alkalmazási minták közt itt az oldalon...
SPI miért nem jó? A programozás nem kavar nagyon be, hisz ekkor úgyis resetben a chip. A trükk az, hogy ellenálláson át kötöd be a 2 chipet. Így a programozó a chip lábán van közvetlenül. Csak a chip van RESET állapotban, amelyiket programozod. Az ellenállás miatt nem tus a SPI kommunikáció belebeszélni. SPI Master és Slave a Bascom mintá közt megtalálható.
I2C-re (slave) az Arduino SW alapban fel van készítve... Esetleg a slave programot abban megírni?
Illetve 1-Wire s szóbajöhet... Master: adott. Slave: az alkalmazási minták közt itt az oldalon...
Nem tudom bele fér e a : 2K Bytes of In-System Self Programmable Flash –ba!
De még szóbajöhetne SW Uart is. 1*űbb kezelni mint a SPI-t. És csak 2 portot foglal.
Példa:

Ja és 2 Proci közé nem kel illesztés. (Ha közel vannak egyméshoz!)
De még szóbajöhetne SW Uart is. 1*űbb kezelni mint a SPI-t. És csak 2 portot foglal.
Példa:
Kód: Egész kijelölése
'open channel for output
Open "comd.3:19200,8,n,1" For Output As #1
Print #1 , "serial output"
'Now open a pin for input
Open "comd.4:19200,8,n,1" For Input As #2
'since there is no relation between the input and output pin
'there is NO ECHO while keys are typed
Print #1 , "Number"
'get a number
Input #2 , B
'print the number
Print #1 , B
'now loop until ESC is pressed
'With INKEY() we can check if there is data available
'To use it with the software UART you must provide the channel
Do
'store in byte
B = Inkey(#2)
'when the value > 0 we got something
If B > 0 Then
Print #1 , Chr(b) 'print the character
End If
Loop Until B = 27
Close #2
Close #1
Ja és 2 Proci közé nem kel illesztés. (Ha közel vannak egyméshoz!)