
iPod Classic-ის დაუდოკუმენტირებული Mikey ჩიპი: როგორ ამუშავდა ყურსასმენის პულტი
ენთუზიასტმა Rockbox-ის კოდში აღმოაჩინა, რომ iPod Classic-ზე Apple-ის სადენიანი ყურსასმენის პულტი არასდროს მუშაობდა. მან დაუდოკუმენტირებული Mikey ჩიპის რეგისტრის 256 მნიშვნელობა სათითაოდ გადაამოწმა და სამივე ღილაკი ამუშავა.
Rockbox-ით მომუშავე iPod Classic-ზე Apple-ის სადენიანი ყურსასმენის დისტანციური მართვა არასდროს მუშაობს: ცენტრალური ღილაკი და ხმის რეგულატორი ამ ოჯახის არცერთ მოწყობილობაზე არ რეაგირებს. ამის მიზეზი პროექტის აუდიო დრაივერშივე წერია, კომენტარად: აქსესუარის ამოცნობა და დისტანციური ღილაკების მხარდაჭერა შეუსრულებელ ამოცანებად რჩებოდა. მე-7 თაობის iPod Classic-ის მფლობელმა ენთუზიასტმა ორივეს დახურვა გადაწყვიტა.
ჩიპი, სახელად Mikey
ყურსასმენის ბუდეს პატარა ცალკე კონტროლერი ემსახურება, რომელსაც Apple-ის firmware „Mikey“-ს უწოდებს. ის I2C-ის მე-0 ავტობუსზე, 0x72 მისამართზე ზის, 8 რეგისტრი აქვს და ორ საქმეს ასრულებს: კვებას აძლევს ყურსასმენის მიკროფონს და დეკოდირებს დისტანციური მართვის ღილაკების სიგნალებს. Rockbox-მა ჩიპის არსებობა ყოველთვის იცოდა, მაგრამ მას მხოლოდ მიკროფონის bias ძაბვის ასაწევად იყენებდა, რომ ბუდიდან ჩაწერა მუშაობდეს. დანარჩენი არასდროს აღწერილა: freemyipod-ის საზოგადოებას რეგისტრების ცხრილი არ აქვს, Rockbox-ის Gerrit-ში მიტოვებული მცდელობაც არ მოიძებნა.
2010 წლის ჩანაწერები და რეგისტრების გადარჩევა
ერთადერთი წინამორბედი ნაშრომი David Carne-ის 2010 წლის ტექსტია iPod shuffle 3G-ის ყურსასმენის პულტზე, რომელიც იმავე აქსესუარს იყენებს. Carne-ის გაზომვებმა ვარაუდი იმის შესახებ, რომ პულტი სერიულ პროტოკოლზე საუბრობს, მოიშალა: ცენტრალური ღილაკი მიკროფონის ხაზის სრული მოკლე ჩართვაა, ხმის აწევა და დაწევა კი ფიქსირებული რეზისტული დატვირთვებია, რომლებიც ამ ხაზის ძაბვას დაახლოებით 2,08 ვოლტიდან 1,68 და 1,52 ვოლტამდე ამცირებს. ერთადერთი „ჭკვიანი“ ნაწილი ულტრაბგერითი საიდენტიფიკაციო chirp-ია, რომელიც ჩართვიდან 8,1 მილიწამში ისმის და რომელსაც მოწყობილობა 4,8 მილიწამიანი პულსით პასუხობს.
ბუდის კონტროლერზე დებაგერს ვერ მიაერთებ, ამიტომ ავტორმა ეკრანი Rockbox-ის შიგნით ააგო: ის რვავე რეგისტრს ყოველ 20 მილიწამში კითხულობს, ავტომატური რეჟიმი კი მე-0 რეგისტრს 256 მნიშვნელობაზე გადაატარებს. პასუხი 0x2f აღმოჩნდა: მისი დაბალი სამი ბიტი ჩაწერის გზის იგივე მიკროფონის bias-ს ატარებს, 0x28 კი დეტექტორს რთავს. ხმისა და ცენტრალური ღილაკის მოვლენები მე-5 და მე-4 რეგისტრებში ჩანს.
აპარატურა იტყუება
ყოველდღიურმა გამოყენებამ უფრო უცნაური რამ გამოავლინა. დაახლოებით ხუთი წამის უმოქმედობის შემდეგ ჩიპის მოვლენების ძრავა იძინებს: დაჭერა მე-4 რეგისტრს მაშინვე ცვლის, გაშვება კი 1,7-1,8 წამის დაგვიანებით ფიქსირდება.
ამიტომ დრაივერი ცენტრალურ ღილაკს მხოლოდ დაწკაპუნებად აღიქვამს და ყოველ დაჭერაზე ფიქსირებულ 60 მილიწამიან პულსს აგზავნის. ცვლილება ზემოთ გაიგზავნა როგორც Gerrit-ის 7677 ცვლილება, სახელწოდებით „ipod6g: Add inline earphone remote support“: ერთი commit, 8 ფაილი და 318 დამატებული ხაზი. ის ჯერ განხილვის პროცესშია; დრაივერიანი მზა Rockbox-ის იმიჯი, ipod6g-mikey-v1, 6G და მე-7 თაობის Classic-ზე მუშაობს.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.