Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 08.07.2021, 10:43  
optical illusion
Прописка
 
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
optical illusion на пути к лучшему
По умолчанию ADUCM360 и RS485

Подскажите, кто ни будь приделывал RS485 к ADUCM360?
Сейчас посмотрел проект ADI СN0359.
Ну он, как оказалось, странно заточен под Ардуино, хотя обычно у ADI все бывает под Кейл. Точнее, раньше так было - времена меняются.
И судя по всему, в том примере нет исходников той части где производится обработка прерывания во время работы UART с RS485. Или я не нашел. На форуме ADI люди спрашивали - их куда то послали "почитать".
Где бы посмотреть как работает железо UART ADUCM360 в режиме RS485?
Реклама:
optical illusion вне форума  
Непрочитано 08.07.2021, 11:21  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 664
Сказал спасибо: 360
Сказали Спасибо 743 раз(а) в 353 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

Сам микроконтроллер описан в документе Hardware User Guide UG-367
j-Roger вне форума  
Непрочитано 08.07.2021, 12:05  
optical illusion
Прописка
 
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
optical illusion на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

По вашей ссылке на странице 143 написано:
Word lengs select bits.
00: 5 bits
01: 6 bits
10: 7 bits
11: 8 bits
Как видим нет 9 бит режима.
Но стандартный режим UART подразумевает быть мультипроцессорному режиму - во многих приложениях это используется: RS232, CAN, RS485 и т.д. и т.п.
Так не бывает, что бы не было режима 9 бит. Да и в железке CN0359 благополучно применяется. Значит как то по другому это реализуется - но как?
Ну вот по аналогии пример приведу из даташита на МК Силабса:
https://www.silabs.com/documents/pub.../C8051F34x.pdf
На странице 209 изображен мультипроцессорный режим работы UART.
Figure 18.6. UART Multi-Processor Mode Interconnect Diagram
Тут у них английским языком написано как работает типовой режим UART - на базе этого и работает RS485.
optical illusion вне форума  
Непрочитано 08.07.2021, 18:25  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,312
Сказал спасибо: 173
Сказали Спасибо 3,112 раз(а) в 2,006 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

Сообщение от optical illusion Посмотреть сообщение
судя по всему, в том примере нет исходников той части где производится обработка прерывания во время работы UART с RS485. Или я не нашел.
научись программировать процы на низком уровне на си.
далее просто читаешь даташит на любой проц и кодишь что и как хочешь без всяких примеров.
я вот примеры смотрю только когда сложные матвычисления нужны а самому лень с нуля делать. но это вообще к железу не относится

судя по тому как ты в другой теме кодил - пока у тебя это а уровне псевдонаучного тыка.
кодить на высоком уровне простые процы это ваще шлак.

низкий это примерно вот так

Код:
void initUART1()
{
	uart_status = 0;
	rxBufferInit();
	//txBufferInit();
	
	USART1-›CR1 = USART_CR1_UE;
	USART1-›BRR = 48000000/900000;

	USART1-›CR2 = 0;
	USART1-›CR3 = USART_CR3_DMAT | USART_CR3_DMAR;
	
	USART1-›CR1 |= USART_CR1_TE | USART_CR1_RE ; //|USART_CR1_TCIE; //Âêëþ÷àåì USART
	USART1-›ISR = 0;
	
	//USART1-›CR1 |= USART_CR1_RE|USART_CR1_RXNEIE;
	//NVIC_EnableIRQ (USART1_IRQn);           //ðàçðåøèòü ïðåðûâàíèÿ îò USART1

	//NVIC_EnableIRQ(DMA1_Channel4_5_IRQn);

	// rx dma ring
	
	DMA1_Channel3-›CCR = 0;
	DMA1_Channel3-›CPAR = (uint32_t)&USART1-›RDR;
	DMA1_Channel3-›CMAR =  (uint32_t)rxbuffer; 
	DMA1_Channel3-›CNDTR =  UART_BUFFER_SIZE;
	DMA1_Channel3-›CCR = DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_PL_1| DMA_MemoryDataSize_Byte| DMA_PeripheralDataSize_Byte;// | DMA_CCR_TCIE;
	DMA1_Channel3-›CCR |= DMA_CCR_EN;
	
}

