Skup
Members-
Постов
16 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Весь контент Skup
-
Сомневаюсь, там ничего сложного нет
-
спасибо большое за помощь
-
то есть, мне стоит делать выводы, где-нибудь после часа работы?
-
Добрый день форумчане. Недавно вот приобрел Quectel l10. Подключил его его к компьютеру, все работает, данные приходят, но не может поймать спутники. Приобрел антенну ANT GPS BY-GPS-04, но и она существенных изменений не принесла. Кто знает, в чем может быть причина?может модуль дохлый?или ему нужна совсем открытая местность?я проверял работу модуля на балконе и с антенной и без неё
-
Прошу прощения)Клоки, это тактируемые сигналы, которые задает master по SCK. Память FM25L04, контроллер ASAM4LC4A. А код целиком, или только блок где описан SPI? GPIO->GPIO_PORT[0].GPIO_PMR0C =GPIO_PMR0C_P21|GPIO_PMR0C_P22|GPIO_PMR0C_P23; GPIO->GPIO_PORT[0].GPIO_PMR1C = GPIO_PMR1C_P21|GPIO_PMR1C_P22|GPIO_PMR1C_P23; GPIO->GPIO_PORT[0].GPIO_PMR2C = GPIO_PMR2C_P21|GPIO_PMR2C_P22|GPIO_PMR2C_P23; GPIO->GPIO_PORT[0].GPIO_GPERC = GPIO_GPERC_P21|GPIO_GPERC_P22|GPIO_GPERC_P23; SPI->SPI_MR = SPI_MR_MSTR|SPI_MR_PCSDEC_0|SPI_MR_PCS(0x0); SPI->SPI_MR |= SPI_MR_MODFDIS; SPI->SPI_MR |= SPI_MR_DLYBCS(0x00); SPI->SPI_CSR[0] = SPI_CSR_CPOL_1|SPI_CSR_NCPHA_0|SPI_CSR_SCBR(0x1)| SPI_CSR_BITS_8_BPT; SPI->SPI_MR &= ~(SPI_MR_PS); SPI->SPI_MR &= ~SPI_MR_PCSDEC; SPI->SPI_CR = SPI_CR_SPIEN; GPIO->GPIO_PORT[0].GPIO_OVRS = GPIO_OVRS_P24; my_delay(10000); GPIO->GPIO_PORT[0].GPIO_OVRC = GPIO_OVRC_P24; SPI->SPI_TDR = SPI_TDR_TD(0x06); while (!(SPI->SPI_SR & (SPI_SR_TDRE ))); GPIO->GPIO_PORT[0].GPIO_OVRS = GPIO_OVRS_P24; my_delay(10000); GPIO->GPIO_PORT[0].GPIO_OVRC = GPIO_OVRC_P24; SPI->SPI_TDR = SPI_TDR_TD(0x05); while (!(SPI->SPI_SR & (SPI_SR_TDRE ))); SPI->SPI_TDR = SPI_TDR_TD(0xFF); while (!(SPI->SPI_SR & (SPI_SR_TDRE ))); Прилагаю код, настройка пинов как периферийная функция, настройка самого SPI, и отправил данные на разрешение записи, и считываю данные со статус регистра
-
Доброго времени суток. Возникла такая проблема. Есть программа, в которой описан обмен данными с Fram. Когда я прогоняю программу в режиме отладки, то никакие данные по данному адресу не записываются и не считываются. Как выяснилось, в режиме отладки даже не генерируются клоки. Но если выключить/включить питание, то клоки генерируются без проблем. Кто сталкивался с такой проблемой?
-
Спасибо большое. Схема собиралась на отладочной плате sam4l-ek, в итоге оказалось, что на пине RX висел не только пин RI adm3485, но и другая периферия
-
Спасибо, а если МК тянет к плюсу, это можно как то исправить?Если у меня пин настроен как периферийная функция, и пином управляет сам МК
-
Он настроен, потому как пробовал подключать напрямую, сразу к преобразователю, данные все принимаются. Какой именно каскад может быть дохлым?
-
Прилагаю схему, после adm485 линия идет на преобразователь RS485-USB Представленная выше осциллограмма, была снята с вывода RO микросхемы adm3485. Если данный вывод отсоединить от ноги микроконтроллера, то сигнал будет нормальным
-
я про МК говорил
-
Нашел еще один косяк, если отсоединить RX от пина МК, то осциллограмма нормальная. Это значит что все таки пин не настроен?
-
Да, все сделано Прилагаю осциллограмму с пина 1 adm3485. Сигнал по форме совпадает с кодом, который я отправляю с терминала, но вот логический ноль находиться на уровне 1.5 В. А у МК логический ноль не превышает 0.6. Мне кажется поэтому не может прочитать.
-
Всем привет. Кто сталкивался с такой проблемой: Происходит обмен данных с терминалом через RS485. Для компа есть преобразователь COM-USB построенный на adm485, а плата, с которой передаются данные имеет в составе adm3485. Передача на терминал происходит успешно, а вот отравленные данные с терминала мк обработать не может. Посмотрел на осциллографе на ножке RX микросхемы adm3484, сигнал приходит, но логический ноль находится на уровне 1.4 В, хотя должен быть, как указано в даташите, ниже 0.6 В. Почему так происходит?
-
Понял в чем косяк. Во первых как оказалось, порты в исходном состоянии включены, поэтому подключая периферию, нужно отключить управление нужных пинов от GPIO: GPIO->GPIO_PORT[0].GPIO_GPERC = (1<<7); GPIO->GPIO_PORT[2].GPIO_GPERC = (1<<2); Во вторых, в настройке UART есть бит в регистре MODE, который отвечает от чего будет тактироваться UART. Там нужно выбрать вариант CLK_USART. А для того чтобы включить эту штуку, нужно: PM->PM_PBADIVMASK = (1<<2);
-
Добрый вечер!Прилагаю код для микроконтроллера ATSAM4LC4C void main() { PM->PM_PBCMASK = (1<<4)|(1<<2)|(1<<0); //Clocking GPIO,SCIF,PM PM->PM_PBDMASK = (1<<4); PM->PM_PBAMASK = (1<<8); SCIF->SCIF_OSCCTRL0 = (1<<9)|(1<<16)|(1<<0)|(1<<1); //Setting OSC0; while (!(SCIF->SCIF_PCLKSR&(1<<0))); PM->PM_MCCTRL = (1<<0); //set 1 in 0 bit register MCCTRL //ON Oscillator0 GPIO->GPIO_PORT[2].GPIO_PMR0C = (1<<2); //Setting UART0 PORTC GPIO->GPIO_PORT[2].GPIO_PMR1C = (1<<2); // GPIO->GPIO_PORT[2].GPIO_PMR2C = (1<<2); // GPIO->GPIO_PORT[0].GPIO_PMR0S = (1<<7); //Setting UART0 PORTA GPIO->GPIO_PORT[0].GPIO_PMR1C = (1<<7); // GPIO->GPIO_PORT[0].GPIO_PMR2C = (1<<7); // USART0->US_BRGR = 0x4E|(1<<16); USART0->US_MR = (1<<6)|(1<<7)|(1<<4)|(1<<5)|(1<<11); USART0->US_MR &= ~(1<<0); USART0->US_CR = (1<<6)|(1<<4); while(1) { USART0->US_THR = 0xFF; }; }; Проблема в том, что после настройки порта в статус регистре сообщается, что регистр THR чист и готов к передачи данных. Когда я записываю в данный регистр значение 0xFF, у меня не генерируется стоповый бит, т.е. линия TX не возвращается в "1". Кто может подсказать в чем проблема?
- 1 ответ
-
-1