több ATMEGA IC-t kötök össze a TWI rendszeren, 1db masterem van és sok sok slave, de maradjunk egyenlőre 1 slave-nél. Nem bascomot használok( ezért tudom hogy rosz helyre írok) , hanem AVR Studiot és winavr-gcc fordítót. A masteren a TWI rész a Peter Fleurys lenne, elvileg az működik is ha nincs rádugva slave. Szkóppal szépen látom hogy Start és cím bájtot küldene, de nincs rá válasz így fut a progi tovább.. A slave eszközön csupán inicializálom a TWI-t :
uint8_t TWIS_Init (uint8_t Address, uint32_t Bitrate)
{
TWBR = ((F_CPU/Bitrate)-16)/2;
TWAR = (Address << 1) | 1;
TWCR = (1<<TWEN)|(1<<TWEA) ;
}
Ezen felül semmit nem csinálok! A portok inicializálása is megtörténik, SDA és SCL lábakon a pull-up aktiválva van a biztonság kedvéért.
Na és most jön a talány:
Ugye a master SDA , SCL lábain szépen látom a tüskéket szkóppal, de amint rárakom a slave-t is a master befagy az első átvitel várakozásnál, itt:
while(!(TWCR & (1<<TWINT)));
Pedig a slave nem is csinál semmit! Ha kiveszem a slave programból a TWIS_Init -et akkor is befagy a master.
Elkötve nincsen a nyákon semmi, a masteren van egy külső felhúzó ellenállás is, jelenleg 3,3k .
Tudtok segíteni hol keressem a hibát??
