Instrukcja pokazująca możliwość programowania przetwornicy CPU MP2949A za pomocą taniego programatora (a w zasadzie konwertera USB <-> I2c/ SMBus) MCP2221.
Konwerter zakupiony w celach edukacyjnych za mniej jak 80 zł. Ma wiele ciekawych zastosowań.
Przetwornica ta znajduje się w wielu nowszych laptopach (np Lenovo Y540, Lenovo L340 - na tym laptopie testowałem poprawność działania).
Co potrzebujemy:
- Konwerter USB UART/I2C MCP2221 - ja go zakupiłem na polskim portalu aukcyjnym za mniej jak 80 zł
- program "MCP2221 I2C SMBus Terminal" - do znalezienia w google
- przygotowany plik z listą instrukcji (w tym programnie oznaczone jako Register Index) - udostępniam w załaczniku
- 3 cienkie przewody np: kynar
Na poczatek odłaczamy baterię w laptopie i podłaczamy 3 linie z programatora do płyty głownej.
Potrzebujemy podpiąć się pod 32 i 33 wyprowadzenie układu MP2949A:
- n.32 - sygnał SDA z konwertera
- n.33 - sygnał SCL z konwertera
- GND z programatora łaczymy z GND płyty głównej
Następnie musimy uaktywnić możliwość programowania układu.
Układ w trybie normalnej pracy ma wprowadzenie 36 podciągnięte (zazwyczaj rezystorem 0 ohm) do masy.
Wystarczy podnieść lub delikatnie przesunąć ten rezystor.
Gry mamy to gotowe to podłączamy programator do USB do komputera, uruchamiamy program MCP2221 I2C SMBus Terminal.
Upewniamy się że w polu Select Device jest posiadane przez nas urządzenie (tam są same cyfry - chyba numer seryjny konwertera).
Ustawiamy wyższą prędkość czyli 400000 (przy problemach możemy ustawić ją na tą mniejszą wartość czyli 100000 - Hz? ).
Dajemy File > Import Commands i wczytujemy pobrany wcześniej plik csv.
Teraz Advanced Setings i ustawiamy:
- adresację na 7-bit,
- Start Adress - 00,
- End Adress - 38.
Włączamy laptopa przyciskiem power i dajemy Start Scan. Po chwii w zakładce Log pokażą się na zielono dostępne adresy SMBus.
Wybieramy Send All pod wczytaną wcześniej listą. Nastąpi proces odczytywania poszczególnych adresów.
Zapisujemy LOG - tam jest kopia wartości układu MCP2221.
Uwaga - konwerterem możemy także zapisywać układ (czyli np kupujemy czysty i programujemy pod daną płytę).
Programowanie działa poprawnie bo też sprawdzałem ale wymaga sporo czasu do przygotowania danych.
Może w wolnej chwili napiszę skrypt aby automatycznie generował listę komend z odpowiednimi wartościami pod daną płytę główną - na razie robię to ręcznie.
Konwerter zakupiony w celach edukacyjnych za mniej jak 80 zł. Ma wiele ciekawych zastosowań.
Przetwornica ta znajduje się w wielu nowszych laptopach (np Lenovo Y540, Lenovo L340 - na tym laptopie testowałem poprawność działania).
Co potrzebujemy:
- Konwerter USB UART/I2C MCP2221 - ja go zakupiłem na polskim portalu aukcyjnym za mniej jak 80 zł
- program "MCP2221 I2C SMBus Terminal" - do znalezienia w google
- przygotowany plik z listą instrukcji (w tym programnie oznaczone jako Register Index) - udostępniam w załaczniku
- 3 cienkie przewody np: kynar
Na poczatek odłaczamy baterię w laptopie i podłaczamy 3 linie z programatora do płyty głownej.
Potrzebujemy podpiąć się pod 32 i 33 wyprowadzenie układu MP2949A:
- n.32 - sygnał SDA z konwertera
- n.33 - sygnał SCL z konwertera
- GND z programatora łaczymy z GND płyty głównej
Następnie musimy uaktywnić możliwość programowania układu.
Układ w trybie normalnej pracy ma wprowadzenie 36 podciągnięte (zazwyczaj rezystorem 0 ohm) do masy.
Wystarczy podnieść lub delikatnie przesunąć ten rezystor.
Gry mamy to gotowe to podłączamy programator do USB do komputera, uruchamiamy program MCP2221 I2C SMBus Terminal.
Upewniamy się że w polu Select Device jest posiadane przez nas urządzenie (tam są same cyfry - chyba numer seryjny konwertera).
Ustawiamy wyższą prędkość czyli 400000 (przy problemach możemy ustawić ją na tą mniejszą wartość czyli 100000 - Hz? ).
Dajemy File > Import Commands i wczytujemy pobrany wcześniej plik csv.
Teraz Advanced Setings i ustawiamy:
- adresację na 7-bit,
- Start Adress - 00,
- End Adress - 38.
Włączamy laptopa przyciskiem power i dajemy Start Scan. Po chwii w zakładce Log pokażą się na zielono dostępne adresy SMBus.
Wybieramy Send All pod wczytaną wcześniej listą. Nastąpi proces odczytywania poszczególnych adresów.
Zapisujemy LOG - tam jest kopia wartości układu MCP2221.
Uwaga - konwerterem możemy także zapisywać układ (czyli np kupujemy czysty i programujemy pod daną płytę).
Programowanie działa poprawnie bo też sprawdzałem ale wymaga sporo czasu do przygotowania danych.
Może w wolnej chwili napiszę skrypt aby automatycznie generował listę komend z odpowiednimi wartościami pod daną płytę główną - na razie robię to ręcznie.