Witam,
Próbuję właśnie przeportować obsługę I2C na w/w procek.
Procedury obsługi I2C były uprzednio sprawdzone na procesorach MX440 i MX795 - tam działały bez zarzutu.
Tutaj niestety mam zupełną martwotę - nawet warunek startu się nie pokazuje na żadnym z pinów I2C2.
Jedyne co działa, to to, że po włączeniu modułu I2C komendą I2C2CONbits.ON = 1, widać, że kontrolę nad pinami przejął moduł I2C - poprzednie stany logiczne na pinach GPIO znikają.
Na pierwszy rzut oka rejestry obsługujące I2C w w/w procesorach i MX250 wydają się identyczne.
Może jest jednak jakiś "myk", który trzeba uwzględnić aby I2C ruszyło?
Dodano po 1 [godziny] 56 [minuty]:
Sprawa się wyjaśniła - odmiennie od w/w procków, w MX250 I2C2 nie ma pinów "+5V tolerant", stąd podciągnięcie do +5V blokowało I2C.
Po przełaczeniu na I2C1, które ma piny "+5V tolerant", wszystko działa jak trzeba
Tak to jest jak się na pamięć robi...
Próbuję właśnie przeportować obsługę I2C na w/w procek.
Procedury obsługi I2C były uprzednio sprawdzone na procesorach MX440 i MX795 - tam działały bez zarzutu.
Tutaj niestety mam zupełną martwotę - nawet warunek startu się nie pokazuje na żadnym z pinów I2C2.
Jedyne co działa, to to, że po włączeniu modułu I2C komendą I2C2CONbits.ON = 1, widać, że kontrolę nad pinami przejął moduł I2C - poprzednie stany logiczne na pinach GPIO znikają.
Na pierwszy rzut oka rejestry obsługujące I2C w w/w procesorach i MX250 wydają się identyczne.
Może jest jednak jakiś "myk", który trzeba uwzględnić aby I2C ruszyło?
Dodano po 1 [godziny] 56 [minuty]:
Sprawa się wyjaśniła - odmiennie od w/w procków, w MX250 I2C2 nie ma pinów "+5V tolerant", stąd podciągnięcie do +5V blokowało I2C.
Po przełaczeniu na I2C1, które ma piny "+5V tolerant", wszystko działa jak trzeba
Tak to jest jak się na pamięć robi...