Озадачился загрузкой с TWI в связи с проблемами с AT45. Благо на плате разведены часы DS1337 и доп.флешка серии 25. Вместо часов еепромину и поставил. Написал прошивалку еепром (использую прерывания). В процессе отладки обнаружил следующий феффект: при первом чтении блока данных контроллер выставляет NACK и транзакция прекращается, понятное дело. И статусные регистры, само собой, о nack не слова. Сначала читал по байту, но долговато, неинтересно. Решил тем что, если сначала прочитать один байт, а потом повторить уже чтение всего блока данных, то считывается весь блок со всеми ACK, NACK и прочими соответствиями. Заинтересовало то, что RomBoot делает по такому же алгоритму. Идут две попытки чтения. Есть энтузиасты проверить?? На двух экземплярах, на которых пробовал, эффект воспроизводится.
|