Witam,
Chciałbym nasłuchiwać co się dziej na magistrali I2C, bez ingerencji w przesyłane dane. Informacje które zostaną odebrane z magistrali I2C przesłane zostaną po USART-cie do hyperterminal-a .
Do budowy tego urządzenia wykorzystałem mikrokontroler ATtiny2313, rezonator kwarcowy 20Mhz oraz transoptor LTV-817C (do izolacji między magistralą I2C, a liniami SDA,SCL mikrokontrolera ATtiny2313).
Do testów posłużyłem się układ startowy EVB4.3 z którego wykorzystałem układ SN75176BP do transmisji danych po RS485 do terminala, zegar czasu rzeczywistego PCF8583 oraz Atmega32, której zadaniem było odczytywanie co 1 sekundę po magistrali I2C aktualnego czasu i wyświetlanie na wyświetlaczu LCD.
Postanowiłem wykorzystać sprzętowy USI ATtiny2313 do odbierania danych z magistrali I2C, ale niestety napotkałem na pewne problemy podczas odczytu. Mianowicie część danych, które są przesyłane po magistrali I2C są "gubione" przez mikrokontroler ATtiny2313 i nie jestem pewny gdzie popełniłem błąd (dane przez Atmega32 są poprawnie odczytywane i wyświetlane na LCD).
Jeżeli chodzi o przesyłanie danych po USART-cie do terminala to nie ma z tym problemu (echo z terminala działa poprawnie):
8bitów danych, 1bit stopu, prędkość 115200
Konfiguracja fusbitów mikrokontrolera:
https://obrazki.elektroda.pl/1790811600_1488220137.png
Program pisany jest w C w Eclipsie
Macie jakiś pomysł co robię nie tak, kod poniżej:
uart.c
uart.h
main.c
Chciałbym nasłuchiwać co się dziej na magistrali I2C, bez ingerencji w przesyłane dane. Informacje które zostaną odebrane z magistrali I2C przesłane zostaną po USART-cie do hyperterminal-a .
Do budowy tego urządzenia wykorzystałem mikrokontroler ATtiny2313, rezonator kwarcowy 20Mhz oraz transoptor LTV-817C (do izolacji między magistralą I2C, a liniami SDA,SCL mikrokontrolera ATtiny2313).
Do testów posłużyłem się układ startowy EVB4.3 z którego wykorzystałem układ SN75176BP do transmisji danych po RS485 do terminala, zegar czasu rzeczywistego PCF8583 oraz Atmega32, której zadaniem było odczytywanie co 1 sekundę po magistrali I2C aktualnego czasu i wyświetlanie na wyświetlaczu LCD.
Postanowiłem wykorzystać sprzętowy USI ATtiny2313 do odbierania danych z magistrali I2C, ale niestety napotkałem na pewne problemy podczas odczytu. Mianowicie część danych, które są przesyłane po magistrali I2C są "gubione" przez mikrokontroler ATtiny2313 i nie jestem pewny gdzie popełniłem błąd (dane przez Atmega32 są poprawnie odczytywane i wyświetlane na LCD).
Jeżeli chodzi o przesyłanie danych po USART-cie do terminala to nie ma z tym problemu (echo z terminala działa poprawnie):
8bitów danych, 1bit stopu, prędkość 115200
Konfiguracja fusbitów mikrokontrolera:
https://obrazki.elektroda.pl/1790811600_1488220137.png
Program pisany jest w C w Eclipsie
Macie jakiś pomysł co robię nie tak, kod poniżej:
uart.c
Kod: C / C++
uart.h
Kod: C / C++
main.c
Kod: C / C++