а когда совсем лень много читать (чо там в хедерах поналяпали индусы
то вообще вот так

RCC-›AHBENR = 1|(1‹‹6)|(1‹‹17)|(1‹‹18)|(1‹‹19)|(1‹‹20)|(1‹‹22); // DMA,PORTS POWER ON
	RCC-›APB2ENR = (1‹‹9)|(1‹‹14)|(1‹‹16); //ADC, USART1, TIM15
	RCC-›APB1ENR = (1‹‹1)|(1‹‹8)|(1‹‹17)|(1‹‹21)|(1‹‹28); //  TIM3, USART2, I2C1, PWREN
	
	RCC-›APB2ENR |= RCC_APB2ENR_SYSCFGEN;
		
	GPIOA-›MODER |= 1|(1‹‹ 2)|(1‹‹ 5)|(1‹‹ 7)|(1‹‹19 )|(1‹‹21) |(1‹‹8)|(1‹‹9)|(1‹‹10)|(1‹‹11 )|(1‹‹12)|(1‹‹13); //
	GPIOA-›AFR[0] = (1‹‹8)|(1‹‹12); //usart tx rx,	
	GPIOA-›AFR[1] = (1‹‹4)|(1‹‹8);  //usart tx rx	
	GPIOA-›OSPEEDR = 0xffff ;
	GPIOA-›PUPDR |= (1‹‹4)|(1‹‹6)|(1‹‹14); 
	GPIOA-›OTYPER = (1‹‹7);
__________________
ОГМ/ПОГМ

Последний раз редактировалось mike-y-k; 03.10.2022 в 10:53.
индюк вне форума  
Непрочитано 09.07.2021, 09:56  
optical illusion
Прописка
 
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
optical illusion на пути к лучшему
По умолчанию

индюк Возможно, то что вы пишите тоже интересно, но это другая тема.

Посмотрел демо пример RS485 для STM32.
Код:
#define DIR485_H  GPIOD-›BSRR=1‹‹7
#define DIR485_L  GPIOD-›BRR=1‹‹7

void UART_Write(u8* data,u16 len)
{
	u16 i;
	DIR485_H ;
	for (i=0; i‹len; i++)
	{
		UART_SendByte(data[i]);
	}
	Delay10us(1000);
	DIR485_L;
}
В общем и целом понятно, но не понятно также называются регистры GPIOD-›BSRR и GPIOD-›BRR.
Подскажите, если ядро Cortex-M3 (у разных чипов) то названия все одинаковые регистров?
Как подобрать аналогичный регистр в другом чипе?

Последний раз редактировалось mike-y-k; 03.10.2022 в 10:52. Причина: 6.6
optical illusion вне форума  
Непрочитано 09.07.2021, 12:46  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 664
Сказал спасибо: 360
Сказали Спасибо 743 раз(а) в 353 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

Одинаковые ядра устроены с точностью до одинаково
А вот насчёт периферии..
Как производитель реализует периферию и назовёт регистры управления оной - так и будет (да будет так! Аминь )

В частности, для ADuCM360/ADuCM361:
- в документе UG-367 в разделе GPIO MEMORY MAPPED REGISTERS (стр 104) описаны регистры управления портами ввода-вывода;
- в заголовочном файле ADuCM360.h в дебрях CMSIS от производителя можно увидеть, как расписаны регистры периферии и их битовые поля;
- в проектах-примерах можно посмотреть, как ведётся работа с регистрами периферии.

Во вложении - файл ADuCM360.h, переименованный в *.txt
ADuCM360.txt

P. S.
Это беглый взгляд; никогда не приходилось сталкиваться с этими МК.
j-Roger вне форума  
Непрочитано 09.07.2021, 14:14  
optical illusion
Прописка
 
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
optical illusion на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

Ну вот, например, в проекте-примере CN0359 (Analog Devices), то место которое меня интересует находится в закрытом классе. Вопрос в том - а почему это так?
Код:
#ifndef __ADDRESSDIALOG_H__
#define __ADDRESSDIALOG_H__

#include ‹applications/dialog/Dialog.h›
#include ‹hal/drivers/flash.h›

class CAddressDialog: public CDialog
{
public:
	virtual void OnCreat(void);
	virtual void OnEncoderCW(void);
	virtual void OnEncoderCCW(void);
	virtual void OnButtonDown(void);
private:
	void OnDraw(void);
	decltype(flash_file::rs485_address) address;
	enum
	{
		adr, save, cancel
	} menu_item;
	bool in_edit;
};
extern CAddressDialog AddressDialog;

Последний раз редактировалось mike-y-k; 03.10.2022 в 10:54.
optical illusion вне форума  
Непрочитано 09.07.2021, 15:04  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,312
Сказал спасибо: 173
Сказали Спасибо 3,112 раз(а) в 2,006 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

Сообщение от optical illusion Посмотреть сообщение
В общем и целом понятно, но не понятно также называются регистры GPIOD-›BSRR и GPIOD-›BRR.
мля)) еще раз говорю - изучи строение проца снизу!!
это тупо регистр который сбрасывает и ставит биты в порте. к 485 он вообще никакого отношения не имеет. равно как и уарт тупо там работает как ком порт.
__________________
ОГМ/ПОГМ
индюк вне форума  
Непрочитано 09.07.2021, 16:02  
optical illusion
Прописка
 
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
optical illusion на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

Если бы все было просто, как вы говорите тут, то не было бы нужды ADI засовывать этот кусок кода в приватный класс. Что бы изучать "процы снизу" - нужны доки. Того что есть в UG-367 недостаточно, что бы сделать обработчик прерывания UART в 9 битовом мультипроцессорном режиме.
optical illusion вне форума  
Непрочитано 09.07.2021, 16:47  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 664
Сказал спасибо: 360
Сказали Спасибо 743 раз(а) в 353 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: ADUCM360 и RS485

Сообщение от optical illusion Посмотреть сообщение
Или я не нашел.
Если не ошибаюсь, вся низкоуровневая работа с UART сосредоточена в файле source\hal\drivers\uart.cpp, там есть и некий UART_Int_Handler.

А откуда уверенность, что именно 9-битный режим?

Сообщение от optical illusion Посмотреть сообщение
странно заточен под Ардуино
Может, в некоей версии под Ардуино ( если таковая версия существует ) и сделано по-ардуински - блокирующим ногодрыгом?
j-Roger вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проброс rs485 по TCP/IP leontix Автоматика и аппаратура связи 33 28.08.2019 22:50
PROSTAR PR6000 по RS485 volk_perm Производственное оборудование 14 09.01.2017 18:18
Собрать преобразователь 4-20ма / RS485 Дератизатор Микроконтроллеры, АЦП, память и т.д 13 03.09.2012 08:36
RS485 stri Микроконтроллеры, АЦП, память и т.д 4 06.08.2007 10:36
[Решено] c АЦП через rs485 t0wer Измерительное оборудование 2 05.11.2004 11:40


Часовой пояс GMT +4, время: 03:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot