Метценгерштейн 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба на схеме нигде PA5 не задействован плата такая буду пробовать на SPI2 сделать тоже самое. Человека просил на такой же плате проверить на глюки- подтвердил, что тоже самое наблюдает. Т.е. это не только моей платы косяк. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
muravei 3 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба потихоньку проясняется А у осц вход открыт? Может обрыв в SCK? буду пробовать на SPI2 А он же медленнее будет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба Надо свое сначала отцепить от Дискавери. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 (изменено) · Жалоба у осцилла стояло DC, т.е. открыт. Так ведь? вывод SCK оторван от моей схемы. Мерил только на пине голом. Изменено 18 февраля, 2013 пользователем Метценгерштейн Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
muravei 3 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба на пине голом Проца или платы? Выглядит , как бы клок заряжает емкость. Может обрыв между процом и пином платы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 (изменено) · Жалоба на пине платы меряю. Вот не знаю, смогу ли на ножку проца встать. попробую на ножке проца та же картина. И Амплитуда маленькая. пол вольта где-то первый клок. И почему так? Изменено 18 февраля, 2013 пользователем Метценгерштейн Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dac 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба потихоньку проясняется это SCK тут уже начали ошибки сыпаться. Выясняю, что еще сидит на данном пине. Пин на плате в данный момент ни к чему не подпаян. (штырек имеется ввиду) желательно посмотреть такую же осциллограмму с линией MISO на втором канале если меряете на ножке дискавери (pin20 header28 по схеме) и он не идет к вашей схеме, и там такое, тогда, 1. осциллограф - полосы пропускания достаточно? ограничение полосы отключено? режим выборки какой? 2. битый вывод проца 3. неправильная иницилизация GPIO - скорость GPIO правильно выставили? отладчиком глянтье состояние gpio на момент передачи. визуально осциллогамма выглядит, будто заряжается большая емкость или Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 (изменено) · Жалоба инициализация портов и SPI RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN; //Тактирование портов A, B //Линини SPI1 (Master) //PA12(MOSI), PA11(MISO), PA5(SCK), PA4(NSS) - AF, Push-Pull, AF5(SPI1) GPIOA->MODER |= GPIO_MODER_MODER12_1 | GPIO_MODER_MODER11_1 | GPIO_MODER_MODER5_1 | GPIO_MODER_MODER4_1; //Alternate function GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_12 | GPIO_OTYPER_OT_11 | GPIO_OTYPER_OT_5 | GPIO_OTYPER_OT_4); //Push-Pull GPIOA->AFR[1] |= (5<<16 | 5<<12); //PA12 = AF5, PA11 = AF5 GPIOA->AFR[0] |= (5<<20 | 5<<16); //PA5 = AF5, PA4 = AF5 RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; //Тактирование модуля SPI1 SPI1->CR2 = 0; SPI1->CR1 = 0 | 0 * SPI_CR1_BR_2 | 0 * SPI_CR1_BR_1 | 0 * SPI_CR1_BR_0 //Baud rate = Fpclk/2 | 0 * SPI_CR1_CPOL //Полярность тактового сигнала | 0 * SPI_CR1_CPHA //Фаза тактового сигнала | 0 * SPI_CR1_DFF //8 бит данных | 0 * SPI_CR1_LSBFIRST //MSB передается первым | 1 * SPI_CR1_SSM //Программный режим NSS | 1 * SPI_CR1_SSI //Аналогично состоянию, когда на входе NSS высокий уровень | 1 * SPI_CR1_MSTR //Режим Master | 1 * SPI_CR1_SPE; //Включаем SPI1 ; SPI1->CR2 = SPI_CR2_SSOE; //Вывод NSS - выход управления slave select осцилл 60 МГц. Никаких фильтров не включено. Хотя, фильтр больше 20 Мег отсекает. вывод MISO замкнут на MOSI и там картина нормальная- скачут биты и уровень и фронты- все четко. если частоты клоков снизить до 2 Мгц, то еще работает, но фронты начинают валиться. А на 1 Мгц- вообще все красиво по фронтам. Изменено 18 февраля, 2013 пользователем Метценгерштейн Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба инициализация портов и SPI RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN; //Тактирование портов A, B //Линини SPI1 (Master) //PA12(MOSI), PA11(MISO), PA5(SCK), PA4(NSS) - AF, Push-Pull, AF5(SPI1) GPIOA->MODER |= GPIO_MODER_MODER12_1 | GPIO_MODER_MODER11_1 | GPIO_MODER_MODER5_1 | GPIO_MODER_MODER4_1; //Alternate function GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_12 | GPIO_OTYPER_OT_11 | GPIO_OTYPER_OT_5 | GPIO_OTYPER_OT_4); //Push-Pull GPIOA->AFR[1] |= (5<<16 | 5<<12); //PA12 = AF5, PA11 = AF5 GPIOA->AFR[0] |= (5<<20 | 5<<16); //PA5 = AF5, PA4 = AF5 ...... Однозначно у вас не настроены порты на максимальную скорость. Проверил у себя на плате. Осциллограммы совпадают в вашим скриншотом. Попробуйте установить правильные значения в регистр GPIOA->OSPEEDR. P.S. Что-то типа: GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR11_0 | GPIO_OSPEEDER_OSPEEDR11_1 |GPIO_OSPEEDER_OSPEEDR12_0 | GPIO_OSPEEDER_OSPEEDR12_1 |GPIO_OSPEEDER_OSPEEDR5_0 | GPIO_OSPEEDER_OSPEEDR5_1 |GPIO_OSPEEDER_OSPEEDR4_0 | GPIO_OSPEEDER_OSPEEDR4_1; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба У вас щуп осциллографа 1:1 или с делителем 1:10 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dac 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба инициализация портов и SPI RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN; //Тактирование портов A, B //Линини SPI1 (Master) //PA12(MOSI), PA11(MISO), PA5(SCK), PA4(NSS) - AF, Push-Pull, AF5(SPI1) GPIOA->MODER |= GPIO_MODER_MODER12_1 | GPIO_MODER_MODER11_1 | GPIO_MODER_MODER5_1 | GPIO_MODER_MODER4_1; //Alternate function GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_12 | GPIO_OTYPER_OT_11 | GPIO_OTYPER_OT_5 | GPIO_OTYPER_OT_4); //Push-Pull GPIOA->AFR[1] |= (5<<16 | 5<<12); //PA12 = AF5, PA11 = AF5 GPIOA->AFR[0] |= (5<<20 | 5<<16); //PA5 = AF5, PA4 = AF5 я не знаю как регисты в иаре выглядят, надо установить GPIOA_OSPEEDR5 = 3; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 (изменено) · Жалоба щуп осцилла 1:10 пробую порты да! все четко! Фронты в норме. GPIOA->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR5 | GPIO_OSPEEDER_OSPEEDR11 | GPIO_OSPEEDER_OSPEEDR12; //ноги 40 МГц а все 3 ноги надо 40 МГц выставить? MOSI MISO SCK ? или вход не надо? Как-то упустил совсем из виду это. Спасибо всем) Изменено 18 февраля, 2013 пользователем Метценгерштейн Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dac 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба а все 3 ноги надо 40 МГц выставить? MOSI MISO SCK ? или вход не надо? Как-то упустил совсем из виду это. Спасибо всем) вход не надо, а MOSI и CS тоже надо так вроде уже писали про это, и в примерах приведенных было. и еще, если отдельную плату будете разводить, желательно последовательные резисторы 33-51Ом, чтоб звона не было и подтяжки 100кОм Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба а не будет из-за последоват. резисторов RC цепь на частотах? Для чего они? А подтяжки зачем? Програмных не достаточно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dac 0 18 февраля, 2013 Опубликовано 18 февраля, 2013 · Жалоба а не будет из-за последоват. резисторов RC цепь на частотах? Для чего они? А подтяжки зачем? Програмных не достаточно? как раз и надо RC-фильтр чтоб звон погасить, мешать не будет, такие даже на DDR 400МГц стоят. а вот избежать трудноуловимых глюков помогут. подтяжки чтоб пока контроллер не загрузился (программные еще не включены), помехи чего попало куда попало не записали. как минимум на CS - обязательно, остальные по желанию. а если SD-карта на SPI, то строго обязательно - это культовое место посещения граблей :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться