хм.. аскетично..
1. ссылку на схему платы
2. название "еепром"-а
3. к каким контактам какого разъема платы подключен
это по физике..
раз у вас чудо-тестер показывает "почти мегагерц", так посмотрите жизнедеятельность на остальных ногах "еепром-а", в особенности CS
далее проверьте с каким фронтом работает "еепром" и что выдает SSP контроллера
вот это настораживает - у "еепром" д.б. пин или регистр статуса готовности. кстати, компилятор может запросто выкинуть пустой цикл при оптимизации..
Посмотрел что твориться на ногах при помощи USB AX (логический анализатор) и выяснил, что передача происходит прекрасно - 8 тактов на ноге CLK и цифра 0x05 на ноге MOSI а вот приема как такого нету - нога CLK просто напросто молчит и не выдает импульсы, следовательно и еепром ничего не будет выдавать..
Не понятно что за фигня((
На диаграмме AX видно, что после передачи все ноги молчат - CLK не инициирует прием...
по диаграмме чтения w25p20, для считывания id должно пройти 32 импульса на clk
и лучше начинать с чтения готовности - байт туда и байт оттуда..
проверяйте правильность инита узла SPI в АРМе и рулеж CS хоть он и не используется в вашем случае..
Ничего не получается...
Инициализацию я взял из примера CMSIS. Передавать то передает, но затем глохнет. И чтение LPC_SSP0->DR не производит никаких действий над ногами SSP0
Я не включал никаких прерываний.. может проблема в этом...
Перед передачей проверяю статус самого порта SSP0 вроде все нормально...
Я уже не ID читаю а просто регистр состояния еепрома командой 0x05
Такс, с передачей разобрался.. Чтобы устройство слейв что то выдало, нужно не просто читать регистр LPC_SSP0 а нужно передать пустышку 0xFF для создания клоков и низкого уровня на CS а затем уже читать... Идиотизм блин..
не-а, это логика работы любого SPI, я не стал акцентировать, думая что и так известно..
чтобы слейв пошевелился - его надо затактировать, а чтобы заработала тактовая - надо что-нить положить в буфер своего передатчика
я не зря спросил - как подключен "еепром".. может у вас "холд" висит "не там".. ну не телепат я :)
ну в итоге все заработало и прочитал весь еепром :)
Логику SPI я знаю, но с АРМ в первый раз встретился :)
Понадеялся, что контроллер в этом проце умный и при запросе данных с регистра, клок он сам включает....
Заработало все после того, как саморучно сделал управление пином CS, до этого ну никак не хотел работать...
Спасибо за советы :)