|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2024 11 26, 13:41. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » I2C bus
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 1 iš 3 Pereiti prie 1, 2, 3 Toliau |
|
|
I2C bus |
Parašytas: 2006 08 11, 09:29 |
|
|
|
Gal kas nors gali paprasta kalba paaiskint kas tai per biesas kokiais budais tai apdorojama? Cia kiekviena pakopa reikia aprasyti programiskai ar yra mikrokontroleriu, kurie tam skirti. Turiu galvoj ar programiskai reikia nusiusti valdomos mikroschemos adresa po to programiskai nurodyti laukti patvirtinimo bito ir visa kita. O gal yra kontroleriu, kuriems pvz irasau valdomos mikr adresa ir kada (if ....) ka siusti, o proceduras kaip patvirtinimo bito laukimas, sinchronizacija daro pats mikrokontroleris?
Is anksto dekingas. |
|
_________________ I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life! |
|
|
|
|
I2C bus |
Parašytas: 2006 08 11, 09:39 |
|
|
|
Paskaityk pavyzdžiui Atmegos32 datasheet'a ten kur rašo apie TWI (Two-wire Serial interface). Ten viskas paiškinta.
Sekmės... |
|
|
|
|
|
I2C bus |
Parašytas: 2006 08 11, 10:19 |
|
|
|
TWI palaiko ir atmega8 (jei pinigu gaila atmegai32) |
|
_________________ 158 puslapiai neperskaitytu postu po ilgo nesilankymo:
Paskutinį kartą Jūs lankėtės 2007 01 03, 23:01
Dabar yra 2007 09 01, 21:30 |
|
|
|
|
Re: I2C bus |
Parašytas: 2006 08 11, 11:19 |
|
|
|
Chulio rašo: |
Gal kas nors gali paprasta kalba paaiskint kas tai per biesas kokiais budais tai apdorojama? Cia kiekviena pakopa reikia aprasyti programiskai ar yra mikrokontroleriu, kurie tam skirti. |
Vien tik mikrokontrolerio I2C palaikymo neužtenka. Reikia 100% suprasti patį interfeisą. Nes tiek AVR, tiek Philips ARM, hardwarinis I2C gana sudėtingas, ir reikia suprasti kaip jį valdyti.
Paprasčiau netgi pačiam su portais generuoti visą seką. O smulkiau su visom laikinėm diagramom žr. bet kokiame PDFe kur I2C palaiko. |
|
|
|
|
|
|
I2C bus |
Parašytas: 2006 08 11, 12:38 |
|
|
|
Pati I2C veikimo principa as jau issiaiskines. Tik vo pagalvojau kokio dydzio programa bus jei visas pakopas (start, adresas, patvirtinimai, data, end) aprasyti ant porto. Ir neduok die praleisi netycia kokia komanda... Idealus variantas butu mazdaug toks mikrokontroleris: nustatom kazkurias (tam numatytas) kojas SDA ir SCL, po to nurodom kada deti start, kokiu adresu ir kokiu eilishkumu siusti duomenis (DATA), kada deti end. O jau ten start, patvirtinimu, end signalus valdytu (zinotu kada ir kokius siust ir kada priimt) pats mikrokontroleris |
|
_________________ I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life! |
|
|
|
|
I2C bus |
Parašytas: 2006 08 11, 13:05 |
|
|
|
na dazniausiai buna bibliotekos parasytos. PVZ CodeVision arba WinAVR nereikia nieko kurit is naujo. Imi funkcija rasai adresa duomenis ir siunti. |
|
|
|
|
|
I2C bus |
Parašytas: 2006 08 11, 14:14 |
|
|
|
Mindaugasu rašo: |
na dazniausiai buna bibliotekos parasytos. PVZ CodeVision arba WinAVR nereikia nieko kurit is naujo. Imi funkcija rasai adresa duomenis ir siunti. |
Ta prasme nereikia aprasineti kiekvieno zingsnio? Tik adresas, duomenys ir vsio? Visa kita padaryta? |
|
_________________ I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life! |
|
|
|
|
I2C bus |
Parašytas: 2006 08 11, 16:43 |
|
|
|
Bent aš tai paprogrames pasidaręs, ir viskas. Belieka jas iškviesti su reikiamais duomenimis, ir visą darbą atlieka. Jei reikia - sakyk. Duosiu. |
|
|
|
|
|
I2C bus |
Parašytas: 2006 08 13, 16:53 |
|
|
|
Kol kas ne. Noreciau pabandyt viska galutinai perkast pats. Visgi kai pats ishmoksti po to lengviau buna nei, kad paiimi "sukramtyta" Paprastas pavyzdys: kai kas nors kelia rodo - didele tikimybe, kad kita karta nerasi, bet jei beklaidziodamas ieshkai ir surandi pats - kita karta tikrai nepasiklysi.... |
|
_________________ I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life! |
|
|
|
|
|
I2C bus |
Parašytas: 2006 08 13, 18:35 |
|
|
|
i2c toks populiarus kad gatavu bilioteku bet kokiam skoniui yra, betkokia kalba, ir kiekvienam kompilatorisui po 10 varintau.
butu absurdas savo daryti.
siaip ten nieko labai sudetingo nera, tiesiog keletas baitu nosekliu budu perdudama ir viskas.
bet geraiu paciam neprasideti nes bus labai daug vargo derinant, ilys koks bereikalingas impulsas bur nors, ir galvosi diena kodel neveikia niekas.
as taip su PLL vargau, vis blogai ir blogai, nors protokolas elementarus.
vis neaisiku kur blogai ar daznumas suskaiciuotas netesingai, ar kokia klaida valdymo programoje. |
|
|
|
|
|
|
I2C bus |
Parašytas: 2006 09 14, 14:56 |
|
|
|
vakaras rašo: |
Bent aš tai paprogrames pasidaręs, ir viskas. Belieka jas iškviesti su reikiamais duomenimis, ir visą darbą atlieka. Jei reikia - sakyk. Duosiu. |
Atsiusk i chulio666@one.lt , busiu dekingas. Dabar tai kuo toliau i miska, tuo daugiau medziu......... Nors, tas miskas gal jau truputi praretejes Pagalvojau, gal su pavyzdziais paprasciau bus perkast. Didziausia beda tai, kad datasheet'ai anglu kalba, kuri pas mane silpnoka, wisgi mokykloj rusu ir prancuzu moke.. Aisku rusu kalba irgi nemazai visko yra, bet kolkas nepakankamai arba dar neradau to ko reikia |
|
_________________ I GAVE UP DRINKING, SMOKING AND SEX!
it was the worse 15 minutes of my life! |
|
|
|
|
|
I2C bus |
Parašytas: 2006 09 14, 15:02 |
|
|
|
Mindaugasu rašo: |
na dazniausiai buna bibliotekos parasytos. PVZ CodeVision arba WinAVR nereikia nieko kurit is naujo. Imi funkcija rasai adresa duomenis ir siunti. |
o kaip vadinasi ta biblioteka, ir kur ji yra? |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux |
|
|
|
|
|
I2C bus |
Parašytas: 2006 09 14, 15:32 |
|
|
|
Kodas: |
#define SDA_set IO0SET_bit.P0_26
#define SDA_clr IO0CLR_bit.P0_26
#define SDA_dir IO0DIR_bit.P0_26
#define SCL_set IO0SET_bit.P0_22
#define SCL_clr IO0CLR_bit.P0_22
void I2Csoft_Start()
{
SDA_set = 1;
SCL_set = 1;
__no_operation(); // NOP
__no_operation();
__no_operation();
SDA_clr = 1;
__no_operation();
__no_operation();
__no_operation();
SCL_clr = 1;
}
void I2Csoft_Stop()
{
SDA_clr = 1;
SCL_clr = 1;
__no_operation();
__no_operation();
__no_operation();
SCL_set = 1;
__no_operation();
__no_operation();
__no_operation();
SDA_set = 1;
}
char I2Csoft_Send(char Data)
{ char A;
for (A=0; A<8; A++)
{ if (Data & 0x80) SDA_set = 1;
else SDA_clr = 1;
__no_operation();
SCL_set = 1;
__no_operation();
__no_operation();
__no_operation();
__no_operation();
Data <<= 1;
SCL_clr = 1;
}
SDA_dir = 0; // priemimas
SCL_set = 1;
if (SDA_data) A = 0; else A = 1;
SCL_clr = 1;
SDA_dir = 1; // vel siuntimas
return(A);
} |
Daryta ant ARM, ir suderinta ant maximalaus leistino greičio. Jei bus per greitai - tiesiog daugiau NOPų pridėk ir viskas.
I2C priėmimui po ranka dabar neturiu (tik namie). Bet ten irgi taip pat elementaru. Turiu ir per pertraukimus, tik ten žymiai sudėtingiau. |
|
|
|
|
|
|
I2C bus |
Parašytas: 2006 09 15, 08:47 |
|
|
|
JAULER rašo: |
o kaip vadinasi ta biblioteka, ir kur ji yra? |
c:\WinAVR\avr\include\util\twi.h jeigu standartiskai instalinai.
Arba galima parsisiusti Proycon AVRLIB is cia http://hubbard.engr.scu.edu/embedded/avr/avrlib/
Tai cia rasi praktiskai bet kokio hardwaro bibliotekas. Tingint rasyti savo - labai patogus dalykas. |
|
|
|
|
|
|
I2C bus |
Parašytas: 2006 09 15, 11:41 |
|
|
|
Nėra tas hardwarinis toks jau sudėtingas. Štai funkcija (Atmega8):
Kodas: |
#define false 0
#define true 1
#define i2c TWDR
#define i2cConf TWCR
#define i2cStatus TWSR
#define i2cIntFlag 0x80
#define i2cStart 0x20
#define i2cStop 0x10
#define i2cEn 0x04
#define i2cStatusStart 0x08
#define i2cStatusSlaveACK 0x18
#define i2cStatusDataACK 0x28
// Bit Rate: 384,000 kHz
TWSR = 0x00;
TWBR = 0x08;
TWAR = 0x00;
unsigned char I2CWriteByte(unsigned char I2Caddress, unsigned char adressH, unsigned char adressL, unsigned char data){
unsigned char i = 0;
repeatAll:
i++;
if(i > 100) return false;
i2cConf = i2cIntFlag | i2cStart | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusStart) goto repeatAll;
i2c = I2Caddress;
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusSlaveACK) goto repeatAll;
i2c = addressH;
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusDataACK) goto repeatAll;
i2c = addressL;
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusDataACK) goto repeatAll;
i2c = data;
i2cConf = i2cIntFlag | i2cEn;
while (!(i2cConf & i2cIntFlag));
if ((i2cStatus & 0xF8) != i2cStatusDataACK) goto repeatAll;
i2cConf = i2cIntFlag | i2cEn | i2cStop;
return true;
} |
Čia viskas, ko reikia.
Ši funkcija paima I2C čipo adresą, to čipo atminties adresą ir duomenis. Pamodifikavus galima pasirašyti paprogrames char duomenims ir burst mode'ui. |
|
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
|
|