На данный момент проблема заключается в том, что slave не может обработать посылки от мастера, я модульно тестировал блоки кода программы и нормально работает пока что только код отвечающий за генерацию частоты. Снизу скину код мастера atmega128 и attiny2313.
Мастер:
#include <mega128.h>
#include ...
Найдено 76 результатов
- Пт мар 15, 2024 13:15:55
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
- Вт мар 12, 2024 17:11:07
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
вопрос открыт еще на данный момент, сижу думаю
- Ср июл 12, 2023 19:25:21
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945 , вот что я мастером отправляю:
dFi.w = F*1 ;
PORTB &= ~(1<<PORTB0);
SPI_MasterTransmit(Cnt & 0x03);
SPI_MasterTransmit(dFi.b[0]);
SPI_MasterTransmit(dFi.b[1]);
SPI_MasterTransmit(dFi.b[2]);
SPI_MasterTransmit(0xff); //пустышка
SPI_MasterTransmit(0xff); // младший байт из fG
SPI ...
dFi.w = F*1 ;
PORTB &= ~(1<<PORTB0);
SPI_MasterTransmit(Cnt & 0x03);
SPI_MasterTransmit(dFi.b[0]);
SPI_MasterTransmit(dFi.b[1]);
SPI_MasterTransmit(dFi.b[2]);
SPI_MasterTransmit(0xff); //пустышка
SPI_MasterTransmit(0xff); // младший байт из fG
SPI ...
- Ср июл 12, 2023 10:45:00
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945 , вот что получилось.
код слейва:
#include <mega8.h>
#include <math.h>
#include <io.h>
#include <delay.h>
#define F_CPU (8000000)
#define VFG_TIMER_MAX (65535)
#define VFG_DDR DDRD
#define VFG_PORT PORTD
volatile unsigned char b1,b2,b3,b4;
volatile unsigned char i=0;
volatile unsigned ...
код слейва:
#include <mega8.h>
#include <math.h>
#include <io.h>
#include <delay.h>
#define F_CPU (8000000)
#define VFG_TIMER_MAX (65535)
#define VFG_DDR DDRD
#define VFG_PORT PORTD
volatile unsigned char b1,b2,b3,b4;
volatile unsigned char i=0;
volatile unsigned ...
- Вт июл 11, 2023 22:01:51
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
veso74 , ну да, в датамемори все тоже самое что и на spi анализаторе. Просто на spi анализаторе можно время приема-передачи увидеть и все наглядней. А изза того что я отправляю обратно данные обратно на мастера, они могут искажаться ?
a797945 , завтра попробую подумать, как это можно сделать ...
a797945 , завтра попробую подумать, как это можно сделать ...
- Вт июл 11, 2023 19:06:53
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945, а если использовать внешнее прерывание INT1, например ?
Вот что получилось на выходе.
Вот что получилось на выходе.
- Вт июл 11, 2023 18:55:35
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
- Вт июл 11, 2023 18:40:18
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945 , вот что получается на выходе.
Код мастера:
#include <mega128.h>
#include <io.h>
#include <delay.h>
volatile unsigned char reqTr,reqTm;
struct Tmr_t {
unsigned char n;
double F;
};
struct Tmr_t T;
unsigned char chrT;
typedef union //объединение
{
unsigned long int w ; // w as ...
Код мастера:
#include <mega128.h>
#include <io.h>
#include <delay.h>
volatile unsigned char reqTr,reqTm;
struct Tmr_t {
unsigned char n;
double F;
};
struct Tmr_t T;
unsigned char chrT;
typedef union //объединение
{
unsigned long int w ; // w as ...
- Вт июл 11, 2023 12:35:32
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
veso74, да, боюсь еще хуже будет, сейчас весь код вроде как до минимума сокращен, а вот если что-то еще добавлять, будут дополнительные проблемы.
- Вт июл 11, 2023 08:28:39
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945 , перепробовал много вариаций, предложенного вами варианта, но итог все равно тот же. Еще и протеус начал ругаться PC=0x0190 SPDR Write collision. Written data(0x00) is ignored, как он может ругаться, что 0 записывается в SPDR, если в коде я нигде не записываю 0.
Код слейва:
#include ...
Код слейва:
#include ...
- Пн июл 10, 2023 20:13:48
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945, как попробую отпишусь.
- Пн июл 10, 2023 20:00:29
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945, все равно, неправильно читает данные.
- Пн июл 10, 2023 19:57:02
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945, не компилится, если внутрь цикла for их засовывать.
Добавлено after 1 minute 5 seconds:
а, нет компилируется
Добавлено after 1 minute 5 seconds:
а, нет компилируется
- Пн июл 10, 2023 19:47:51
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945, вот такой вот результат получился, немного отличается от прошлых результатов, хотябы тем, что протеус больше не ругается.
- Пн июл 10, 2023 19:19:12
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945 , ситуация та же. Непонятно почему слейв даже просто байты пустышки неверно сохраняет.
мастер:
#include <mega128.h>
#include <io.h>
#include <delay.h>
volatile unsigned char reqTr,reqTm;
struct Tmr_t {
unsigned char n;
double F;
};
struct Tmr_t T;
unsigned char chrT;
typedef ...
мастер:
#include <mega128.h>
#include <io.h>
#include <delay.h>
volatile unsigned char reqTr,reqTm;
struct Tmr_t {
unsigned char n;
double F;
};
struct Tmr_t T;
unsigned char chrT;
typedef ...
- Пн июл 10, 2023 08:44:06
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945 , некоторые байты просто не записываются, скриншот приложу. Так же протеус ругается PC=0x0136 SPDR Write collision. Written data(0xFF) is ignored. Это опять слейв шлет обратно мусорные байты в регистр данных или данные просто не сохраняются в определенные биты памяти ?
Актуальный код ...
Актуальный код ...
- Пт июл 07, 2023 16:53:15
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945 , я не понимаю как и где мне его посмотреть, когда я принимаю полученные байты на слейве - я присваиваю их значение элементам массива master_array и отправляю присвоенные значения обратно, а потом уже склеиваю их в переменной fG, эти элементы массива я никак не меняю, но при передаче этих ...
- Пт июл 07, 2023 16:21:45
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
a797945, ну тогда так получается: fG = (master_arr[1])|(master_arr[2] <<
|(master_arr[3] << 16);
- Пт июл 07, 2023 15:13:06
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Изменил код, теперь время получения посылки и отправки ее обратно мастеру - совпадают. Но почему-то нулевой байт посылки, отправляемой обратно мастеру всегда неверен. Например, мастер отправляет посылку: 02 89 41 00, а вот слейв отправляет обратно мастеру: 00 02 89 41 - это значит, что прочитанное ...
- Пт июл 07, 2023 09:37:16
- Форум: AVR
- Тема: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
- Ответы: 137
- Просмотры: 26990
Re: Проблема при связи SPI и USI AT90CAN128 и Attiny2313
Подправил код, добавил в прерывание проверку 1-го входящего байта, добавил еще 1 счётчик flagRT, чтобы попытаться соблюсти в точности последовательность входящих байт, изменил формулу расчёта fG, но все равно слейв считывает мусор. Вот измененный код:
#include <mega8.h>
#include <math.h>
#include ...
#include <mega8.h>
#include <math.h>
#include ...