i2c

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Az nem lenne egyszerűbb, hogy ugyan olyan slave-address-el bekapni a buszról az adatokat? Keresésnél gondolom pörög az infófolyam, tehát
nem biztos, hogy le tudod olvasni. (bár nem tudom, milyen a cucc...)
De ha ilyen sokszor van egyébbként szabadon a busz, szerintem működhet.
Avatar
nobody_hun
Bitfaragó
Hozzászólások: 425
Csatlakozott: 2005. november 14. hétfő, 7:00

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

A slave elkapása azért nem jó, mert ha ugyanazon a címen van, akkor az AVR is generál ACK-ot.
Na még vajúdok...
"Az IC-k füsttel működnek. Ha kijön belőlük a füst, nem működnek tovább." - ismeretlen szerző
"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00

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

Sziasztok!
Lenne egy olyan kérdésem hogy ha egy atmega32-n portb.0 és portb.1 re programozom az i2c-t, és még nincs a buszon az eszköz (mcp portbővítő) , nem olvasom a portot ,csak inicializálom és írom, okozhat e olyat hogy kifagy a proci egy időre 1-2 perc talán aztán fut a progi tovább? A main az ami eléggé későn indul el, a bla bla rész...
Lehet ezt lekezelni valahogy egyszerűen ? pl ha nem talál eszközt, egy byte típusú változót átír egyre és akkor nem próbálkozik az i2c vel?

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

Config Sda = Portb.0
Config Scl = Portb.1
Config I2cdelay = 10
I2cinit
Declare Sub I2cportkiir
Dim Hova As String * 1
Dim I2c_a As Byte
Dim I2c_b As Byte
Dim Io0 As Byte
Dim Io1 As Byte
Dim Io2 As Byte
Dim Io3 As Byte
Dim Io4 As Byte
Dim Io5 As Byte
Dim Io6 As Byte
Dim Io7 As Byte
Const Iocon = &B00001100
Const Iodirki = 0
Const I2c_address_r = &B01000001
Const I2c_address_w = &B01000000
I2cinit
I2cstart
I2cwbyte I2c_address_w
I2cwbyte &HA
I2cwbyte Iocon
I2cstop
Waitms 500
'PORT.A = OUTPUT
I2cstart
I2cwbyte I2c_address_w
I2cwbyte &H0                                                ' IODIRA = H0
I2cwbyte Iodirki
I2cstop
'PORT.B = OUTPUT
I2cstart
I2cwbyte I2c_address_w
I2cwbyte &H1                                                ' IODIRB = H1
I2cwbyte Iodirki
I2cstop
Io0 = 0
Io1 = 0
Io2 = 0
Io3 = 0
Io4 = 0
Io5 = 0
Io6 = 0
Io7 = 0

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

'MAIN___________________________________________________________________________
Hova = "c"
I2c_a = 0
I2c_b = 0
Call I2cportkiir
blabla

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

Sub I2cportkiir
Select Case Hova
   Case "a":
      I2cstart
      I2cwbyte I2c_address_w
      I2cwbyte &H14
      I2cwbyte I2c_a
      I2cstop
   Case "b":
      I2cstart
      I2cwbyte I2c_address_w
      I2cwbyte &H15
      I2cwbyte I2c_b
      I2cstop
   Case "c":
      I2cstart
      I2cwbyte I2c_address_w
      I2cwbyte &H14
      I2cwbyte I2c_a
      I2cstop
      Waitms 100
      I2cstart
      I2cwbyte I2c_address_w
      I2cwbyte &H15
      I2cwbyte I2c_b
      I2cstop
   End Select
End Sub
Köszi
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

A felhúzóellenállásod hiányzik a buszról....
Vagy rövidzár van benne...
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00

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

Hát most hirtelen nem látom hogy mit csinál a port, még nem szedtem ki a nyákot, most hozom le a szerszámokat meg bővítőt, de ettől lehet hogy kis időre kifagy? Le lehet kezelni valahogy? vagy elég ha az ellenállásokat ráteszem?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Elég ha az ellenállás ott van rajta.... Mind a 2 :)
Avatar
monsun
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2012. március 7. szerda, 7:00

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

Segítséget kérek, elakadtam. Uno-val (Atmega 328) csináltam egy áramkört, ami kezel LCD-t, DS18B20-at és PCF8583-at. Minden működött, míg rátettem a programot egy Atmega8-ra. Ezen majdnem minden jó, kivéve az I2C kommunikációt az óra chippel. Változás az eredeti felálláshoz képest, hogy itt belső órajelet használok. Kísérletképpen ráakasztottam egy 4MHz-es kristályt, a jelenség ugyanaz. Mi lehet a gond?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Kód?
Bascom alatt?
HW vagy SW I2C?

Memóriahasználat? Mennyi marad szabadon?

Igaz M8 esetén újrafordítottad?
Avatar
monsun
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2012. március 7. szerda, 7:00

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

Bascom, a kódot innen vettem: http://avr.tavir.hu/modules.php?name=Fo ... 23&start=0
Igen, újrafordítottam, a teljes program 60%-ot foglal a memóriából.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Teljes kód?
Stack-ok hogy vannak? Méret? foglaltság?
Csak az óraIC van I2C-n?
Felhúzóellenállás alatt gyantamaradék?
4MHz külső kvarc? A $crystal átírva?
I2Cdelay növelésre mit csinál?
Az I2C felhúzó viselkedése (i2cdetect) -> ellenállás, GND-fele rövidzár? Felhúzók értéke?
Avatar
monsun
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2012. március 7. szerda, 7:00

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

Hát persze hogy figyelmetlen voltam! Rosszul címeztem az óra chipet. Program megír, kapcs. rajz megrajzol, dugdozós panelen kipróbál és gondolom itt hibáztam, a panelen módosíthattam a címzést nem a programban és a rajzot nem javítottam. A panelt viszont ez alapján terveztem, ez volt a bibi. Robinak köszönöm a telefonos segítséget :)
Samu

Re: i2c

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

Üdv Mindenkinek
Van i2c meghajtású LCD kijelzőm(nem szabvány Hitachi) aminek sem a címét sem az ott zajló adat forgalmat nem ismerem. Az eddig fel lelt leginkább arduino programok úgy vettem észre, csak az eszköz felderítését csinálják. Létezik-e olyan program akár arduinora akár windowsra ami képes az I2C adat forgalmat "lehallgatni", és logolni?
köszi
Samu
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: i2c

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

A legegyszerűbb:
http://shop.tavir.hu/product_info.php/p ... ator-p-112
Ezzel sokkal-sokkal tobb mindent láthatsz...

Protokollfigyelő alkalmazás létezett még LPT portra régen....
http://www.tavir.hu - a gazda :)
Válasz küldése