Witam
W miniony weekend przez 2 dni siedziałem i szukałem, czemu mi I2C nie działa w STM32. Na googlu wyszukałem, że wiele osób miało takie problemy, ale mieli złą inicjalizację itp... Próbowałem wszystkiego. Ich przykłady działały u mnie, ale po "wklejeniu" w projekt przestawały. Okazało się, że w Erracie napisano, że I2C ma konflikt z kontrolerem pamięci zewnętrznej i nie mogą działać jednocześnie.... No to pięknie! Kiedyś większe problemy miałem z LPC23xx, tam to errata była sporo większa i nie działał na przykład kontroler pamięci w ogóle (w pierwszej rewizji), brał parę mA z baterii podtrzymującej zegarek (jeśli włożyło się ją przy wyłączonym zasilaniu głównym) itp. I tak się zastanawiam, czemu te mikrokontrolery dziś są takie "wadliwe"?? Czemu tak duże są do nich erraty?? Ja rozumiem, że koszty uruchomienia produkcji takiego układu scalonego są potężne, dlatego nie wykonuje się krótkich serii prototypowych... Ale skąd w ogóle ten problem się bierze?? Czy to efekt pośpiechu? Braku testów? Zwykłych błędów?? Czy może jakiś efektów, które ciężko przewidzieć? Intryguje mnie zwłaszcza nazwa "Silicion Limitations" użyta w Erracie do STMa, która sugeruje, że oni zrobili wszystko OK, tylko po przelaniu na krzem przestało działać ;)... Jak tego typu błędy wyglądają w innych układach?? Mniej lub bardziej skomplikowanych?? FPGA, uP do PCtów na przykład (pewien Intel źle dzielił, ale poza tym nie słyszałem, żeby miały jakieś wady tego typu), a jak to wygląda w układach analogowych, prostych cyfrowych? Czy był kiedyś wzmacniacz operacyjny poczwórny, w którym można było na raz korzystać tylko z trzech wzmacniaczy?? ;)... I to, co mnie interesuje najbardziej. Układ został wyprodukowany, to chyba można wtedy sprawdzić jak działa, ewentualne ograniczenia wpisać do oficjalnej dokumentacji (w odpowiednich rozdziałach) i tyle, a nie wypuszczać jakieś erraty. Czy to nie jest efekt pośpiechu przy wypuszczaniu na rynek nowego układu??
Taki niedzielny temat na luźną dyskusję.