STM32 RS-485 Modbus RTU - запуск на дискавери

Пока никак руки не доходят до написания второй части материала по Modbus и случился тупняк с использованием eeprom типа 24C64, и поэтому сегодня я решил убить сразу двух, нет даже трех зайцев…
1. Запустить проект из предыдущей статьи на плате дискавери и дать возможность тем кто имеет эту плату тоже участвовать (если конечно это интересно)
2. Сделать небольшую плату с RS485 для дискавери
3. До кучи на эту же плату поставить eeprom и поиграться с ней (тут наметились сдвиги...)
Ну и проверить все это в работе.
При запуске на дискавери — там другой процессор STM32F100RBT6 вдруг откуда не возьмись строчка NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn; потому что в этом процессоре это прерывание называется TIM6_DAC_IRQn (смотреть в stm32f10x.h в папке startup, спасибо камрадам) и начала выдавать ошибку. Не долго думая переехали на TIM7 полет нормальный.
Прилагаю проект в CooCox IDE и плату переходник в Спринт Лайоуте 5.1. подключение см. маркировку на плате G -общий, + = 3.3V, TX -PB10, RX- PB-11, TXE -PB12. Порт RS-485 ближний кземляному проводу -, дальний +.





зы Надеюсь все теперь у всех будет работать как и у меня
ззы Исправил плату в приложении добавил светодиод питания — ибо неудобно без него

  • +1
  • 22 августа 2011, 23:38
  • GYUR22
  • 2
Файлы в топике: discovery_modbus.zip, dicscovery_companion1.zip

Комментарии (11)

RSS свернуть / развернуть
Нужно было смотреть таблицу векторов прерываний, тогда стало бы ясно почему нет :)
TIM6_DAC_IRQn
0
  • avatar
  • ZiB
  • 23 августа 2011, 06:43
да…
0
кстати ткните носом в файл не могу найти…
кокос тоже не ищет…
0
TIM6_DAC_IRQn               = 54,     /*!< TIM6 and DAC underrun Interrupt                      */

Строка 275 файла stm32f10x.h
0
ясно спасибо
ps моргалка то кстати завелась на y & n?
0
Пока руки не доходят, работа, — выходных жду. Да и JTAG послезавтра скорее всего только спаяю. Завтра заберу STM23L-discovery, на ней попробую. Обязательно отпишусь, как исправлю, чтобы другие на те же грабли не наступали. Из интереса, можете попробовать мой пример на своей дискавери :-)
0
да хочу кстати это сделать тока пока eeprom… тут всю малину гадит
0
Не понял зачем нужен сигнал TXE. Передача разрешена? Как это влияет на UART?
0
RS485 — не дуплексный. Там или принимаешь или передашь. И конвертору нужно сообщить, что ты хочешь сейчас делать. А самому UART это все конечно не нужно.
0
где же I2C? запилить на свой проект охота
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.