02-01-2019, 15:36
(02-01-2019, 14:32)kaczakat napisał(a): Jeśli 40us dla jednego int (nie polecenia - cała paczka komunikacji może trwać nawet 10x tyle z jednym modułem) to za długo użyj SPI.Jak policzyłeś te 40us?
Mnie, przy 400kHz, dla przesłania 2 bajtów wychodzi 45us bez START i STOP:
1/(400000/(9*2)) 400kHz / 9 bit na bajt * 2 bajty
Gdy dodam start i stop to 50us:
1/(400000/(9*2+2))
Cała ramka, razem z adresem 7-bit oraz start/stop to 75,5us:
1/(400000/(9*3+2))
Przypuśćmy, że chce adresować bajtem nr zapisywanego rejestru (choć może adres rejestru być zawarty w adresie slave jak w eeprom >256b <= 4k) wtedy wysyła łącznie 4 bajty co daje 95us:
1/(400000/(9*4+2))
Nie wyszło mi więc 40us dla 2 bajtów ii nie wiem dlaczego ma wyjść 10 razy dłużej dla całej ramki? Co by tam jeszcze przesyłał? CRC? Przecież Arduinowcy nie akceptują pojęcia CRC, dla nich to zbędny dodatek.