Zachęcam do wymiany doświadczeń z układami DS2480 i DS2482.
Aktualnie "pastwię" się nad nimi. Aby wykorzystać ich potencjał należy korzystać z trybów, które oferują w przeciwnym wypadku okazują się bardzo wolne. Zestawienie czasów operacji:
Będę uzupełniał tą tabelkę.
DS2480 jest dużo lepszy od DS2482 ale wymaga cennego UARTA. Zalety:
- duża szybkość transmisji (115200b/s),
- wykrywanie przerwań od slave,
- generowanie impulsów programującycch 5V i 12V,
- wbudowane silne podciąganie.
Stosując pewne sztuczki, można przyspieszyć działanie DS2482. Nawet przy SIIC 400kHz, czas transmisji bajtu po IIC jest dłuższy od generowania impulsu na 1-Wire więc nie trzeba sprawdzać czy układ jest zajęty transmisją,
- przy odczycie bajtu z 1-Wire w trybie overdrive nie trzeba sprawdzać statusu, bajt na pewno już jest w buforze DS2482.
Search rom dla DS2482 używający rozkazu 3-bit:
Co do porównania prędkości komunkacji DS2480 (115200) a DS2482 (moja odpowiedź w innym temacie):
Ile bajtów trzeba wysłać i odebrać po IIC do/z DS2482 aby wysłać jeden bajt na 1-W, a ile po USART do DS2480?
(...)IIC trzeba zaadresować i czekać aż DS2480 zwróci w statusie zakończenie operacji na 1-Wire, a to daje dodatkowe bajty po IIC:
ADRES IIC,
REJESTR ZAPISU,
dana - nie liczymy bo po UART też trzeba wysłać,
PONOWNY START i ADRES ODCZYTU IIC,
ODCZYT STATUSU z ACK
...
ODCZYT STATUSU bez ACK
Ile wyszło? 5 dodatkowych bajtów i z 400kb/s robi się 80kb/s.
Nieodczytanie ostatniego bajtu bez ACK sprawia problemy, jeszcze tego nie analizowałem, prawdopodobnie oczekuję innego statusu z TWI.
Jest mały niuans, ż w IIC do 8-bit dochodzi 9 ACK, w USART 8-bit + START, + STOP..
prędkość transmisji USART 115200b/s daje 11,520kB/s
IIC 400kHz 400kHz daje ~44kB/s, sekwencję start/stop pomijam.
Temat powiązany z:
Różnica między DS2480 a DS2480B
Szybkość odczytu z DS2482-800
[DS2480]Komunikacja po rs232
Przejściówka 1-wire->rs232 oparta na DS2480 zasilana bezpośrednio z zasilacza
konwerter 1-wire na rs232 układ DS2480b
Proszę nie zamieszczać linków i tekstów w języku innym niż polski bez tłumaczenia. Dyskusja jest dla wszystkich, zwłaszcza tych mniej zorientowanych.
Aktualnie "pastwię" się nad nimi. Aby wykorzystać ich potencjał należy korzystać z trybów, które oferują w przeciwnym wypadku okazują się bardzo wolne. Zestawienie czasów operacji:
Będę uzupełniał tą tabelkę.
DS2480 jest dużo lepszy od DS2482 ale wymaga cennego UARTA. Zalety:
- duża szybkość transmisji (115200b/s),
- wykrywanie przerwań od slave,
- generowanie impulsów programującycch 5V i 12V,
- wbudowane silne podciąganie.
Stosując pewne sztuczki, można przyspieszyć działanie DS2482. Nawet przy SIIC 400kHz, czas transmisji bajtu po IIC jest dłuższy od generowania impulsu na 1-Wire więc nie trzeba sprawdzać czy układ jest zajęty transmisją,
- przy odczycie bajtu z 1-Wire w trybie overdrive nie trzeba sprawdzać statusu, bajt na pewno już jest w buforze DS2482.
Search rom dla DS2482 używający rozkazu 3-bit:
Kod: C / C++
Co do porównania prędkości komunkacji DS2480 (115200) a DS2482 (moja odpowiedź w innym temacie):
Ile bajtów trzeba wysłać i odebrać po IIC do/z DS2482 aby wysłać jeden bajt na 1-W, a ile po USART do DS2480?
(...)IIC trzeba zaadresować i czekać aż DS2480 zwróci w statusie zakończenie operacji na 1-Wire, a to daje dodatkowe bajty po IIC:
ADRES IIC,
REJESTR ZAPISU,
dana - nie liczymy bo po UART też trzeba wysłać,
PONOWNY START i ADRES ODCZYTU IIC,
ODCZYT STATUSU z ACK
...
ODCZYT STATUSU bez ACK
Ile wyszło? 5 dodatkowych bajtów i z 400kb/s robi się 80kb/s.
Nieodczytanie ostatniego bajtu bez ACK sprawia problemy, jeszcze tego nie analizowałem, prawdopodobnie oczekuję innego statusu z TWI.
Jest mały niuans, ż w IIC do 8-bit dochodzi 9 ACK, w USART 8-bit + START, + STOP..
prędkość transmisji USART 115200b/s daje 11,520kB/s
IIC 400kHz 400kHz daje ~44kB/s, sekwencję start/stop pomijam.
Temat powiązany z:
Różnica między DS2480 a DS2480B
Szybkość odczytu z DS2482-800
[DS2480]Komunikacja po rs232
Przejściówka 1-wire->rs232 oparta na DS2480 zasilana bezpośrednio z zasilacza
konwerter 1-wire na rs232 układ DS2480b
Proszę nie zamieszczać linków i tekstów w języku innym niż polski bez tłumaczenia. Dyskusja jest dla wszystkich, zwłaszcza tych mniej zorientowanych.
